Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/12/2011, 10h17   #1
Membre du Club
 
beauchat symba
Inscription : janvier 2010
Messages : 95
Détails du profil
Informations personnelles :
Nom : beauchat symba

Informations forums :
Inscription : janvier 2010
Messages : 95
Points : 50
Points : 50
Par défaut Imprimer plusieurs fois un Etat selon chaque ligne d'une combo

Bonjour à tous

J'ai un Etat alimenté par une Requête qui a pour Critère [OpenArgs]
Un Formulaire de Saisie de Critère pour passer le paramètre à la Requête
Une combo cmbDptPayeur sur le Formulaire pour choisir la Clé_Département
Et un Bouton pour lancer l'Impression

Je veux sur le Bouton_Click Imrimer 2 fois l'Etat pour Chaque Département jusqu'à épuisement
de la cmbo

La Clé que je passe en Critère se touve sur la première Colonne de la combo
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
Private Sub Btn_Imprime2_Click()
 
 Dim Ligne As Variant
 Ligne = Me.cmbDptPayeur.ItemData(0)
 
 For Each Ligne In cmbDptPayeur
        DoCmd.OpenReport "E2_FacturesSynthese", acViewPreview, , , , cmbDptPayeur(0, 0)
        DoCmd.PrintOut acPages, , , , 2
        DoCmd.Close acReport, "E2_FacturesSynthese"
 Next
 
End Sub
Mon code bloque dés la première et je ne trouve pas pourquoi

Merci pour pour le coup de pouce
Bonne journée
symbabeauchat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2011, 18h00   #2
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 089
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 089
Points : 11 624
Points : 11 624
Bonjour,

Il y a 2 choses qui m'interpelle.

Ceci :
Code :
Ligne = Me.cmbDptPayeur.ItemData(0)
et cela :
Code :
docmd..... ,cmbDptPayeur(0, 0)
Tu affectes la première ligne de cmb à ta variable du Each.

Ensuite tu fais un appel toujours au premier élément.
Je te conseille d'éviter le each pour ce que tu veux faire. Voilà comment il faut coder ça.

Code :
1
2
3
4
5
6
7
Dim i As Long
 
For i = 0 To Me.cmbDptPayeur.ListCount - 1
        DoCmd.OpenReport "E2_FacturesSynthese", acViewPreview, , , , Me.cmbDptPayeur.ItemData(i)
        DoCmd.PrintOut acPages, , , , 2
        DoCmd.Close acReport, "E2_FacturesSynthese"
 Next
Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/12/2011, 20h09   #3
Membre du Club
 
beauchat symba
Inscription : janvier 2010
Messages : 95
Détails du profil
Informations personnelles :
Nom : beauchat symba

Informations forums :
Inscription : janvier 2010
Messages : 95
Points : 50
Points : 50
Bonjour à tous

Merci loufab pour ton code il marche impeccable

Comme tu me le fais remarquer j'ai mélanger combo.ItemData() et combo.column(colonne,ligne) .

J'ai mis aussi un moment avant de comprendre que je ne pouvais pas inclure de paramètre OpenArgs dans Docmd.OpenReport "MonReport"
vu que je passe aussi d'autres paramètres à la Requête sous jascente de "MonReport" par l'intermediaire d'un Formulaire de Saisie de paramètres.
J'ai donc posé sur ce Formulaire une zone de texte zdtItemDataClé_DptPayeur qui va recevoir mon paramètre Clé_DptPayeur

Voici donc mon code final testé

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub B_Imprime_Click()
 
Dim i As Long
 
For i = 0 To Me.cmbClé_DptPayeur.ListCount - 1
        Me.zdtItemDataClé_DptPayeur = Me.cmbClé_DptPayeur.ItemData(i) 'vat rejoindre dteParamDateDébut et dteParamDateFin sur le Form Choix des Params d'Impression
        DoCmd.OpenReport "E2_FacturesSyntheseR15", acViewPreview
        DoCmd.PrintOut acPages, , , , Nz(Me.zdtNbrEx, 4)
        DoCmd.Close acReport, "E2_FacturesSyntheseR15"
Next
'Reset mon Param de la Requête R15
Me.zdtItemDataClé_DptPayeur = Null
 
End Sub
Bon week end et encore merci.:
symbabeauchat est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h05.


 
 
 
 
Partenaires

Hébergement Web