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!
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
jean-marc
Le #15391481
"Yabadabadoo" news:
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"?



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_' ;
Yabadabadoo
Le #15391441
Hello,

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:

"Yabadabadoo" news:
> 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"?

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_' ;






jean-marc
Le #15390451
"Yabadabadoo" news:
Hello,

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



Merci à toi pour le retour !

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;




Publicité
Poster une réponse
Anonyme