C'est quoi la faute dans mon code SQL?

Fermé
thedavix Messages postés 466 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 31 août 2006 - 12 sept. 2002 à 11:12
thedavix Messages postés 466 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 31 août 2006 - 13 sept. 2002 à 09:28
Voila j'ai fait un bouton dans un formulaire access,
qui est sencé prendre tout les formulaires qui sont répertorié dans MsysObects et copiers les noms dans une table, alors j'ai écrit ce code
---------
Dim SQLTxt As String
Dim SQLSelect As String

SQLSelect = "SELECT MSysObjects.Name FROM MSysObjects WHERE ((MSysObjects.Type)=-32768) ORDER BY MSysObjects.Name; "

SQLTxt = "INSERT INTO tTest(tables) VALUES (SQLSelect) "

Mais ca marche pas.. il ne se passe rien...
qqun peut m'expliquer?

" Le vrai savant n'est pas celui qui apprend,
mais celui qui comprend... " =;o)
A voir également:

4 réponses

Utilisateur anonyme
12 sept. 2002 à 16:15
SQLSelect c'est juste un chaîne.

faut que tu crées un objet QueryDef, même temporaire, à partir de ça, et seulement ensuite tu insères, sinon, tout simplement:

insert into tTest(tables)
select Name FROM MSysObjects
WHERE Type=-32768
ORDER BY Name;

kinder.surprise,
le maton du matou
0
thedavix Messages postés 466 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 31 août 2006 35
12 sept. 2002 à 17:29
J'ai pas trop compris, t'arriverai a etre un peu plus explicite? lol.. désolé mais le SQL.. je ne suis pas a l'aise avec...
voila mon code c'est quoi que je dois rajouter et ou?
-------------
Private Sub Command12_Click()
Dim SQLTxt As String
Dim SQLSelect As String
Dim bds As Database
Dim rst As Recordset

SQLSelect = "SELECT MSysObjects.Name FROM MSysObjects WHERE ((MSysObjects.Type)=-32768) ORDER BY MSysObjects.Name; "

Set bds = CurrentDb

SQLTxt = "INSERT INTO tTest(tables) VALUES (SQLSelect) "

Set rst = bds.OpenRecordset(SQLTxt)

End Sub
---------

je te remercie vraiment si tu as le temps de m'aider.. sinon tampis..

" Le vrai savant n'est pas celui qui apprend,
mais celui qui comprend... " =;o)
0
Utilisateur anonyme
12 sept. 2002 à 19:13
je n'ai plus trop le temps là mais c'était juste pour te montrer, dans la deuxième partie, qu'en une seule requête tu fais tout, pas la peine de sélectionner d'abord puis insérer, et par ailleurs, QueryDef il faut que tu jètes un oeil dans la hiérarchie d'objets DAO.

Sinon, jette aussi un oeil sur Execute, des bricoles comme ça.

Tu a une requête action devant toi, donc typiquement, tu n'as pas besoin qu'elle te renvoie d'autre résultat que "OK ça a marché" en gros, donc, l'objet recordset n'est pas le plus aproprié.

Désolé, le forum en vrac toute la journée ne m'a pas fait gagner de temps, mais avec ces pistes là tu peux sans problème régler tout ça assez rapidement
kinder.surprise,
le maton du matou
0
mouse Messages postés 136 Date d'inscription mercredi 4 avril 2001 Statut Membre Dernière intervention 13 avril 2007 10
12 sept. 2002 à 19:42
Tu peux utiliser

docmd.runSQL "ta chaine de caractere contenant le SQL"

donc a la place de
Set rst = bds.OpenRecordset(SQLTxt) qui ne marche pas je pense
ecris

docmd.runSQL SQLTxt

A+
0
thedavix Messages postés 466 Date d'inscription mardi 21 mai 2002 Statut Membre Dernière intervention 31 août 2006 35
13 sept. 2002 à 09:28
Merci ca marche maintenant,
J'ai juste modifié
le insert xxxxx values et j'ai tout mit en un
et ca marche parfaitement
Je te remercie encore une fois...

bonne journée

" Le vrai savant n'est pas celui qui apprend,
mais celui qui comprend... " =;o)
0
Utilisateur anonyme
12 sept. 2002 à 23:51
oui voilà, typiquement

kinder.surprise,
le maton du matou
0