IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Créer un [Event procédure] sur tous les controles.


Sujet :

IHM

  1. #1
    Membre expérimenté Avatar de SeaWolf601
    Inscrit en
    Août 2006
    Messages
    259
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 259
    Par défaut Créer un [Event procédure] sur tous les controles.
    Re-Bonjour,

    Bon donc voici la suite de ceci : http://www.developpez.net/forums/d67...ontrole-cours/

    j'ai crée la fonction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Coord()
    Me.REF = Left(Screen.ActiveControl.Name, 1)
    Me.REF2 = Right(Screen.ActiveControl.Name, 1)
    End Sub
    Mes TextBox ont des noms tels que A1, B1, C1, A2, B2, C2, etc... (Non je ne fait pas une bataille navale )

    Comme je l'ai dit dans le sujet précedents j'ai presque 200 zone de texte.
    (et dieu sait combien demain). Donc hors de question de faire 200 cop col.

    j'ai essayé de faire la procédure suivante au démarage (OnOpen)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form_Open(Cancel As Integer)
    Dim Txt As TextBox
    For Each Txt In Me.Controls
          Txt.OnClick = "Coord"
    Next Txt
     
    End Sub
    j'ai donc dans l'évennement "OnClic" la function "Coord" qui s'agremente automatiquement dans toutes mes TextBox.

    et comme vous l'avez devinné Acces gére cela comme une macro et non comme une procédure donc erreur.

    Une idée ?

  2. #2
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Bonjour,

    J'ai pas Access sous la main, donc pas testé...

    Il me semble qu'il n'est pas possible d'exécuter une procédure depuis l'événement d'un forme directement (comme l'action exécuter code d'une macro).

    Donc, je ferais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Function Coord()
    Me.REF = Left(Screen.ActiveControl.Name, 1)
    Me.REF2 = Right(Screen.ActiveControl.Name, 1)
    End Function
    et pour l'appel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Txt.OnClick = "=Coord()"
    Qu'est ce que cela raconte ?

    Domi2

  3. #3
    Membre expérimenté Avatar de SeaWolf601
    Inscrit en
    Août 2006
    Messages
    259
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 259
    Par défaut
    Les grands esprits se rencontrent je venait d'essayer cette syntaxe.
    Mais non il ne trouve pas la fonction.
    J'ai éssayé de le mettre sur "OnLoad" aussi, puisque si ma mémoire est bonne cela intervient aprés le "OnOpen", même chose.
    Mais au moins avec les () il sait que c'est une fonction, donc je pense qu'on tient le bon bout.

  4. #4
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Re,

    Je viens d'essayer, cela fonctionne...

    Mais non il ne trouve pas la fonction.
    Tu as un message d'erreur, ou rien ne se passe ?

    Domi2

  5. #5
    Membre expérimenté Avatar de SeaWolf601
    Inscrit en
    Août 2006
    Messages
    259
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 259
    Par défaut
    j'ai un message d'erreur ou il me dit qu'il ne trouve pas la fonction.

    Dans quoi met tu l'appel ?

  6. #6
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Re,

    Je l'ai mis dans le Form_Load (testé avec un seul contrôle).

    Tu as bien saisi "=Coord()" ?

    Domi2

  7. #7
    Membre expérimenté Avatar de SeaWolf601
    Inscrit en
    Août 2006
    Messages
    259
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 259
    Par défaut
    Avec plusieurs controle
    j'ai fait une boucle pour l'attribuer à chaque controle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Form_Load()
    Dim Txt As TextBox
    For Each Txt In Me.Controls
     
          Txt.OnGotFocus = "=Coord()"
     
     Next Txt
     
    End Sub
    Ma boucle marche parfaitement mais il reconnait pas la fonction qui est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Coord()
    Me.REF = Left(Screen.ActiveControl.Name, 1)
    Me.REF2 = Right(Screen.ActiveControl.Name, 1)
    End Sub
    Ver : Access 2002 SP3

  8. #8
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Re,

    mais il reconnait pas la fonction qui est :
    Ben oui, c'est une procédure...

    Avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Function Coord()
    ça devrait mieux fonctionner.

    Domi2

  9. #9
    Membre expérimenté Avatar de SeaWolf601
    Inscrit en
    Août 2006
    Messages
    259
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 259
    Par défaut
    Mais quel c**.

    Je t'ai fait perdre ton temps là.

    Mille excuse et mille merci Domi.

    PS : je te dois une bière sur ce coup là.

  10. #10
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Pas de soucis...

    Ca m'arrive plus souvent qu'à mon tour...

    Et ok pour la bière...

    Domi2

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-97] code sur double clic de tous les controles d'un formulaire
    Par docjo dans le forum VBA Access
    Réponses: 7
    Dernier message: 28/05/2013, 10h43
  2. [AC-2010] Message sur clic de tous les controles d'un formulaire
    Par docjo dans le forum VBA Access
    Réponses: 1
    Dernier message: 29/06/2011, 16h17
  3. Réponses: 5
    Dernier message: 07/09/2005, 08h27
  4. Recherche sur tous les fichiers d'un projet
    Par Kaorichan dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 28/04/2005, 11h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo