cecelecyborg
Messages postés16Date d'inscriptionmercredi 10 septembre 2003StatutMembreDernière intervention 2 octobre 2007
-
14 mars 2006 à 11:39
cecelecyborg
Messages postés16Date d'inscriptionmercredi 10 septembre 2003StatutMembreDernière intervention 2 octobre 2007
-
14 mars 2006 à 13:52
Bonjour à tous,
Je suis toujours avec mes problèmes de programmation en VB6...
Donc cette fois ci j'ai besoin d'aide pour l'insertion d'une variable numérique dans une table Access.
La table Access a été créée en ligne de code sql via du VB6, elle s'appelle Customer et contient 2 colonnes (Colonne et Colnum [Original non ?])
Petite précision, je suis en settings Américain (L'appli doit être utilisée aux US, donc les chiffres ont ce format 1,000.00)
Voilà le bout de code :
Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adUseClient = 3
Dim oConnection
Dim oRecordset
Dim Titi As Currency
Set oConnection = CreateObject("ADODB.Connection")
Set oRecordset = CreateObject("ADODB.Recordset")
Load_Access_Connection
While oRecordset.EOF() = False
Titi = oRecordset.Fields(1).Value
If IsNumeric(Titi) Then
MsgBox (Titi)
Else
MsgBox ("bof")
End If
Access_Connection.Execute ("Insert into Customer(colnum) values ('" + Titi + "')")
oRecordset.MoveNext
End If
Wend
Au début, le type de ma variable n'était pas assigné, donc j'ai testé tous les types, ça change rien.
Dans mon fichier Access, Colnum est bien en numérique.
Voici un bout de code qui marche lui :
Dim Toto
Load_Access_Connection
Toto = "32.3"
Access_Connection.Execute ("Insert into Customer(colnum) values ('" + Toto + "')")
Et je vois pas trop la différence avec mon bout de code... sauf le recordset, c'est vrai...
J'espère que vous pourrez m'aider et je vous en remercie par avance
ça fait 2 jours que je suis bloquée sur ça
Bonne journée,
Céline.
A voir également:
Type incompatible quand insertion d'une variable dans base Access
olixelle
Messages postés506Date d'inscriptionvendredi 30 juillet 2004StatutMembreDernière intervention 3 mars 20082 14 mars 2006 à 12:15
Salut :)
ton problème vient des apostrophes autour de ta valeur: ces dernières ne sont utilises que pour les valeurs de type texte ou date.
Dans ton cas tu dois mettre:
Access_Connection.Execute ("Insert into Customer(colnum) values (" + Toto + ")")
cecelecyborg
Messages postés16Date d'inscriptionmercredi 10 septembre 2003StatutMembreDernière intervention 2 octobre 2007 14 mars 2006 à 13:52
Bonjour,
J'avais déjà essayé sans les simple quote mais ça ne marchait pas
Pour la concaténation, je ne suis pas pro du tout en VB6, merci pour le tuyau
Enfin, j'ai réussi à trouver une solution à mon piti problème :
je rappelle mon souci : J'ai un champ Numérique dans une base Access que je veux renseigner. Je lui mets un chiffre via un recordset, marche pas même avec un CCur() sur la valeur...
Et bien, la solution, c'est justement faire l'inverse de ce que je veux obtenir... Voilà la ligne qui marche sans l'erreur Type Incompatible =>
Access_Connection.Execute ("Insert into Customer(colnum) values ('" & CStr(oRecordset.Fields(1).Value) & "')")
Oui, vous lisez bien, je passe ma variable en texte pour qu'elle soit en Numérique...
Donc plus de messages d'erreurs en faisant ça et surtout, dans ma table Access, les données sont bien enregistrées et sont en format Numérique...
Y'a de quoi perdre des neurones
Bonne journée,
Céline