Problème de docmd.runsql sous VB Access

GuestCam Messages postés 56 Statut Membre -  
 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.

3 réponses

  1. blux Messages postés 2052 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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
  2. GuestCam Messages postés 56 Statut Membre
     
    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
  3. blux Messages postés 2052 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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
    1. 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
    2. Marchello
       
      Utiliser .ReQuery pour exécuter la requete paramétrée
      0