Notre client d'accès génère à la volée des instructions SQL, des instructions de mise à jour et de suppression à envoyer sur un serveur MS-SQL. La plupart des utilisateurs ont la version d'exécution d'Access 2007 et quelques-uns utilisent la version complète MS-Access, 2003 ou 2007. Ce matin, un de nos nouveaux utilisateurs à l'étranger, utilisant une version française/complète d'Access 2003, n'a pas pu mettre à jour champs booléens.Localisation de ms et valeurs booléennes par défaut
Il est apparu que ces champs sont, dans la version française d'Access, remplis de valeurs "Vrai/Faux" au lieu de "Vrai/Faux". Le problème a été résolu en installant le 2007 runtime d'accès. Mais je voudrais trouver une solution permanente, où je serais capable de lire quelque part quelle version localisée d'Access est utilisée et de 'traduire' les valeurs localisées True/False en True/False standard. J'ai déjà vérifié les paramètres régionaux de l'ordinateur sans succès, donc c'est ailleurs. Une idée?
EDIT: Après la proposition JohnFX, il est effectivement possible de convertir vrai local/Faux Universal Vrai/Faux avec cette fonction simple:
Function xBoolean(xLocalBooleanValue) as Boolean
if cint(xLocalBooleanValue) = -1 Then
xBoolean = True
endif
if cint(xLocalBooleanValue) = 0 Then
xBoolean = False
endif
end function
EDIT: après @ commentaires de David, j'ai changé la solution préférée . Sa proposition est plus intelligente que la mienne.
EDIT: Je reçois les Vrai/Faux valeurs en lisant la valeur d'un champ dans un recordset:
? debug.print screen.activeForm.recordset.fields(myBooleanField).value
Vrai
La fonction a été écrite à la volée. Votre solution est évidemment meilleure que la mienne. –