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 18/07/2011, 12h21   #1
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 41
Points : 12
Points : 12
Par défaut nom du formulaire en variable

Bonjour

J'ai une boucle qui commence par l'expression suivante
Code :
For Each loCtrl In Forms!Fm_ClipJoueur.Controls
je re écris 5 fois cette même boucle pour chacun de mes 5 formulaires.
J'aimerais pouvoir passer le nom des formulaires ici " Fm_ClipJoueur" dans une variable afin de n'écrire qu'une seule boucle qui s'appliquerait en fonction du formulaire.
en fait, écrire quelque chose dans le genre si la variable s'appelle MonFormulaire:
Code :
For Each loCtrl In Forms!Monformulaire.Controls
Comment déclarer la variable?
Comment écrire l'expression?

Merci d'avance
thermo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 14h40   #2
Membre régulier
 
Homme Michaël
Développeur .NET
Inscription : avril 2008
Messages : 80
Détails du profil
Informations personnelles :
Nom : Homme Michaël
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : avril 2008
Messages : 80
Points : 84
Points : 84
Le mieux c'est de passer le form

faire ceci:

Code :
1
2
3
4
5
Public Static Function TraitementForm(formulaire As Form)
    For Each loCtrl In formulaire.Controls
        TonTraitement
    Next
End Function
Et tu l'appelles comme ceci:

Code :
TraitementForm Forms!Fm_ClipJoueur
mkl238 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/07/2011, 15h48   #3
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 41
Points : 12
Points : 12
Merci pour la réponse, mais dans mon cas, ça ne marche pas car il y a dans ma procédure des coordonnées X et Y du pointeur de la souris et donc, je ne peux pas la sortir de l'évènement MouseDown.

Je suis donc obligé de passer le nom du formulaire en variable.

Peut être une autre solution?
thermo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 16h07   #4
Membre régulier
 
Homme Michaël
Développeur .NET
Inscription : avril 2008
Messages : 80
Détails du profil
Informations personnelles :
Nom : Homme Michaël
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : avril 2008
Messages : 80
Points : 84
Points : 84
Libre à toi de passer tes coordonnées x, y en paramètres.

Mais si tu préfères vraiment passer le nom il suffit de faire ceci:

Code :
1
2
3
4
5
Public Static Function TraitementForm(formName As String)
    For Each loCtrl In Forms(formName).Controls
        TonTraitement
    Next
End Function
Et tu l'appelles comme ceci:

Code :
TraitementForm "Fm_ClipJoueur" 'ou Forms!Fm_ClipJoueur.Name
mkl238 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 12h09   #5
Membre confirmé
 
Homme
Développeur amateur
Inscription : mars 2009
Messages : 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Développeur amateur

Informations forums :
Inscription : mars 2009
Messages : 176
Points : 255
Points : 255
Bonjour,

J’ai été confronté dernièrement au même problème et c'est bien la solution proposé par mkl238 que j'ai utilisé. Et pour récupérer le nom de du formulaire actif j'ai utilisé la propriété :

Code :
Application.CurrentObjectName
Cordialement
reedy 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 13h08.


 
 
 
 
Partenaires

Hébergement Web