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

VBA Access Discussion :

Bouton "Click" qui ne marche pas


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2011
    Messages : 99
    Points : 42
    Points
    42
    Par défaut Bouton "Click" qui ne marche pas
    Bonjour,

    J'utilise un code VBA pour la fermeture d'un formulaire avec condition.
    Voici le 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
    Private Sub Cmd_Fermer_Click()
     
    If IsNull(Me.Matricule) Then
        'Message
        Matriculemanquant
        Me.Matricule.SetFocus
        Me.AllowEdits = True
    ElseIf IsNull(Me.Nom) Then
        Nommanquant
        Me.Nom.SetFocus
        Me.AllowEdits = True
    ElseIf IsNull(Me.Prenom) Then
        Prenommanquant
        Me.Prenom.SetFocus
        Me.AllowEdits = True
    ElseIf IsNull(Me.Avion) Then
        Avionmanquant
        Me.Avion.SetFocus
        Me.AllowEdits = True
    ElseIf IsNull(Me.SousEquipe) Then
        Equipemanquant
        Me.SousEquipe.SetFocus
        Me.AllowEdits = True
    ElseIf IsNull(Me.Cigles) Then
        Siglevide
        Me.Cigles.SetFocus
        Me.AllowEdits = True
    Else
        'Fermeture
        Me.AllowEdits = False
        DoCmd.Close , ""
    End If
    End Sub
    Tout me semble bon, mais malheuresement ce n'est pas le cas car ça ne marche plus.
    C'est assez étrange car sur une version précédente de ma base (qui date de 2 jours), ce même code fonctionne très bien. Je me dis que non et pourtant c'est forcement le cas, mais qu'est ce que j'aurai pu modifier sans le vouloir pour que ce code ne fonctionne plus?

    Merci de votre aide

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Qu'est-ce qui ne marche pas ?
    n'est pas correct ! : tu dois préciser soit soit ce que tu veux fermer sinon, tu enlèves la virgule et les guillemets.

    Euh, entre (), qu'est ce que c'est que cette procédure étrange ?
    Tu aurais pu la rendre un peu plus générique...
    Imagine que tu aies 75 champs à vérifier, tu vas créer 75 procédures et les appeler 75 fois pour dire que tel champ n'est pas correcte ?
    Hummm, c'est pas très bien pensé comme façon d'écrire....
    Voici une piste à adapter :
    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
    Private Sub CommandSave_Click()
    Dim ctl                                                As Control
        If MyFormDataIsCorrect(strTargetFieldName, strTargetFieldCaption) = False Then
            MsgBox strTargetFieldCaption & " doit contenir une valeur !", vbExclamation
            Set ctl = Me.Controls(strTargetFieldName)
            ctl.SetFocus
        Else
            MsgBox "C'est bon, merci !"
            DoCmd.Close acForm, Me.Name
        End If
        Set ctl = Nothing
    End Sub
     
    Private Function MyFormDataIsCorrect(ByRef strTargetFieldName As String, ByRef strTargetFieldCaption As String) As Boolean
     
        On Error GoTo L_ErrMyFormDataIsCorrect
        If isbull(Me.Matricule) Then
            If IsNull(Me.Nom) Then
                [....]
            Else
                strTargetFieldName = "Nom": strTargetFieldCaption = "le nom du quidam"
                Err.Raise 94
            End If
        Else
            strTargetFieldName = "Matricule": strTargetFieldCaption = "le Matricule"
            Err.Raise 94
        End If
        MyFormDataIsCorrect = True
        On Error GoTo 0
    L_ExMyFormDataIsCorrect:
        Exit Function
     
    L_ErrMyFormDataIsCorrect:
        MyFormDataIsCorrect = False
        Resume L_ExMyFormDataIsCorrect
    End Function
    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2011
    Messages : 99
    Points : 42
    Points
    42
    Par défaut
    Merci pour ta réponse,

    Alors par rapport à mon code j'ai trouvé la solution; j'ai remplacé la source de mon formulaire qui provient d'une table par une requete. (je ne comprends pas la raison pour laquelle cette méthode a marchée)

    Ensuite par rapport à ton code, je suis étudiant en école d'ingénieur mais je n'ai pas suffisamment de connaissance en vba pour élaborer le code que tu as posté.
    D'ailleurs je n'ai pas fais beaucoup de programmation dans mon cursus.
    Je n'arrive pas à intégrer ton code pour que ça fonctionne correctement :/

    Will

Discussions similaires

  1. bouton qui ne marche pas sous IE
    Par jules_diedhiou dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/03/2009, 19h55
  2. [E-00] bouton qui ne marche pas
    Par anyah dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/10/2008, 11h13
  3. [access 2007] un bouton de commande qui ne marche pas
    Par Milyshyn76 dans le forum VBA Access
    Réponses: 5
    Dernier message: 04/01/2008, 09h33

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