Différences Version F/E
Le
Yabadabadoo
Hello,
Je développe une application sur une version anglaisse de MSAccess 2003.
Dans celle-ci je construis à l'aide de VB des requêtes SQL contenant un
paramètre de type boolean:
SQLtext = "SELECT * FROM [some table]"
SQLtext = SQLtext & " WHERE .."
SQLtext = SQLtext & " AND Imperative = " & rs!Imperative
L'application fonctionne parfaitement correctement.
Ce n'est que lorsque celli-ci est chargée sur un PC ayant une version
française de access ACCESS que la valeur de rs!Imperative devient "Faux" au
lieu de "False". Le système affiche alors le message d'erreur:
"Le moteur de la base de données Microsoft Jet ne reconnaît pas "Faux" en
tant que nom de champ ou expression correcte.
Existe-t-il un moyen global afin d'éviter que VB ne "traduise" False en
"Faux"?
Merci d'avance!
Je développe une application sur une version anglaisse de MSAccess 2003.
Dans celle-ci je construis à l'aide de VB des requêtes SQL contenant un
paramètre de type boolean:
SQLtext = "SELECT * FROM [some table]"
SQLtext = SQLtext & " WHERE .."
SQLtext = SQLtext & " AND Imperative = " & rs!Imperative
L'application fonctionne parfaitement correctement.
Ce n'est que lorsque celli-ci est chargée sur un PC ayant une version
française de access ACCESS que la valeur de rs!Imperative devient "Faux" au
lieu de "False". Le système affiche alors le message d'erreur:
"Le moteur de la base de données Microsoft Jet ne reconnaît pas "Faux" en
tant que nom de champ ou expression correcte.
Existe-t-il un moyen global afin d'éviter que VB ne "traduise" False en
"Faux"?
Merci d'avance!

Poser une question


Hello,
Non, mais il y a moyen d'écrire du SQL propre qui ne se base pas
sur une chaine de caractère pour tester la valeur d'un champ Booléen
et qui utilise les booléens pour ce qu'ils sont.
On écrit par exemple ceci:
SELECT *
FROM Table1
WHERE CBool(isWhatever)=True
La fonction CBool() convertit la valeur Booléenne du Champ indépendamment de
la représentation textuelle de la valeur de vérité.
Le code écrit précédemment fonctionne identiquement sur n'importe quelle
version d'Access, sur n'importe quelle plateforme et quelle que soit la
langue.
A adapter à ton exemple bien sur, mais l'idée est la.
Cordialement,
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
J'avais bien eu le réflexe d'essayer "WHERE whatever = " & val(variable)"
mais n'avais pas fait le lien avec le contexte string de la construction de
la requête.
Merci 1000x pour ton aide!
Cordialement
"jean-marc" wrote:
Merci à toi pour le retour !