arbomont
Messages postés57Date d'inscriptionmardi 21 septembre 2004StatutMembreDernière intervention 3 février 2014
-
21 sept. 2004 à 23:29
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 2008
-
24 sept. 2004 à 12:25
bonjour,
Je n'arrive pas à inserer une variable visual basic dans une requete SQL.
Je developpe sous VB 6 et je me sers du concepteur pour créé ma requete SQL.
Voilà ce que je cherche à faire :
dim variable;
dans le concepteur : INSERT INTO TABLE VALUE (variable);
ça me retourne une erreur de syntaxe dans la requete.
Je n'arrive pas à trouver la bonne syntaxe.
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 22 sept. 2004 à 09:53
>>Italia
1) mon pseudo est yomm et non yonn ;-)
2) tu peux écrire ...(""" & Variable & """) car si dans ta variable tu as par exemple "c'est l'été" tu auras des problèmes en écrivant ta requète comme ceci : ......(' " & Variable & " ')..... "" permet de forcer les double guillemet ....cela évite les problèmes d'apostrophe!!!
Voilà, c'était juste pour expliquer ma notation....
arbomont
Messages postés57Date d'inscriptionmardi 21 septembre 2004StatutMembreDernière intervention 3 février 2014 22 sept. 2004 à 21:35
Désolé, ça ne mache pas :
Dans ma base MySQL j'ai une table "client" avec une colone "nom" qui a pour type "varchar"
Dans mon code j'ai une variable "Dim nom"
Selon vos conseil, voici donc ma requete :
"INSERT INTO client (nom) " & " VALUES (""" & nom & """)"
A l'execution il y a une erreur avec un message visual basic :
Erreur d'execution '-2147217900(80040e14)':
[MySQL][ODBC 3.51 Driver][Mysqld-1.0.20a-nt]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near "INSERT INTO client(nom) "&"VALUES("""&nom&""")"at
Que faire ? aidez moi svp je bloque depuis une semaine et je craque.
Je vous rappelle que j'utilise le concepteurs de visual basic 6
Vous n’avez pas trouvé la réponse que vous recherchez ?
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 24 sept. 2004 à 10:17
j'aurais pas fait comme ça....j'ai plusieurs questions à te poser avant de pourvoir te proposer un solution....
1) Tu passe par le concepteur car tu es débutant ? ou bien c'est une question de contraintes?
2) ton but est simplement d'ajouter un enregistrement (ligne) dans ta base de donnée ? notament en testant avec le champ nom , c'est bien ça?
3) quel est le but de la form1 et celui de la form2 ?
4) tout tes champs sont de type varchar ?
5) quel type de base de donnée attaques-tu ? Base de donnée type Access (*.mdb) ? Ce serait plus simple ;-)
Essaie de répondre à ces 5 questions stp afin que je puisse t'aider....
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 24 sept. 2004 à 12:25
voici un exemple de code qui va te permetre d'insérer un enregistrement dans ta base SQL....
Reprenons tout depuis le début....
première étape : la connection à la base...
dans les références de ton projet, ajoute :
Microsoft ActiveX Data Objects 2.5 Library
deuxième étape : crée un module dans lequel tu vas déclarer quelques variables...
voici la liste :
'sert pour la connection à la base
Global VarConnect As ADODB.Connection
'sert pour les selectons dans les tables
Global Table As ADODB.Recordset
'sert les requetes SQL
Global SQL As String
'ça c'est pour la connection à proprement parlé
Public Const ReqConnBase = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=IPduServeur;DATABASE=NomDeLaBase;UID=Login;PWD=Password;OPTION=35"
'remplace les noms en rouge par tes propres valeurs
'déclarons ici tes variables nom, prenom etc....
Global nom As String
Global prenom As String
Global pays As String
Global cp As String
Global chambre As String
Global arrive As String
Global depart As String
voilà pour ton module
maintenant voyons le code à proprement parlé
troisième étape : crée une form dans laquel tu places tes différents TextBox et ton bouton...
Attention: j'ai vu que tu avais nommé un de tes textbox arrivé , évite les accents dans les variables et les noms de tes controles....
donc maintenant que les controles sont placés et nommé, voyons le code...
la connection : Private Sub Form_Load()
'initialisatoin de ta variable de connection
Set VarConnect = New ADODB.Connection
'liaison avec ta base via la string de connection
VarConnect.ConnectionString = ReqConnBase
'ouverture de la connection
VarConnect.Open
End Sub
tu es désormais connecté à ta base de données MySQL
maintenant faisons le code que tu voulais tester ....à savoir, rajouter un enregistrement et y mettre le nom dont la valeur est contenu dans ton textbox nom .
Private Sub Command1_Click()
'attribuons aux variables leur valeur respective
nom = nom.Text
prenom = prenom.Text
pays = pays.Text
cp = cp.Text
chambre = chambre.Text
arrive = arrive.Text
depart = depart.Text
'définissons la requete SQL
SQL = "INSERT INTO client (nom) VALUES """ & nom & """)"
'et maintenant executons la dite requete SQL
VarConnect.Execute SQL
End Sub
voilà, tu dois désormais avoir ton enregistrement avec sa valeur dans ta table client
une dernier chose à faire...Il faut évidemment fermer ta connection avec la base de données, lorsue tu quittes ton programme...
Private Sub Form_Unload(Cancel As Integer)
VarConnect.Close
Set VarConnect = Nothing
End Sub