Boucle sur enregistrements Access

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

2 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
30 nov. 2011 à 20:22
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
---
3
osoy Messages postés 2 Date d'inscription mercredi 30 novembre 2011 Statut Membre Dernière intervention 1 décembre 2011
1 déc. 2011 à 18:30
Bonjour,

OK... Merci pour l'aide
Je vais chercher du coté des Recordset
0
Rejoignez-nous