Syntaxe sql pour passer le nom d'une table depuis une variable
cs_odammas
Messages postés9Date d'inscriptionjeudi 13 décembre 2007StatutMembreDernière intervention12 mars 2009
-
9 janv. 2008 à 17:11
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
13 janv. 2008 à 17:57
Bonjour,
J'ai un petit soucis avec la requete ci dessous, je voudrais passer le nom de la
table via une variable ( dans l'exemple a) car cela peut concerner differentes tables
Mais je ne trouve pas la bonne syntaxe
Pouvez vous m'aider ?
Voici le bout de code
Sub ajout_liste()
Dim strsql, a As String
a = " & txtidcours1.Text & "
strsql = " insert into a (id_eleve,) values ('" & txtidchoixcours.Text & "',)"
Call ExecuteRequete(strsql)
End Sub
Merci
Odammas
A voir également:
Syntaxe sql pour passer le nom d'une table depuis une variable
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 9 janv. 2008 à 17:29
Salut,
Essaye cela :
Sub ajout_liste()
Dim strsql, sTable As String
sTable = txtidcours1.Text
strsql = "insert into " & sTable & " (id_eleve) values ('" & txtidchoixcours.Text & "')"
Call ExecuteRequete(strsql)
End Sub
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 9 janv. 2008 à 17:30
Salut
Supprime les virgules qui se trouvent devant les parenthèses de fin
+ considère 'a' comme une variable, pas comme le vrai nom d'une table
a = " & txtidcours1.Text & "
strsql = "insert into " & a & " (id_eleve) values ('" & txtidchoixcours.Text & "')"
Comme tu l'auras lu dans le forum sur les questions liées au SQL (?), si ton champ est :
- numérique : pas d'encadrement - à mon avis, id_eleve est surement un chiffre, donc il ne faudrait pas de '
- texte : encadrement par '
- date : encadrement par #
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 9 janv. 2008 à 17:33
Rappel aussi :
Dim strsql, sTable As String
ne signifie pas que strsql sera dimensionné en String, mais en Variant
Ca marchera quand même, mais ...
Toujours définir le type pour chaque variable
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 13 janv. 2008 à 17:57
Re
Copie/colle ici les deux lignes corrigées, qu'on y jette un oeil.
As-tu supprimé les ' qui encadrent txtidchoixcours.Text ?
Car, a mon avis, le champ id_eleve est numérique
D'autre part, tu auras lu aussi dans les milliers de questions du forum sur ce genre de problème que :
Si le nom d'une table ou d'un champ comporte des accents ou des espaces ou des caractères spéciaux, il faut encadrer le nom de ce champ ou de cette table avec des crochets [ et ]
Exemple :
"insert into [ma table spéciale] ..."
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)