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 :

[A-03] Formulaire actif immédiatement


Sujet :

IHM

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 146
    Points : 81
    Points
    81
    Par défaut [A-03] Formulaire actif immédiatement
    Bonjour,

    Je travaille sur access 2003.

    Je voudrais, à l'ouverture d'un formulaire sous certaines conditions, atteindre un contrôle spécifique (jusque là, tout va bien), mais qu'il soit actif immédiatement, sans être obligé de cliquer sur le formulaire en question.

    ou, autrement dit : je veux que la petite barre clignote dans le bon champ, à l'ouverture de mon formulaire.

    J'ai codé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.GoToControl "MonChamp"
    Puis :
    J'ai aussi testé avant l'un ou l'autre, voire les deux à la suite (!) le :
    Nada !

    Si je clique une fois, n'importe où sur mon formulaire, la gentille petite barre est au bon endroit et je peux y écrire, mais il faut que je clique d'abord.

    J'ai un peu cherché, mais rien vu de probant.
    Pourtant je suis certaine que c'est très bête

    Je veux bien une petite piste...
    Merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 129
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Bonjour

    En mode création, mets la propriété Index tabulation de ce contrôle à 0. Ainsi, il sera le premier dès l'ouverture du formulaire

  3. #3
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

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

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

    Cela me semble un peu curieux...

    Bon, essaie d'ouvrir ton formulaire (par ex. sur clic d'un bouton) :

    Puis sur l'événement Sur Ouverture du formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form_Load()
     
        Me.MonChamp.SetFocus
     
        'autres codes
     
    End Sub
    Cela change quelque chose ?

    Domi2

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 146
    Points : 81
    Points
    81
    Par défaut
    Mpf... oui, merci pour la piste, mais cela ne colle pas vraiment.

    J'ai besoin d'aller :

    - sur un contrôle A, si ouverture de mon formulaire avec condition A ;
    - sur un contrôle B, si ouverture de mon formulaire avec condition B ;
    - sur un contrôle C, sur ouverture simple...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 146
    Points : 81
    Points
    81
    Par défaut
    Ma précédente réponse était sur l'Index Tabulation.

    Pour ce qui est du GoToControl ou SetFocus sur FormLoad, je l'utilise effectivement et cela fonctionne parfaitement.
    C'est d'ailleurs pour cela que

    Je note mon code ci-dessous :

    1°) sur un formulaire secondaire proposant un choix :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub BtCreer_Click()
        DoCmd.OpenForm "A", acNormal, "", "", acAdd, acNormal
     
    ' critère qui va définir le choix d'onglet
        Forms![A]!MonChamp.Value = "PP"
        Forms![A]!MonChamp.Requery
        DoEvents
        Forms![A].MaPdure
     
    ' B est mon formulaire secondaire
        DoCmd.Close acForm, "B"
    End Sub
    2°) MaPdure sur mon formulaire principal

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        If MonChamp.Value = "PP" Then
            OngletsPPPM.Value = 2
            MonChamp.Value = ""
            DoCmd.GoToControl "LeChampQuiMInteresse"
            ElseIf...

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

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    J'ai besoin d'aller :

    - sur un contrôle A, si ouverture de mon formulaire avec condition A ;
    - sur un contrôle B, si ouverture de mon formulaire avec condition B ;
    - sur un contrôle C, sur ouverture simple...
    Ben, quand tu auras tout dit...

    Tu peux utiliser l'argument OpenArgs de la méthode OpenForm, par exemple (voir l'aide).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "ToFormulaire", , , , , acNormal, "A"
    Et à l'ouverture de ton formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Private Sub Form_Load()
     
    Select Case Me.OpenArgs
     
        Case "A"
     
            Me.MonChampA.SetFocus
     
        Case "B"
     
            Me.MonchampB.SetFocus
     
        Case Else 
     
            Me....
     
        End Select
     
        'autres codes
     
    End Sub
    Domi2

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 146
    Points : 81
    Points
    81
    Par défaut
    Merci pour l'idée.
    Je vais tester et reviens vous dire ;-)

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 146
    Points : 81
    Points
    81
    Par défaut
    Dommage, l'idée était jolie, mais le résultat idem.
    Le côté sympa, c'est que cela a simplifié mon code.

    Reste que rien à faire, mon curseur ne veut pas clignoter au bon endroit tant que je n'ai pas cliqué sur le formulaire.

    Cela pourrait-il être une sombre histoire d'onglet ?
    (Les contrôles en question sont sur des onglets).


  9. #9
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

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

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cela pourrait-il être une sombre histoire d'onglet ?
    A mon avis, non... L'onglet est comme un "cadre"... Ce n'est pas l'équivalent d'un sous-formulaire, ou il faut faire appel d'abord au contrôle qui contient le sous-formulaire, puis au contrôle dans le sous-formulaire lui-même.

    Sorry, mais je ne vois pas...

    Domi2

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 146
    Points : 81
    Points
    81
    Par défaut
    Merci d'avoir essayé.
    Je passe à autre chose pour avancer, mais je garde un peu de neurones sur la question et si je trouve, je viendrai raconter cette grande aventure !

    Bonne journée à tous.

  11. #11
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

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

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

    Quand ton formulaire est ouvert, c'est bien lui qui est actif (facilement vérifiable avec la barre de titre) ?

    Domi2

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 146
    Points : 81
    Points
    81
    Par défaut
    Ben oui, la barre de titre est d'un joli bleu soutenu !

  13. #13
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,

    Il n'est peut-être pas vraiment adroit d'avoir choisi pour cela l'évènement Load (qui est un évènement de chargement).
    Essaye de donner ce focus lors de l'évènement Activate.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 146
    Points : 81
    Points
    81
    Par défaut
    Bonjour et merci,

    Hélas, le mystère s'épaissit de minute en minute.
    J'ai testé sur Activate.
    Idem

  15. #15
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 129
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Activate ne me semble pas indiqué, puisque cela voudrait dire que tu veux donner le focus à un contrôle à chaque activation...

    As-tu essayé sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Form_Open(Cancel As Integer)
    Chez moi, cela fonctionne sans problème sur cet événement, mais cela fonctionne aussi sur l'événement Load

    Pourrais-tu donner le code exact que tu utilises? Il se peut que les conditions ne soient pas remplies pour que le focus soit adapté.

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 146
    Points : 81
    Points
    81
    Par défaut
    Tout pareil

    Je vous note mes codes dans leur globalité, dès fois que...

    Donc : sur mon formulaire principal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Private Sub Form_Load()
     
    '1°) présentation du formulaire
     
        EtqAdresse = "Adresse pro"
        EtqAdresse2 = "Adresse pro"
        EtqAutreTel = "Autre téléphone"
        EtqAutreTel2 = "Autre téléphone"
        EtqAutreFax = "Autre fax"
        EtqAutreFax2 = "Autre fax"
        EtqMails = "E-mail pro"
        EtqMails2 = "E-mail pro"
        PlsAdresses.Visible = False
        PlsAdresses2.Visible = False
        PlsAutresTels.Visible = False
        PlsAutresTels2.Visible = False
        PlsAutresFax.Visible = False
        PlsAutresFax2.Visible = False
        PlsMails.Visible = False
        PlsMails2.Visible = False
     
        ListeContacts.Enabled = True
     
    '2°) choix de l'onglet
     
        Select Case Me.OpenArgs
            Case "NouveauContactPP" ' création d'un nouveau contact personne physique
                 OngletsDétailsPPPM.Value = 2
                 Me.Fonction3.SetFocus
            Case "NouveauContactPM" ' création d'un nouveau contact société
                OngletsDétailsPPPM.Value = 3
                 Me.Fonction4.SetFocus
            Case Else ' ouverture par défaut
                 Me.ListeContacts.SetFocus
        End Select
     
    '3°)  pour mise à jour de la liste Contacts s/ chargement du formulaire
     
        Dim strsql As String
     
        strsql = crea_str_sql1
     
        vide_liste
        maj_liste strsql
     
    End Sub
    Sur mon formulaire secondaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub BtCreerPM_Click()
        DoCmd.OpenForm "1-1_Contacts", acNormal, "", "", acAdd, acNormal, "NouveauContactPM"
        Forms![1-1_Contacts].NouveauContact
        DoCmd.Close acForm, "5-9-1_MsgBoxNewContact"
    End Sub
     
    Private Sub BtCreerPP_Click()
        DoCmd.OpenForm "1-1_Contacts", acNormal, "", "", acAdd, acNormal, "NouveauContactPP"
        Forms![1-1_Contacts].NouveauContact
        DoCmd.Close acForm, "5-9-1_MsgBoxNewContact"
    End Sub
    Voilà, y'a tout ;-)
    Merci déjà à tous...

  17. #17
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 129
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Qu'est-ce qu'il y a dans la procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms![1-1_Contacts].NouveauContact
    Peux-tu donner le code?

    Pourquoi l'appeler du formulaire 2? Il serait plus judicieux de l'appeler du 1 dans l'événement d'ouverture

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 146
    Points : 81
    Points
    81
    Par défaut
    Bonjour,

    Merci, mais tout pareil.

    Je vous note donc tout mon code, y compris ce qui n'a pas de rapport, mais dès fois que...

    Sur mon formulaire principal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Private Sub Form_Load()
     
    '1°) présentation du formulaire
     
        EtqAdresse = "Adresse pro"
        EtqAdresse2 = "Adresse pro"
        EtqAutreTel = "Autre téléphone"
        EtqAutreTel2 = "Autre téléphone"
        EtqAutreFax = "Autre fax"
        EtqAutreFax2 = "Autre fax"
        EtqMails = "E-mail pro"
        EtqMails2 = "E-mail pro"
        PlsAdresses.Visible = False
        PlsAdresses2.Visible = False
        PlsAutresTels.Visible = False
        PlsAutresTels2.Visible = False
        PlsAutresFax.Visible = False
        PlsAutresFax2.Visible = False
        PlsMails.Visible = False
        PlsMails2.Visible = False
     
        ListeContacts.Enabled = True
     
    '2°) choix de l'onglet
     
        Select Case Me.OpenArgs
            Case "NouveauContactPP" ' création d'un nouveau contact personne physique
                 OngletsDétailsPPPM.Value = 2
                 Me.Fonction3.SetFocus
            Case "NouveauContactPM" ' création d'un nouveau contact société
                OngletsDétailsPPPM.Value = 3
                 Me.Fonction4.SetFocus
            Case Else ' ouverture par défaut
                 Me.ListeContacts.SetFocus
        End Select
     
    '3°)  pour mise à jour de la liste Contacts s/ chargement du formulaire
     
        Dim strsql As String
     
        strsql = crea_str_sql1
     
        vide_liste
        maj_liste strsql
     
    End Sub
    Sur mon formulaire secondaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub BtCreerPM_Click()
        DoCmd.OpenForm "1-1_Contacts", acNormal, "", "", acAdd, acNormal, "NouveauContactPM"
        Forms![1-1_Contacts].NouveauContact
        DoCmd.Close acForm, "5-9-1_MsgBoxNewContact"
    End Sub
     
    Private Sub BtCreerPP_Click()
        DoCmd.OpenForm "1-1_Contacts", acNormal, "", "", acAdd, acNormal, "NouveauContactPP"
        Forms![1-1_Contacts].NouveauContact
        DoCmd.Close acForm, "5-9-1_MsgBoxNewContact"
    End Sub
    Merci beaucoup à tous...

  19. #19
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 129
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Cela ne sert à rien de redonner le même code.

    Je souhaite que tu nous donnes le code de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms![1-1_Contacts].NouveauContact
    C'est une procédure écrite dans le module du formulaire. Peux-tu donner le code de cette procédure?

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 146
    Points : 81
    Points
    81
    Par défaut
    Pardon, je ne voyais pas l'affichage de ma 1ère réponse.
    J'ai pensé m'être planté en l'envoyant.

    Ci-dessous ma Sub NouveauContact, mais qui me semble ne présenter aucun intérêt : simple mise en forme de mon formulaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Sub NouveauContact()
    ' pour présentation du formulaire s/ création nouveau contact
     
    '1°)Champs contact
     
        DateCreation.Enabled = False
        DateMAJ.Enabled = False
        Outloock.Enabled = False
        Listing1.Enabled = False
        Listing2.Enabled = False
        ArchiverContact.Enabled = False
        Voeux.Visible = False
        Anx.Visible = False
        Commentaires.Visible = False
     
    '2°) Champs Politesse
     
        Cabinet.Visible = False
        EnTete.Visible = False
        FormuleFinLettre.Visible = False
        FormuleFinMail.Visible = False
        Tutoiement.Visible = False
     
    '3°) Champs propres au formulaire
     
        NomComplet.Enabled = False
        ListeContacts.Enabled = False
        BtEnregistrer.Visible = False
     
     '3.a°) présentation du pavé politesse
     
        Boîte182.Visible = False
        Étiquette184.Visible = False
        Trait183.Visible = False
     
    End Sub
    Pour répondre à ta question sur l'appel via formulaire 2 : je souhaite que mon formulaire principal reste le plus cleen et le plus simple possible.
    La base va servir à des gens assez réfractaires au bazar et s'il y a trop de paramètres, ils vont vite abandonner.

    Le formulaire secondaire est une bonne solution "visuelle"...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Formulaire actif ou pas
    Par @rkane dans le forum IHM
    Réponses: 2
    Dernier message: 19/09/2007, 14h53
  2. Trouver le formulaire actif d'une application
    Par SaumonAgile dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/07/2007, 11h55
  3. Réponses: 8
    Dernier message: 19/04/2007, 16h03
  4. Réponses: 18
    Dernier message: 25/03/2007, 00h20
  5. formulaire actif
    Par Mike35 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 28/02/2006, 13h22

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