[VBA-ACCESS] Requête SQL

Bonjour,
Voicimon programme :

Private Sub dbt_Click()
Dim num As Integer
Dim ReqSQL As String
if (Me.Num_Eleve!="")
num = Me.Num_Eleve
ReqSQL = "SELECT DatedbtD FROM ELEVE,DIVISION WHERE ELEVE.Num_Division=DIVISION.Num_Division AND Num_Eleve =" & num
Me.Datedbt = ReqSQL
End If

End Sub

=> je voudrais que le résultat de la requête soit récupérer par une liste box du formulaire Me.Datedbt
Voila, d'avance merci
Configuration: Windows XP
Firefox 3.0

11 réponses

  1. Petit modif après lecture du forum, mais ça fonctionne toujours pas :

    Private Sub dbt_Click()
    Dim num As Integer
    Dim dmd As String
    Dim gpi As DAO.Database
    Dim req As DAO.Recordset
    Set gpi = CurrentDb()
    num = Me.Num_Eleve
    dmd = "SELECT DatedbtD FROM ELEVE,DIVISION WHERE ELEVE.Num_Division=DIVISION.Num_Division AND Num_Eleve =" & num
    DoCmd.RunSQL dmd
    Set req = gpi.OpenRecordset(SQL)
    Me.Datedbt = req
    1. La tu dis que ton formulaire "Me.Datedbt" prend les valeurs de ta requete

      mais tu dois prendre ton probleme dans l'autre sens, c'est quand tu affiche ton formulaire "Me.Datedbt" que ta liste box doit prendre les valeurs de ta requete

      sauf si j'ai rien compris et que ta liste box ce nomme Datedbt ?
      dans ce cas
      Datedbt.RowSource=req
      1. Merci beaucoup de m'avoir répondu ! Mais ça fonctionne encore pas
        Donc je fais un ptit résumer des listebox

        Listebox source => Num_Eleve
        Listebox receptrice => Datedbt

        J'ai essayer de mettre Datedbt.RowSource = req, j'ai eu le message d'erreur suivant :
        Erreur de compilation : incompatibilité de type ?
        1. Private Sub dbt_Click()
          Dim num As Integer
          Dim dmd As String
          Dim gpi As DAO.Database
          Dim req As DAO.Recordset
          Set gpi = CurrentDb()
          num = Me.Num_Eleve
          dmd = "SELECT DatedbtD FROM ELEVE,DIVISION WHERE ELEVE.Num_Division=DIVISION.Num_Division AND Num_Eleve =" & num
          DoCmd.RunSQL dmd //sert a rien
          Set req = gpi.OpenRecordset(SQL) //Set req = gpi.OpenRecordset(dmd)
          Me.Datedbt = req //Datedbt.RowSource=req
          1. J'ai toujours la même erreur, et j'ai .RowSource qui est surligner en jaune.
            Je précise que Datedbt est en texte de taille 50 !
            Merci j'avais fais quelques erreur, mais .RowSource ne fonctionne pas, l'entête de fonction n'est elle pas responsable de ce problème Private Sub dbt_Click() , pas de paramètre entre les () mais je pense pas vu qu'il ni a aucun retour ??
            1. tente ca alors
              Do While Not Req.EOF
              Datedbt.AddItem (Req![0])
              Req.MoveNext
              Loop

              Req.Close
              1. Désolé je débute dans le language VBA, peux tu me le mettre dans le code stp ;)
                1. Set req = gpi.OpenRecordset(dmd)
                  Do While Not Req.EOF
                  Me.Datedbt.AddItem (Req![0])
                  Req.MoveNext
                  Loop
                  Req.Close
                  1. Arg ça fonctionne presque Erreur 3265 Element non trouver dans la collection, pourtant quand je tape Me. j'ai une liste déroulante qui s'ouvre et me propose Datedbt par contre je fais entrer ça passe direct à la ligne, dur dur.
                    1. Ok bah merci beaucoup!! Je suis un gros noob, mais je vais essayer de me débrouiller avec ça !