Comment executer une reqette insert dans un script vb

hanouna021 Messages postés 6 Date d'inscription samedi 20 mars 2010 Statut Membre Dernière intervention 20 mai 2011 - 17 mai 2011 à 10:41
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 17 mai 2011 à 11:10
bonjour toutle monde,je suis debutante en vb, svp aidez moi a corriger mon script vb... j'ai reussi de se connecter a ma base de donnée mysql mais j'arrive pas a realiser l'execution de ma requete insert:

Set conn = CreateObject("ADODB.Connection")
Connexion = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=pfe;UID=root;PASSWORD=;"
conn.CommandTimeout = 30
conn.Open connexion
msgbox "connexion au serveur OK"


For Each objEvent in colLoggedEvents
'Dim command
Dim sql 'As String
sql = "insert into logfile (category,computername,eventcode,message,recordnumber,sourcename,timewritten,eventtype,user) values ("& objEvent.Category & "," & objEvent.ComputerName & ", " & objEvent.EventCode & "," & objEvent.Message &","& objEvent.RecordNumber & "," & objEvent.SourceName & "," & objEvent.TimeWritten & ", " & objEvent.Type & ", " & objEvent.User & ");"

sql.Execute

MsgBox ("AJOUT EFFECTUE")
Next
merci d'avance

3 réponses

lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
17 mai 2011 à 10:48
Bonjour,

Avant d'exécuter ta requete, affiche-la pour vérifier que tout semble correct.
Si tu insères des chaînes de cractères, il faut rajouter des ' et les doubler en cas d'apostrophe, mais en effectuant une recherche sur le site, tu trouveras des exemples, c'est un sujet récurrent.

L'expérience, c'est une connerie par jour, mais jamais la même..
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
17 mai 2011 à 11:09
Salut

Ton code ressemble à du VB6 et pas du VB.Net, mais tu parles aussi de script ...
Il est important de bien définir ton environnement pour éviter qu'on perde du temps en répondant à côté de la plaque = choisis bien la catégorie de ta question

En complément à ce que t'a dit Lolokon :

Débogage :
- F9 sur une ligne de code
Le programme s'y arrêtera au prochain passage
Survole avec la souris tes variables pour visualiser leur contenu, ou va dans la fenêtre de debogage (Ctrl-G) et tape
? maVariable
pour qu'elle s'inscrive dans la fenêtre.
- F8 (VB6) ou F10 (.Net) pour avancer d'une ligne de code
- F5 pour continuer normalement

Si le champ est déclaré ***dans la table*** de type :
- Texte : Encadrer les valeurs par des apostrophes '
- Date : Encadrer les valeurs par des dièses #
- Numérique : pas d'encadrement
De plus, si le nom d'une table ou d'un champ comporte des caractères spéciaux (accents, espaces ...), il faut encadrer le nom de ces table ou champ par des crochets droits [ et ]

sql.Execute
Ceci doit générer une erreur
"sql" est ta chaine représentant ta requète, pas ta connexion
--> conn.Execute

Fais toujours une compilation avant de lancer ton programme

+ Regarde les paramètres optionnels de .Execute : Tu peux fournir une variable dans laquelle la fonction renverra le nombre de lignes touchées par ta requète : Il n'y a que cela qui peut te dire si l'insertion c'est bien passée

Vala
Jack, =fr MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
17 mai 2011 à 11:10
du coup, j'en ai oublié la requète :
conn.Execute sql
0
Rejoignez-nous