OVH Cloud OVH Cloud

Requete SQL et virgule

4 réponses
Avatar
loring
Bonjour,

Dans un form je fais une requête SQL pour ensuite remplire une listBox avec
avec infos.

ex)
strQuery = "SELECT id, titre, annee...."
Set rs = dbCurr.OpenRecordset(strQuery)

Do While Not rs.EOF
strItems = rs!id & ";" & rs!titre & ";" & rs!annee ...

lbResults.AddItem (strItems)
rs.MoveNext
Loop

Jusque la tout va bien. Mon probleme est que s'il y a une virgule dans le
"titre"...

ex) "Allo, tout l'monde"

...dans la listBox aulieu d'affcher

id titre annee
3 Allo, tout l'monde 2004

ça affiche:

id titre annee
3 Allo tout l'monde
2004

Bizarre! Pourquoi ya at-il ce problème...et surtout comment y remédier.

Merci.

4 réponses

Avatar
Alberto
Aux Etas-Unis (pays de Microsoft ...) :
10.000 $ s'écrit : 10,000 $
et
10,30 $ s'écrit 10.30 $

Celà t'éclaire t-il ?

Dans une chaine de ton code VBA, la virgule est un séparateur et le point un
simple caractère...


Bonjour,

Dans un form je fais une requête SQL pour ensuite remplire une listBox avec
avec infos.

ex)
strQuery = "SELECT id, titre, annee...."
Set rs = dbCurr.OpenRecordset(strQuery)

Do While Not rs.EOF
strItems = rs!id & ";" & rs!titre & ";" & rs!annee ...

lbResults.AddItem (strItems)
rs.MoveNext
Loop

Jusque la tout va bien. Mon probleme est que s'il y a une virgule dans le
"titre"...

ex) "Allo, tout l'monde"

...dans la listBox aulieu d'affcher

id titre annee
3 Allo, tout l'monde 2004

ça affiche:

id titre annee
3 Allo tout l'monde
2004

Bizarre! Pourquoi ya at-il ce problème...et surtout comment y remédier.

Merci.


Avatar
loring
SAlut,

D'accord avec ta théorie à propos de M$, mais je ne sais pas vraiment plus
comment traiter ces virgule en tant que caractère normale et non un
séparateur.

Un "quick fix" serait simplement d'effacer toutes les virgules de la BD,
mais ce n'est pas vraiment très "cleen".

J'voudrais pouvoir afficher correctement ...

id titre annee
3 Allo, tout l'monde 2004

...et non...

id titre annee
3 Allo tout l'monde
2004

Est-ce que je dois absolument "interdire" l'ajout de texte contenant des ","
dans la BD? Probablement pas j'imagine!

Merci.


Aux Etas-Unis (pays de Microsoft ...) :
10.000 $ s'écrit : 10,000 $
et
10,30 $ s'écrit 10.30 $

Celà t'éclaire t-il ?

Dans une chaine de ton code VBA, la virgule est un séparateur et le point un
simple caractère...


Bonjour,

Dans un form je fais une requête SQL pour ensuite remplire une listBox avec
avec infos.

ex)
strQuery = "SELECT id, titre, annee...."
Set rs = dbCurr.OpenRecordset(strQuery)

Do While Not rs.EOF
strItems = rs!id & ";" & rs!titre & ";" & rs!annee ...

lbResults.AddItem (strItems)
rs.MoveNext
Loop

Jusque la tout va bien. Mon probleme est que s'il y a une virgule dans le
"titre"...

ex) "Allo, tout l'monde"

...dans la listBox aulieu d'affcher

id titre annee
3 Allo, tout l'monde 2004

ça affiche:

id titre annee
3 Allo tout l'monde
2004

Bizarre! Pourquoi ya at-il ce problème...et surtout comment y remédier.

Merci.




Avatar
Alberto
Une idée, as-tu essayé de formater ton titre comme ceci ?
titre = "Allo" & "," & " tout l'monde"


SAlut,

D'accord avec ta théorie à propos de M$, mais je ne sais pas vraiment plus
comment traiter ces virgule en tant que caractère normale et non un
séparateur.

Un "quick fix" serait simplement d'effacer toutes les virgules de la BD,
mais ce n'est pas vraiment très "cleen".

J'voudrais pouvoir afficher correctement ...

id titre annee
3 Allo, tout l'monde 2004

...et non...

id titre annee
3 Allo tout l'monde
2004

Est-ce que je dois absolument "interdire" l'ajout de texte contenant des ","
dans la BD? Probablement pas j'imagine!

Merci.


Aux Etas-Unis (pays de Microsoft ...) :
10.000 $ s'écrit : 10,000 $
et
10,30 $ s'écrit 10.30 $

Celà t'éclaire t-il ?

Dans une chaine de ton code VBA, la virgule est un séparateur et le point un
simple caractère...


Bonjour,

Dans un form je fais une requête SQL pour ensuite remplire une listBox avec
avec infos.

ex)
strQuery = "SELECT id, titre, annee...."
Set rs = dbCurr.OpenRecordset(strQuery)

Do While Not rs.EOF
strItems = rs!id & ";" & rs!titre & ";" & rs!annee ...

lbResults.AddItem (strItems)
rs.MoveNext
Loop

Jusque la tout va bien. Mon probleme est que s'il y a une virgule dans le
"titre"...

ex) "Allo, tout l'monde"

...dans la listBox aulieu d'affcher

id titre annee
3 Allo, tout l'monde 2004

ça affiche:

id titre annee
3 Allo tout l'monde
2004

Bizarre! Pourquoi ya at-il ce problème...et surtout comment y remédier.

Merci.






Avatar
loring
Bonjour,

Je crois que ce qu'il me faudrait c'est une requête qui remplacerait tout
les "," par leur représentation ASCII en VB.

ex)
"Allo, toi" - > "Allo, toi"
p.s. Le code ASCII d'une virgule est 44.

Je ne sais pas comment introduire la représentation d'un caractère ASCII ds
une string? Est-ce "&44", ",", etc? Et si après ds ma form la string
serait afficher comme "Allo, toi" et non "Allo, toi"?

Merci.


Bonjour,

Dans un form je fais une requête SQL pour ensuite remplire une listBox avec
avec infos.

ex)
strQuery = "SELECT id, titre, annee...."
Set rs = dbCurr.OpenRecordset(strQuery)

Do While Not rs.EOF
strItems = rs!id & ";" & rs!titre & ";" & rs!annee ...

lbResults.AddItem (strItems)
rs.MoveNext
Loop

Jusque la tout va bien. Mon probleme est que s'il y a une virgule dans le
"titre"...

ex) "Allo, tout l'monde"

...dans la listBox aulieu d'affcher

id titre annee
3 Allo, tout l'monde 2004

ça affiche:

id titre annee
3 Allo tout l'monde
2004

Bizarre! Pourquoi ya at-il ce problème...et surtout comment y remédier.

Merci.