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 :

Créer un texte dans une procédure [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Par défaut Créer un texte dans une procédure
    Bonjour,

    J'ai un formulaire "Intervention" dans laquelle je sélectionne mon client avec une liste déroulante. Ce client peut avoir des agences que j'appelle "Site".
    J'ai une deuxième liste déroulante où je sélectionne le Site.

    Dans le champ de la liste déroulante du client, j'ai insérer une procédure évènementielles "avant MAJ":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub IDClient_BeforeUpdate(Cancel As Integer)
    If Me.C_Sites__oui_non = "11" Then
    Me.IDSites.Visible = True
    Me.Texte56.Visible = True
    Else
    Me.IDSites.Visible = False
    Me.Texte56.Visible = False
    End If
    End Sub
    Ainsi, si je sélectionne un client qui n'a pas d'agence, les champs relatifs aux Sites n'apparaissent pas, en revanche si le client à une ou des agences les champs concernant les Sites s'affichent.

    Ce que j'aimerais faire, pour aider mes collègues à ne pas oublier de saisir l'agence si le client en a, c'est d'insérer dans l'évènement un message du genre:
    "Attention ! saisir le Site" qui s'afficherait quelques secondes.

    Mais ce message ne doit pas bloquer le formulaire au cas ou on ne voudrait pas entrer un site sciemment.

    Est-ce possible ?

    Amitiés

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Afficher un message pour un temps donné n'est pas très simple, une solution plus immédiate est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub IDClient_BeforeUpdate(Cancel As Integer)
     
       If Me.C_Sites__oui_non = "11" Then
            Me.IDSites.Visible = True
            Me.Texte56.Visible = True
            mxgbox "Attention ! saisir le Site",vbInformation
         Else
            Me.IDSites.Visible = False
            Me.Texte56.Visible = False
       End If
     
    End Sub
    L'utilisateur devra cliquer sur OK pour faire disparaître le message.

    Une solutions moins intrusive consiterai à avoir une étiquette qui afffiche se message à côté de l'IDClient, puisque c'est là que l'attention de l'utilisateur est, que tu rendrais visible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub IDClient_BeforeUpdate(Cancel As Integer)
     
       If Me.C_Sites__oui_non = "11" Then
            Me.IDSites.Visible = True
            Me.Texte56.Visible = True
           me.EtiquetteAttentionSaisirSite.visible=true
         Else
            Me.IDSites.Visible = False
            Me.Texte56.Visible = False
           me.EtiquetteAttentionSaisirSite.visible=false
       End If
     
    End Sub
    enfin tu pourrais faire un contrôle avant la mise à jour de l'enregistrement et demander la confirmation qu'on ne veut pas de site.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if isnull(me.IDSite) or isEmpty(me.IDSite) then
     
       if vbNo=msgbox("Il n'y a pas de site. Confirmez-vous que vous ne voullez pas de site ?",vbQuetsion+vbYesNo+vbDefaultButton2)
          then
             cancel=cint(true) 'Annule la sauvegarde
             me.IDSite.setfOcus
          else
             'Ne rien faire
       end if
     
    end if
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Par défaut
    Bonjour marot_r,

    Excellent, merci beaucoup pour ces réponses.
    J'ai opté pour la seconde solution facile a mettre en place et très visuelle.

    Merci encore, cordialement,
    Maringot

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

Discussions similaires

  1. Créer un tableau dans une zone de texte avec des grilles
    Par handerson dans le forum GTK+ avec C & C++
    Réponses: 8
    Dernier message: 20/08/2013, 21h43
  2. Réponses: 1
    Dernier message: 13/03/2012, 00h32
  3. [Débutant] Créer un bouton dans une procédure
    Par mimijesss dans le forum C#
    Réponses: 0
    Dernier message: 28/06/2011, 22h50
  4. Réponses: 1
    Dernier message: 30/06/2009, 08h33
  5. Réponses: 3
    Dernier message: 13/10/2007, 16h31

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