petitcatenaire
Messages postés17Date d'inscriptionsamedi 6 décembre 2008StatutMembreDernière intervention 9 février 2009
-
6 déc. 2008 à 14:56
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 2010
-
6 déc. 2008 à 23:51
Bonjour à tous je suis débutant et je travaille sur Access 2000 et je souhaiterais tout simplement recuperer tous les nombres presentant ce critere
"Select Revue From abonnement where ID = "IDsaisie" "
Mais bien sur en langage VBA . . . Je ne sais pas comment m'y prendre de plus j'aimerais apres exploiter tout ces résultats afin d'afficher dans une zone de liste les noms des revue qui correspond a la reference que la requete si dessus correspond
Si je manque de clareté j'en suis desole et je suis pret a donner toutes les infos qu'ils vous ai necessaires
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 6 déc. 2008 à 20:48
Bonjour petitcatenaire
Le Sub ci-dessous charge la zone de liste maListe. :
Sub chargerListe
Dim rst As RecordSet
Dim dbs As Database
Dim sqlRq As String
Dim liste As String sqlRq "Select Revue From abonnement where ID ""IDsaisie"""
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(sqlRq)
With rst
Do Until .EOF
liste = liste & ";" & !Revue
.MoveNext
Loop
.Close
End With
dbs.Close
maListe.RowSource = Mid(liste, 2)
Me.Requery
End Sub
Vérifie que la propriété Origine source de la zone de liste est bien Liste valeurs
petitcatenaire
Messages postés17Date d'inscriptionsamedi 6 décembre 2008StatutMembreDernière intervention 9 février 2009 6 déc. 2008 à 21:17
Je suis un debutant dans access et je dois avouer que je ne comprend pas ton code comment il fonctionne ce qu'il fait et comment cela ne serait pas trop demander de mettre des commentaires ? s'il vous plait
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 6 déc. 2008 à 21:46
Voici :
Sub chargerListe
Dim rst As RecordSet
Dim dbs As Database
Dim sqlRq As String
Dim liste As String
' création de la requête sqlRq "Select Revue From abonnement where ID ""IDsaisie"""
' création d'un objet Database faisant référence à la bdd du project actuel (le mdb)
Set dbs = CurrentDb
' création d'un objet Recordset contenant les enregistrements résultant de la requête
Set rst = dbs.OpenRecordset(sqlRq)
' balayage des enregistrements, récupération du champ Revue, création d'un string contenant la liste des revues
' séparées par des points-virgule
With rst
Do Until .EOF
liste = liste & ";" & !Revue
.MoveNext
Loop
' libération des ressources de la DAO
.Close
End With
dbs.Close
' mise a jour de la source de données de la zone de liste
maListe.RowSource = Mid(liste, 2)
' réactualisation des données du formulaire afin que la zone de liste prenne en compte la source de données
Me.Requery
End Sub
petitcatenaire
Messages postés17Date d'inscriptionsamedi 6 décembre 2008StatutMembreDernière intervention 9 février 2009 6 déc. 2008 à 22:00
Je suis vraiment desole mais j'ai vraiment trop de mal avec toutes ces fonctions et le but est que je dois coder et bien expliquer clairement comment je fais et pouvoir le refaire cela m'embete de devoir abandonner l'idée d'utiliser ton code qui a l'air de bien fonctionner mais je coince a pratiquement toutes les lignes comme la fonction with ainsi que le rst ou EOF . . . Desole mais merci beaucoup d'avoir voulu m'aider mais je suis definitivement trop mauvais en VBA javascript:Insert_Emoticon :( . . .
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 6 déc. 2008 à 23:51
Sois cool, ça ne me dérange pas plus que ça d'aider un débutant.
Pour le With, oublie-le et remplace le bloc de code :
With rst
Do Until .EOF
liste = liste & ";" & !Revue
.MoveNext
Loop
' libération des ressources de la DAO
.Close
End With
par :
Do Until rst.EOF
liste = liste & ";" & rst!Revue
rst.MoveNext
Loop
' libération des ressources de la DAO
rst.Close
Ces deux blocs de code sont rigoureusement identiques. Le With nomObjet te dispense simplement d'écrire nomObjet devant chaque propriété ou méthode (nomObjet.EOF, nomObjet!Revue, nomObjet.MoveNext, nomObjet.Close).
Le rst, c'est simplement le résultat de ta requête, qui s'est exécutée automatiquement lors de l'instruction Set rst dbs.OpenRecordset(sqlRq). C'est donc une liste d'enregistrements extraite de ta table abonnement. Si tu as, dans ta table, deux enregistrements dont le champ ID contient "IDsaisie", alors rst contient ces deux enregistrements. Mais j'ai fortement l'impression que IDsaisie est le nom d'une variable ou d'un Textbox. Si c'est le cas, ta requête doit être corrigée ainsi : sqlRq "Select Revue From abonnement where ID = """ & IDsaisie & """"
Quand à rst.EOF (abrégée en .EOF par la clause With), cette propriété devient vraie lorsque tous les enregistrements du rst ont été lus au moyen de l'instruction rst.MoveNext et permet donc de sortir de la boucle de lecture.
Si ces explications ne te permettent pas d'avancer, ça ne me pose pas de problème si tu m'envoies ton mdb à l'adresse [mailto:pboudouard@hotmail.com pboudouard@hotmail.com]. Je l'adapterai et te le renverrai.