[Déplacé VB6 -> VBA] Impression Etat enregistrement par enregistrement avec VB
Fuzcrew
Messages postés4Date d'inscriptionmardi 19 janvier 2010StatutMembreDernière intervention21 janvier 2010
-
19 janv. 2010 à 10:05
Fuzcrew
Messages postés4Date d'inscriptionmardi 19 janvier 2010StatutMembreDernière intervention21 janvier 2010
-
19 janv. 2010 à 11:58
Access 2003
J'ai un état basé sur un formulaire (Etat.code = Formulaire.code) qui lui ai basé sur une requête retournant plusieurs enregistrement. Je souhaite que pour chaque enregistrement, l'etat se lance, s'imprime et se ferme (ou s'imprime directement).
Je suis donc passé par un code vb qui parcours les enregistrement, le parcours marche (puisque les msgbox fonctionnent), mais il ne m'imprime que le premier enregistrement.
Voila mon code :
sur activation du formulaire :
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("R_test")
rs.MoveFirst
While Not rs.EOF
MsgBox rs("code_rep")
DoCmd.OpenReport "Etat", acViewNormal, , " [Code_rep] = " & rs("Code_rep")
rs.MoveNext
Wend
rs.Close
Peut etre le souci viendrait de l'emplacement de ce code
Si vous voyer quelque chose, merci d'avance !
A voir également:
[Déplacé VB6 -> VBA] Impression Etat enregistrement par enregistrement avec VB
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 19 janv. 2010 à 10:54
Salut
Pas habitué à Access, mais quelque chose me titille :
Comment fais-tu le lien entre DoCmd et ton "rs" ?
A mon avis, il faudrait remettre ton "R_test" dans le champ FilterName du DoCmd
De quel type est le champ Code_rep dans ta table ?
Numérique ou texte ?
Si texte, manque des ' : "[Code_rep] = '" & rs("Code_rep") & "'"
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Fuzcrew
Messages postés4Date d'inscriptionmardi 19 janvier 2010StatutMembreDernière intervention21 janvier 2010 19 janv. 2010 à 11:58
Oui en effet, je viens de résoudre le problème et il venait du type de champs. J'ai préféré utilisé un de mes champs numérique.
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("R_test")
rs.MoveFirst
While Not rs.EOF
MsgBox rs("code_rep")
DoCmd.OpenReport "E_test", acViewNormal, "", "[num_auto]=" & rs("num_auto")
rs.MoveNext
Wend
rs.Close