Variabla visual basic dans une requete SQL

arbomont Messages postés 57 Date d'inscription mardi 21 septembre 2004 Statut Membre Dernière intervention 3 février 2014 - 21 sept. 2004 à 23:29
yomm Messages postés 515 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 10 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.

Merci de votre aide

9 réponses

yomm Messages postés 515 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 10 mars 2008 3
22 sept. 2004 à 00:06
tu dois écrire quelque chose du genre

"INSERT INTO TaTable (Champs1)" & " VALUES (" & Variable & ")"


attention au type de tes champs...par exemple, si Champs1 est un texte, tu dois écrire:
"INSERT INTO TaTable (Champs1)" & " VALUES (""" & Variable & """)"


voilà

Yomm >:)

[mailto:yommvb@ifrance.com yommvb@ifrance.com]

Et que la source soit avec toi!!!!!
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
22 sept. 2004 à 08:26
Yonn pour les champs text c'est :

......(' " & Variable & " ')

It@li@
0
yomm Messages postés 515 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 10 mars 2008 3
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....

Yomm >:)

[mailto:yommvb@ifrance.com yommvb@ifrance.com]

Et que la source soit avec toi!!!!!
0
arbomont Messages postés 57 Date d'inscription mardi 21 septembre 2004 Statut Membre Derniè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
0

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

Posez votre question
yomm Messages postés 515 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 10 mars 2008 3
22 sept. 2004 à 23:43
vu le message je pense voir le problème ..erreur de syntaxe...

donne moi exactement ton code pour ta requete sql stp

Yomm >:)

[mailto:yommvb@ifrance.com yommvb@ifrance.com]

Et que la source soit avec toi!!!!!
0
arbomont Messages postés 57 Date d'inscription mardi 21 septembre 2004 Statut Membre Dernière intervention 3 février 2014
23 sept. 2004 à 20:53
J'ai 2 feuille form1 et form2 dont voici le code :

Form1 :

Public Sub Main()

Dim nom, prenom, pays, cp, chambre, arrive, depart
nom = (nom.Text)
prenom = (prenom.Text)
pays = (pays.Text)
cp = (cp.Text)
chambre = (chambre.Text)
arrive = (arrivé.Text)
depart = (depart.Text)

End Sub

Private Sub Command1_Click()
Form1.Hide 'cache la fenêtre actuelle
Form2.Show 'montre la page2
End Sub

Private Sub Form_Load()

End Sub

Form2 :

DataEnvironment1.Commands("reservation").Execute

End Sub

Private Sub Form_Load()

End Sub

Et la requete sql dans le DataEnvironment1 :

INSERT INTO client (nom) " & " VALUES (""" & nom & """)

"nom" est un attribut de la table client, et c'est un varchar
0
yomm Messages postés 515 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 10 mars 2008 3
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 >:)

[mailto:yommvb@ifrance.com yommvb@ifrance.com]

Et que la source soit avec toi!!!!!
0
yomm Messages postés 515 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 10 mars 2008 3
24 sept. 2004 à 10:20
oups j'ai déjà la réponse à la quesion 5, d'après ton message d'erreur...il s'aggit d'un base mysql....

Yomm >:)

[mailto:yommvb@ifrance.com yommvb@ifrance.com]

Et que la source soit avec toi!!!!!
0
yomm Messages postés 515 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 10 mars 2008 3
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

voilà, avec ça tu dois pouvoir t'amuser!!!

@+

Yomm >:)

[mailto:yommvb@ifrance.com yommvb@ifrance.com]

Et que la source soit avec toi!!!!!
0
Rejoignez-nous