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

Access Discussion :

Problème de tabulation avec SetFoucs


Sujet :

Access

  1. #1
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut Problème de tabulation avec SetFoucs
    Bonjour à tous.

    j'utilise le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub C_OACI_LostFocus()
        If C_OACI.Value = "" Or IsNull(C_OACI) Then
            MsgBox "Le code OACI est obligatoire."
            C_OACI.SetFocus
        End If
    End Sub
    mais le problème c'est que lorsque je quitte le champ avec la touche TAB, le curseur se positionne sur le champ suivant malgré le setfocus.
    Quelqu'un à une idée ?

  2. #2
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    il te faut gérer la tabulation dans ton formulaire, au niveau de chaque contrôle.

  3. #3
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Je ne comprend pas.
    Si la condition n'est pas remplie, je voudrai afficher le message d'erreur et rester dans le champ en cours mais pas passer au suivant.

  4. #4
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Citation Envoyé par Zebulon777
    Je ne comprend pas.
    Si la condition n'est pas remplie, je voudrai afficher le message d'erreur et rester dans le champ en cours mais pas passer au suivant.
    Oups, j'ai lu en diagonale..

    tu es sur des valeurs que tu testes ?
    as tu quand même le message qui s'affiche ?

  5. #5
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Non le message ne s'affiche pas, par contre j'ai bien le message de la clause ValideSi qui s'affiche !!!

  6. #6
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    salut,

    J'ai comme l'impression que le lostfocus est déclenché avant la tabulation.

    Pas sûr de comprendre exactement la finalité du code mais pourquoi ne pas essayer de mettre ton message dans l'événement beforeupdate du formulaire?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 110
    Points : 107
    Points
    107
    Par défaut
    Salut,
    Il me semble que c'est parce que le focus est déjà perdu et qu'il est donné à un autre champ. A mon humble avis ça ne marchera pas sur LostFocus.
    Par contre ça fonctionnera si tu mets l'évènement sur GotFocus du champs suivant.

  8. #8
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Sinclair, ça me parait très compliqué, car dans ce cas, il faudrait que je le fasse sur tous les champs du formulaire.
    Arkham46 , même sur le beforeupdate, l'exécution du code n'est pas stoppée.
    Voici le nouveau code :
    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
     
    Private Function Trt_Existe(Code_Oaci As String) As Boolean
        Dim RS As Recordset
     
        On Error GoTo Err_Num
     
        WCode_OACI = Trim(UCase(Code_Oaci))
        WRequete = "Select * from COM where COM.C_OACI = '" & WCode_OACI & "'"
        Set RS = CurrentDb.OpenRecordset(WRequete, 2)
     
        With RS
            .OpenRecordset
            If .RecordCount > 0 Then
                Trt_Existe = True
            End If
            .Close
        End With
     
    Sortie_Num:
        Set RS = Nothing
        Exit Function
    Err_Num:
        Trt_Existe = False
        Resume Sortie_Num
    End Function
     
     
    Private Sub C_OACI_BeforeUpdate(Cancel As Integer)
        If Trt_Existe(C_OACI.Value) Then
            MsgBox "Ce code OACI existe déjà dans la table."
            Cancel = True
            C_OACI.SetFocus
        End If
    End Sub
    Normalement, si la fonction Trt_Existe renvoie TRUE, le curseur doit rester dans le champ C_OACI or, il passe quand même dans le champs suivant ou là où l'utilisateur clique...
    Au secours....

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 110
    Points : 107
    Points
    107
    Par défaut
    Arkham46 parlait du BeforeUpdate du form pas du contrôle; sur ton code il est sur le contrôle.
    Ou alors AfterUpdate du Contrôle;
    A part le mettre sur GotFocus du champs suivant je ne vois pas.

    Bon courage

  10. #10
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Ok, effectivement sur le form ça à l'air de fonctionner comme je le souhaite.

    Par contre, est-ce qu'il est possible de ne pas valider un formulaire par la touche TAB lorsqu'on sort du dernier champs, mais en forçant l'utilisation d'un bouton de validation ou sur la touche ENTREE ?

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 110
    Points : 107
    Points
    107
    Par défaut
    Et bien tu peux utiliser l'évènement keypress et condamner la touche TAB par son code keyascii

    http://access.developpez.com/faq/?page=Ctrl#ctrlSaisie

    ou alors boucler le form sur un enreg et non pas tous dans la fenêtre propriété du form dans l'onglet Autres>Cycle

  12. #12
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    Moi je pense qu'il faut utiliser l'évènement AfterUpdate, car là le curseur est bien parti, et donc on peut le faire revenir.

    pgz

  13. #13
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Ok en changeant le cycle, effectivement, il n'y a plus de validation à la sortie du dernier champs.
    MAIS...Je n'ai plus d'enregsitrement du tout...lol...
    Comment faire cet enregistrement dans ma table au clic sur le bouton validation ET sur la touche ENTREE ?

  14. #14
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Up...

Discussions similaires

  1. Problème de mémoire avec BDE
    Par Machuet dans le forum Bases de données
    Réponses: 3
    Dernier message: 13/07/2004, 10h11
  2. problème de requête avec jointures
    Par tinhat dans le forum Requêtes
    Réponses: 7
    Dernier message: 11/08/2003, 10h33
  3. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 18h02
  4. [Kylix] problème compilation kylix3 avec redhat 9.0
    Par madininaoursa dans le forum EDI
    Réponses: 1
    Dernier message: 02/07/2003, 16h21
  5. Problèmes de versions avec Xalan, Xerces et Java
    Par honeyz dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 05/06/2003, 10h18

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