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 :

formulaire ouvert, pas ouvert pour la macro ?


Sujet :

IHM

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 238
    Points
    238
    Par défaut formulaire ouvert, pas ouvert pour la macro ?
    Salut, je rencontre un soucis bizarre :
    j'ai un formulaire, un SF lié et un autre SSF lié au SF.
    Pour ne pas laisser d'enregistrement vide dans le SF, j'ai fait la macro suivante:
    Si je passe du formulaire (champs remplis) directement au SSF, sur réception du focus sur le 1er champs du SSF, je veux que le curseur revienne au SF.
    J'ai donc mis:
    condition : si le champs [Manager] (champs du SF) est vide.
    action: selectionner objet
    nom d'objet: mon SF
    action: atteindre contrôle
    nom contrôle: [Manager]

    Or, un message me dit que l'objet "mon SF" n'est pas ouvert et je dois arreter la macro.
    Pourtant, mon SF est ouvert puisqu'il est situé entre le formulaire que je viens de remplir et mon SSF qui reçoit le focus.

    J'ai bien essayé de tricher en remplaçant "selectionner objet" par "envoie touche {CTRL+Tab}"qui fonctionne manuellement pour revenir à mon SF mais là, j'ai un msg me disant que pour "envoie touche" je dois installer un complément.

    Merci de votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Ta suite de conditions, elle est faite en VBA ou par une macro ?

    Philippe

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 238
    Points
    238
    Par défaut
    Là, c'est une macro.
    Mais je ne suis pas sectaire, si quelqu'un connait le code pour faire la même chose, je suis preneur.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 238
    Points
    238
    Par défaut
    Quelqu'un pour m'aider svp
    Merci

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 55
    Points : 55
    Points
    55
    Par défaut
    bonjour,
    j'ai deja eu le probleme avec un formulaire et un sous formulaire.
    il s'est avéré que si on ouvre un autre formulaire à partir de cette page et que l'on ferme le dernier formulaire ,le sous formulaire est "fermé" mais reste apparent à l'écran et donc message d'erreur....
    peut etre la situation est elle identique ?

    Frédéric

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 238
    Points
    238
    Par défaut
    A priori, ce n'est pas la même chose car moi, je n'ouvre que mon formulaire avec son SF et SSF et ne travaille que sur ceux là, donc tout devrait être ouvert, normalement. D'où mon embarra.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 238
    Points
    238
    Par défaut
    Par contre, si quelqu'un sait pourquoi access me demande un complément pour utiliser la fonction "envoie touche", cela m'aiderait car je navais pas ce pb avec les versions plus anciennes d'access comme l'antique version 2.
    Surtout que j'ai installé tout ce qu'il y avait sur cette version.

  8. #8
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Je pense que c'est plus facile en VBA.

    Ouvre ton formulaire en mode création.
    Clique sur le contrôle Sous-formulaire du SSF, pour le sélectionner
    Affiche ses propriétés et va dans l'onglet "événement".
    Il ne doit y avoir que deux événements (entrée et sortie) pour un contrôle de type sous-formulaire.
    Choisi [Procédure événementielle] pour l'événement "Sur entrée" .
    Clique sur le petit bouton [...] à droite.
    Access va créer le corps de la procédure événementielle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub NomProcedure()
     
    End Sub
    Le nom d'une procédure événementielle est de la forme NomDuControle_NomEvenement.
    Disons par exemple que le contrôle s'appelle ctlSSF.
    Access crée ...
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ctlSSF_Enter()
     
    End Sub
    Il ne reste plus qu'à ajouter le code à l'intérieur de la procédure.
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ctlSSF_Enter()
    If Len(Nz(Me.Manager, "")) = 0 Then Me.Manager.SetFocus
    End Sub
    A+

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 238
    Points
    238
    Par défaut
    L'idée me parait bonne mais j'aurai toujours le même pb car procédure ou macro ne doit se déclencher que si je ne suis pas passé par le SF mais dirrectement du Form au SSF et donc access ne veut pas me sélectionner le SF en me disant qu'il n'est pas ouvert.

    Je vais quand même essayer avec ton code, on ne sait jamais.
    Merci

  10. #10
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    access ne veut pas me sélectionner le SF en me disant qu'il n'est pas ouvert
    C'est parce que cette commande (comme sont équivalent VBA) ne s'applique qu'à un formulaire principal, c'est à dire fenêtré.
    J'entends par là que le formulaire apparaît dans la liste des fenêtres du menu Fenêtre.
    Mon code s'applique au contrôle sous-formulaire qui contient le formulaire et non au formulaire lui-même.
    C'est pour cette raison qu'il devrait fonctionner (j'ai testé, ça marche pour moi).

    A+

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 238
    Points
    238
    Par défaut
    Merci,
    J'ai testé mais il me met une boite de dialogue visual basic :
    "Erreur de compilation : membre de méthode ou de donnée introuvable"
    Et le debogueur me surligne .Manager du 1er "Me.Manager".
    C'est pourtant bien le nom de mon contrôle.
    Je voulais aussi rajouter une boite de dialogue disant "Vous devez entrer le nom d'un manager" mais si j'arrive facilement à le faire dans une macro, je ne sais pas en VBA.

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 238
    Points
    238
    Par défaut
    Ca y est, ça marche, je m'était trompé, j'avais mis la procédure sur entrée du SF au lieu du SSF (la fatigue sans doute) j'ai fini par comprendre en voyant le nom de la procédure qui ne correspondait pas à mon SSF.
    Merci pour tout.
    Si tu peux me dire pour faire ma boite de dialogue, ce serait cool.
    Merci encore.

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 238
    Points
    238
    Par défaut
    C'est bon, j'ai trouvé dans mon bouquin VBA la syntaxe des MsgBox.
    Merci pour tout.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/11/2008, 07h22
  2. Réponses: 4
    Dernier message: 30/05/2008, 11h42
  3. Port msn pas ouvert mais ...
    Par Belegkarnil dans le forum Sécurité
    Réponses: 5
    Dernier message: 26/02/2006, 07h23
  4. erreur d'execution 3704, ...:objet n'est pas ouvert
    Par cari dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 29/11/2005, 15h44

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