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 04/06/2011, 16h41   #1
Membre du Club
 
Jean-Luc
Inscription : mai 2004
Messages : 183
Détails du profil
Informations personnelles :
Nom : Jean-Luc
Âge : 58

Informations forums :
Inscription : mai 2004
Messages : 183
Points : 62
Points : 62
Par défaut problème avec 'For each ' dans un état

Bonjour
J'ai besoin d'imprimer les références d'une Base
Dans le détail de l'état je veux remplir un champ texte (RéférenceTxt) avec le code suivant
Code :
1
2
3
4
5
6
Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
Dim Ref As Reference
For Each Ref In Application.References
RéférenceTxt = Ref.Name & " - Version : " & Ref.Major & "." & Ref.Minor & " - Chemin : " & Ref.FullPath
Next Ref
End Sub
Le code fonctionne mais je n'ai qu'une seule ligne (la 1ère de la liste des références) alors que testé avec un debug.print j'ai bien tout
Merci pour vos conseils
Jean-Luc80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2011, 20h56   #2
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
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 085
Points : 11 622
Points : 11 622
Bonjour,

Code :
RéférenceTxt = Ref.Name & " - Version : " & Ref.Major & "." & Ref.Minor & " - Chemin : " & Ref.FullPath
Normal je dirais !

Tu écrases systèmatiquement la valeur, donc tu n'as que la dernière.

Mon conseil :

D'abord mettre ce code dans l'événément Sur Format.

Puis remplacer la ligne par celle-ci.

Code :
RéférenceTxt = RéférenceTxt & Ref.Name & " - Version : " & Ref.Major & "." & Ref.Minor & " - Chemin : " & Ref.FullPath & vbcrlf
Ne pas oublier de mettre le controle RéférenceTxt en extensible.

Si tu souhaites faire réagir l'état comme si la référence était un enregsitrement il te faut travailler avec NextRecord, MoveLayout, PrintSection

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 00
Vieux 05/06/2011, 05h51   #3
Membre du Club
 
Jean-Luc
Inscription : mai 2004
Messages : 183
Détails du profil
Informations personnelles :
Nom : Jean-Luc
Âge : 58

Informations forums :
Inscription : mai 2004
Messages : 183
Points : 62
Points : 62
Bonjour
Merci Loufab pour la réponse
J'ai procédé autrement
Je stocke les références dans une table et je base mon état sur cette table
Je ne sais pas si c'est mieux de faire ça mais ça fonctionne
Voici le code pour ceux que ça interresse.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Function GetReferences()
DoCmd.SetWarnings False
Dim Ref As Reference
Dim orst As DAO.Recordset
Dim oDb As DAO.Database
DoCmd.RunSQL "DELETE Référence.* FROM Références;"
   Set orst = CurrentDb.OpenRecordset("Références")
For Each Ref In Application.References
orst.AddNew
orst!Référence = Ref.Name & " - Version : " & Ref.Major & "." & Ref.Minor & " - Chemin : " & Ref.FullPath
orst.Update
Next Ref
orst.Close
Set orst = Nothing
DoCmd.SetWarnings True
End Function
Jean-Luc80 est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h41.


 
 
 
 
Partenaires

Hébergement Web