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 :

MsgBox qui ne s'en va pas


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 60
    Points : 30
    Points
    30
    Par défaut MsgBox qui ne s'en va pas
    Bonjour,

    j'ai crée un code VBA qui exécute un msgbox sous une condition.
    Si le champ est rempli alors le msgbox apparaît.
    Si le champ n'est pas rempli alors il ne se passe rien.

    Je ne sais pas pourquoi mais le msgbox s'affiche mais il ne disparait jamais quand je clique sur OK, il revient tout de suite après.
    Quand j'essaye d'enregistrer je ne peux pas car le msgbox revient encore.

    J'ai remarqué également une croix rouge sur le côté, une croix qui n'est pas censé apparaître pour un msgbox, en tout cas qui n'apparait pas sur mes autres msgbox.
    Nom : Croix rouge.PNG
Affichages : 124
Taille : 6,3 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub champ_BeforeUpdate(Cancel As Integer)
    If Not IsNull(Me.champ) Then
             MsgBox ".......", vbCritical
             Cancel = True
            End If
    End Sub

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 842
    Points : 14 946
    Points
    14 946
    Par défaut
    bonjour,
    Je ne sais pas pourquoi mais le msgbox s'affiche mais il ne disparait jamais quand je clique sur OK, il revient tout de suite après.
    C'est pourtant bien ce que tu demandes au code de faire: If Not IsNull(Me.champ) Then Msgbox
    donc tant que le champ sera renseigné la MsgBox apparaitra
    J'ai remarqué également une croix rouge sur le côté
    c'est à cause de vbCritical

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 60
    Points : 30
    Points
    30
    Par défaut
    D'accord je comprend mieux... Je dois changer mon code de façon à ce que si le champs est rempli alors la msgbox apparait pour indiquer à l'utilisateur les changements à effectuer dans le formulaire ou dans d'autres formulaires mais il ne doit pas rester. Est-ce que c'est possible ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub champ_BeforeUpdate(Cancel As Integer)
     
    If Me.champ = "20/07/2018" Then 
             MsgBox "Vous avez renseigné [...]. Rappel : Dans l'onglet [...], modifiez [...]."
             Cancel = True
    End If
    End Sub
    Sauf que je ne veux pas pointer une date précise mais n'importe quelle date qui pourrait être inscrite.
    J'ai cherché comment spécifier en VBA un champ rempli mais sans succès, encore moins lorsqu'il s'agit d'une date.

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 842
    Points : 14 946
    Points
    14 946
    Par défaut
    Je dois changer mon code de façon à ce que si le champs est rempli alors la msgbox apparait pour indiquer à l'utilisateur les changements à effectuer dans le formulaire ou dans d'autres formulaires mais il ne doit pas rester. Est-ce que c'est possible ?
    C'est possible mais dans ce cas, la saisie doit être annulée en effaçant le contenu du champ (avec la touche Echap) pour faire disparaitre le message .

    Sauf que je ne veux pas pointer une date précise mais n'importe quelle date qui pourrait être inscrite.
    J'ai cherché comment spécifier en VBA un champ rempli mais sans succès, encore moins lorsqu'il s'agit d'une date
    si c'est un champ du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Me.champ = Me.UnautreChamp Then
    Si c'est dans un autre formulaire (obligatoirement ouvert) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Me.champ = Forms.AutreFormulaireOuvert.UnautreChamp Then
    Si c'est dans une table, on peut utiliser une fonction de domaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If me.champ = DLookup("Nomchamp", "Nomtable","WhereCondition") Then
    ou un Recordset:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim oRS As Recordset
    Set oRS = CurrentDb.OpenRecordset("select monchamp from matable where (Wherecondition)")
    if not oRS.EOF Then
        If Me.champ = ors!monchamp Then
            ....
        End If
    End if

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 60
    Points : 30
    Points
    30
    Par défaut
    Merci j'ai pu régler mon soucis !

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

Discussions similaires

  1. [XL-2016] Insertion d'un MsgBox qui ne marche pas
    Par Phil333250 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/04/2018, 12h33
  2. [PPT-2010] Fonction Msgbox() qui n'appelle pas le fichier d'aide
    Par Daejung dans le forum VBA PowerPoint
    Réponses: 3
    Dernier message: 01/02/2015, 21h08
  3. MsgBox qui n'apparait pas ?
    Par altahir007 dans le forum VB.NET
    Réponses: 7
    Dernier message: 03/01/2013, 16h29
  4. un msgbox qui ne s'affiche pas
    Par soria_t dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 02/09/2008, 11h28
  5. MsgBox qui n'arrète pas l'execution du code
    Par petitours dans le forum IHM
    Réponses: 2
    Dernier message: 23/04/2008, 15h37

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