Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de séparateur décimal dans SQL

4 réponses
Avatar
CostesL
La virgule sert de s=E9parateur de champs dans SQL. Quand on=20
utilise des r=E9els avec la virgule comme s=E9parateur d=E9cimal=20
dans Windows, une message d'erreur appara=EEt au lancement=20
de la requ=EAte : "3346 - Le nombre de valeurs doit=20
co=EFncider avec le nombre de champs".

Quelle est la solution sans changer le s=E9parateur g=E9n=E9ral=20
de Windows (dans Options r=E9gionales et linguistiques) ?

De fa=E7on g=E9n=E9rale, comment s'affranchir du s=E9parateur=20
d=E9cimal lors de la cr=E9ation de code SQL ?

Merci d'avance de votre r=E9ponse.

4 réponses

Avatar
Eric
Bonjour,

Utilises la fonction Replace dans ton code

Exemple:
Private Sub Commande1_Click()
dim strSQL as string
strSQL = "insert into table1(nombre) values(" & Replace(CDbl(Texte0),
",", ".") & ");"
CurrentDb.Execute sql
End Sub

A+
Eric


CostesL avait écrit le 21/04/2004 :
La virgule sert de séparateur de champs dans SQL. Quand on
utilise des réels avec la virgule comme séparateur décimal
dans Windows, une message d'erreur apparaît au lancement
de la requête : "3346 - Le nombre de valeurs doit
coïncider avec le nombre de champs".

Quelle est la solution sans changer le séparateur général
de Windows (dans Options régionales et linguistiques) ?

De façon générale, comment s'affranchir du séparateur
décimal lors de la création de code SQL ?

Merci d'avance de votre réponse.


--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

Avatar
CostesL
Ca veut qu'il faut que je modifie toutes mes requêtes SQL,
et j'en ai une centaine.

Existe-il une autre solution plus générale de
type "séparateur décimal utilisé dans le code VBA" ?
Avatar
COSTESL
La virgule sert de séparateur de champs dans SQL. Quand on
utilise des réels avec la virgule comme séparateur décimal
dans Windows, une message d'erreur apparaît au lancement
de la requête : "3346 - Le nombre de valeurs doit
coïncider avec le nombre de champs".
Sachant que j'ai déjà créé une centaine de requête dans
mon application, quelle est la solution sans changer le
séparateur général de Windows (dans Options régionales et
linguistiques) ?

De façon générale, comment s'affranchir du séparateur
décimal lors de la création de code SQL dans Access 2000 ?

Merci d'avance de votre réponse.
Avatar
3stone
Salut,

"COSTESL"
La virgule sert de séparateur de champs dans SQL. Quand on
utilise des réels avec la virgule comme séparateur décimal
dans Windows, une message d'erreur apparaît au lancement
de la requête : "3346 - Le nombre de valeurs doit
coïncider avec le nombre de champs".
Sachant que j'ai déjà créé une centaine de requête dans
mon application, quelle est la solution sans changer le
séparateur général de Windows (dans Options régionales et
linguistiques) ?

De façon générale, comment s'affranchir du séparateur
décimal lors de la création de code SQL dans Access 2000 ?



Tu ne pourra pas...

Dans un environnement US, sur un Win US et Access anglais,
tu n'observera pas ce problème de virgule.

Mais, en dehors de ce contexte, c'est au "programmeur" de l'appli
de tenir compte des "Options régionnales" et de ses particularités.

Si ton appli à un chance (et en europe cela devrait être la norme)
d'être exécutée sur autre chose qu'un "tout US", il faut gérer cela
dès le départ.

Donc, sans retoucher tes requêtes, ni les "Options régionnales"
(ce dernier est d'ailleurs totalement à déconseiller) tu ne pourra
pas ne pas tenir compte de ces particularités que sont la virgule,
les dates et autres...

Et il n'y a pas, au niveau d'Access, un
*convertiseur*automatique*que*l'on*coche*
pour s'affranchir des paramètres régionnaux.


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------