Comment executer une reqette insert dans un script vb

Signaler
Messages postés
6
Date d'inscription
samedi 20 mars 2010
Statut
Membre
Dernière intervention
20 mai 2011
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
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
A voir également:

3 réponses

Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
6
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..
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
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)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
du coup, j'en ai oublié la requète :
conn.Execute sql