Problème de docmd.runsql sous VB Access

GuestCam Messages postés 56 Date d'inscription   Statut Membre Dernière intervention   -  
 Marchello -
Salut et Bonne année 2007 à tous les développeurs.

En j'ai écrit un code pour tester la requête du code suivant:

Private Sub cmdExecuteQuery_Click()
Dim db As DAO.Database, rst As DAO.Recordset
Dim sqlString As String
' Ouverture de la base de données
Set db = DBEngine(0)(0)
nom = "Jean"
prenom = "Dupond"
'sSQL = " SELECT * FROM TEST " _
'& "Where Name =" & Chr(34) & logg & Chr(34)
sqlString = " SELECT Name FROM TEST " _
& "Where Name = " & Chr(34) & nom & Chr(34) & " AND SurName= " & Chr(34) & prenom & Chr(34)
Set rst = CurrentDb.OpenRecordset(sqlString)
If rst.RecordCount <> 0 Then
DoCmd.RunSQL (sqlString)
MsgBox "Je veux afficher la requête"
DoCmd.OpenQuery "sqlString", acNormal, acEdit
End If
End Sub

mais l'exécution s'arrête sur DoCmd.RunSQL(sqlString) avec pour messade d'erreur :"A RunSQL action requires an argument consisting of an SQL statement". merçi d'avance pour votre aide.
A voir également:

3 réponses

blux Messages postés 27119 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Salut,

la commande runsql n'exécute que des requêtes action (delete, update, insert...), car ACCESS ne sait pas où afficher les résultats d'une requête selection.

Si tu veux tester, il faut créer un formulaire avec une zone de liste, puis affecter à cette zone de liste la source de ta requête (nom_zone.rowsource=sqlstring), ensuite, à l'appui sur le bouton, tes données s'afficheront...
0
GuestCam Messages postés 56 Date d'inscription   Statut Membre Dernière intervention  
 
Merçi Blux. Mais en cliquant sur le bouton la zone de liste reste vide pourtant le résultat de la requête n'est pas vide. J'utilise la ComboBox pour prendre la résultat; je ne sais pas s'il y a une propriété à modifier. Merçi encore.
0
blux Messages postés 27119 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Ben au lieu de lancer un runsql, tu mets la ligne suivante :

nom_zone.rowsource=sqlstring

en ayant bien sûr paramétré la zone de liste (et non liste déroulante), pour afficher au moins une colonne...
0
Tiguidou
 
Merci Blux....Ça marche !!!

Private Sub Rechercher_Click()
Dim sSQL As String
Dim str1 As String
Dim str2 As String

str1 = Table.Value
str2 = Champ.Value

sSQL = "select Map.Table,Map.Champ,Map.ChampNo from Map Where Map.Table = '" & str1 & "' and Map.Champ = '" & str2 & "'"
Liste14.RowSource = sSQL
Liste14.SetFocus

End Sub
0
Marchello
 
Utiliser .ReQuery pour exécuter la requete paramétrée
0