Boucle sur enregistrements Access [Résolu]

osoy 2 Messages postés mercredi 30 novembre 2011Date d'inscription 1 décembre 2011 Dernière intervention - 30 nov. 2011 à 15:54 - Dernière réponse : osoy 2 Messages postés mercredi 30 novembre 2011Date d'inscription 1 décembre 2011 Dernière intervention
- 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 

2 réponses

Répondre au sujet
NHenry 14133 Messages postés vendredi 14 mars 2003Date d'inscription 22 avril 2018 Dernière intervention - 30 nov. 2011 à 20:22
+3
Utile
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
---
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de NHenry
osoy 2 Messages postés mercredi 30 novembre 2011Date d'inscription 1 décembre 2011 Dernière intervention - 1 déc. 2011 à 18:30
0
Utile
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.