INSERT avec virgule sous VBA

Clonk Messages postés 278 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 29 août 2006 - 26 août 2003 à 10:15
 LordZerty - 22 oct. 2012 à 08:46
Bonjour,
J'ai un petit problème en VBA, sûrement pas grave, mais disons que j'ai un problème de timing pour m'y pencher à fond. C'est pourquoi je fais appel à vous:
(je précise, je ne maitrise absolument pas le VBA)
j'ai une requête d'ajout "à l'ancienne" sous VBA du type:
INSERT INTO MaTable (nom, durée) VALUES ('" & texte1.value & "', " Texte2.value")
(pour les petits malins qui me sortiraient qu'en VB, .value d'un text, ça n'existe pas, sachez qu'en VBA, .text ça marche pas, VB et VBA => pas pareil)

Mon problème est le suivant : il peut arriver que texte2.value soit un nombre décimal (0,5), or, quand je lance ma requête, il me prends cette virgule pour un séparateur de champs (logique!)
J'ai testé REPLACE pour changer la virgule en point, mais ça ne change rien, il y a toujours cette £%*$ de virgule
Ce n'est pas un truc très compliqué, j'espère que quelqu'un aura la réponse
Merci!

9 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
26 août 2003 à 10:23
Regardes du coté des fonctions de conversion
cdbl --> double
cdec --> decimal
cstr --> string

....

Cdbl(text2.value) doit etre la solution
0
Clonk Messages postés 278 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 29 août 2006
26 août 2003 à 10:37
bah non ça marche pas... merci quand meme...
mais j'y pense (j'ai pas la machine à côté de moi pour faire ça)
INSERT INTO MaTAble...
pour séparer les champs, si je met ; ça peut marcher ou pas?
(question bête, mais quand on peut pas tester...)
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
26 août 2003 à 10:50
INSERT INTO MaTable (nom, durée) VALUES ('" & texte1.value & "', " & cdbl( Texte2.value) & ") "
ne fonctionne pas
0
Clonk Messages postés 278 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 29 août 2006
26 août 2003 à 11:08
j'ai utilisé une variable entre les 2
duree = Cdbl (texte2.value)

INSERT INTO MaTable (nom, durée) VALUES ('" & texte1.value & "', " & duree & ") "

et nan, ça marche pas, il croit toujours qu'il y a 3 champs au lieu de 2
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tdvst Messages postés 2 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 22 août 2005
16 déc. 2003 à 11:29
C'est normal que ca marche pas parce que VBA convertit ton durée en chaine de caractere donc tu as une requete de la forme INSERT INTO MaTable (nom, durée) VALUES ('lalala',1,3)

Par contre c'est bizarre que REPLACE ne marche pas
Essaye un truc du genre
dim duree as string

duree=REPLACE(Text2.value,",",".")
INSERT INTO MaTable (nom, durée) VALUES ('" & texte1.value & "', " & duree & ") "

sinon tu peux essayer
INSERT INTO MaTable (nom, durée) VALUES ('" & texte1.value & "','" & cdbl( Texte2.value) & "') "
en espérant qu'il fasse la conversion lui meme

sinon pourquoi tu n'utilise par les recordset?



moi.super();
moi.goURL(http://aldelorme.free.fr);
moi. :big) 
0
lamychoco Messages postés 1 Date d'inscription vendredi 13 août 2004 Statut Membre Dernière intervention 23 novembre 2004
23 nov. 2004 à 15:35
Salut

Je debute aussi,mais pour ton probleme de virgule,as tu essaye de chercher une sulution en mutipliant et en divisant ton chiffre.Du genre
ton 0,5 le multiplier par 10 pour avoir une valeur entiere puis le remultiplier avant l'afficher.Je suis desole de ne pas pouvoir etre
plus explicite mais je plus à mon aise avec excel.

lamychoco
0
lucrobin Messages postés 4 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 17 août 2005
17 août 2005 à 09:35
Bonjour,
Vas plutôt dans "Panneau de configuration/Options régionnales/nombre" et change
le symbole décimal "," (virgule) par "." (point) (paramètrage système Windows)
Salut
0
tdvst Messages postés 2 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 22 août 2005
22 août 2005 à 10:45
Bien sur, c'est une solution de changer le symbole decimal et de se mettre en format americain (comme VBA est d'abords ecrit en anglais il reconnait les point comme symbole decimal) mais c'est un peu brute comme methode surtout si tu veux encore continuer a taper tes chiffres a virgules dans windows (par exemple sous excel)


moi.super();
moi.goURL(http://aldelorme.free.fr);
moi.
0
Une solution à était trouver ? Car je rencontre le même problème et je ne trouve pas de solutions même en changeant les virgules par des points...

Je vous remercie d'avance pour votre aide.
0
Rejoignez-nous