Boucle sur enregistrements Access [Résolu]

Messages postés
2
Date d'inscription
mercredi 30 novembre 2011
Dernière intervention
1 décembre 2011
- - Dernière réponse : osoy
Messages postés
2
Date d'inscription
mercredi 30 novembre 2011
Dernière intervention
1 décembre 2011
- 1 déc. 2011 à 18:30
Bonjour,
Après de nombreuses recherches je m'en remets à votre savoir…
Je suis en train de modifier une base existante et n'y connais pas grand-chose en VBA. Alors je vais essayer d'être clair : Je suis sur un formulaire "Produit principal" dans lequel se trouve un sous-formulaire "Consultation Produits". Dans "Produit principal" on trouve une liste déroulante "Codeart" récupérant les données de la table "Tablelisteart" (un seul champs : N° qui sont mes codes produits) et qui permet d'actualiser le sous-formulaire. J'ai un bouton "Execute" qui me permet d'executer mon code en fonction de ma sélection dans la liste déroulante. Tout ceci fonctionne.
Ce que j'aimerais c'est l'execution de ma procédure pour chacun des enregistrements de ma liste déroulante "Codeart" (… ma table "Tablelisteart"). Je suppose qu'il faut faire une boucle mais comment?
Ah oui, il faut ca fonctionne à partir d'Access 2000.
Extrait du code qui fonctionne :

Private Sub Execute_Click()

Dim Prospect As Long
Dim word As String
Dim DocName As String
Dim LinkCriteria As String
LinkCriteria "[NuméroProduit] Forms![Produit principal]![Codeart]"

DocName = "Consultation_Gamme"

DoCmd.OpenForm DocName, , , LinkCriteria, A_READONLY

Dim varia As String

DoCmd.RunCommand acCmdRefresh

Dim pdfjob As PDFCreator.clsPDFCreator
Dim sPDFName As String
Dim sPDFPath As String
Dim sPrinterName As String
Dim sReportName As String
Dim lPrinters As Long
Dim lPrinterCurrent As Long
Dim lPrinterPDF As Long
Dim prtDefault As Printer

varia = Left(Forms![Consultation_Gamme]![NuméroProduit], 1)

If varia = "A" Then

LinkCriteria "[Produit] Forms![Consultation_Gamme]![NuméroProduit]"

[…] bla bla bla bla bla bla bla bla bla

DoCmd.RunMacro "Fermeture_Consultation_Gammes"
End Sub
Merci pour votre aide
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
14323
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
15 décembre 2018
3
Merci
Bonjour,

Tu es en VBA Access, pas en VB.NET, attention à la catégorie, je déplace.
Je ne connais pas beaucoup VBA Access, mais essayes d'ouvrir un Recordset, puis boucle avec un Do/Loop en utilisant la valeur de la propriété EOF du Recordset. Tu passe à l'enregistrement suivant en appellant la méthode MoveNext.

Voir la documentation des recordset disponible sur Internet.

Do Until MonRecordset.Eof
...
MonRecordset.MoveNext
Loop

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 96 internautes nous ont dit merci ce mois-ci

Commenter la réponse de NHenry
Messages postés
2
Date d'inscription
mercredi 30 novembre 2011
Dernière intervention
1 décembre 2011
0
Merci
Bonjour,

OK... Merci pour l'aide
Je vais chercher du coté des Recordset
Commenter la réponse de osoy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.