[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. Ok bah merci beaucoup!! Je suis un gros noob, mais je vais essayer de me débrouiller avec ça !
    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. Set req = gpi.OpenRecordset(dmd)
        Do While Not Req.EOF
        Me.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. tente ca alors
            Do While Not Req.EOF
            Datedbt.AddItem (Req![0])
            Req.MoveNext
            Loop

            Req.Close
            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. 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. 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. 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. 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