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 :

Vérifier la réponse apportée sur Inputbox [AC-2013]


Sujet :

VBA Access

  1. #1
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut Vérifier la réponse apportée sur Inputbox
    Bonjour,

    Je voudrais vérifier que la réponse apportée par l'utilisateur par le biais d'un Inputbox est une date... et qu'une réponse a été apportée (je suppose <> "").

    Merci de votre aide.
    Gabout

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    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 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonsoir,
    un exemple d'utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim vrDate As Variant
    Dim strMessage As String
    Dim strTitle As String
    strMessage = "Entrer une date au format jj/mm/aaaa"
    strTitle = "Saisie de la date"
     
    Do While IsNull(vrDate) Or Not IsDate(vrDate)
        vrDate = InputBox(strMessage, strTitle)
    Loop
     
    Debug.Print Format(CDate(vrDate), "dd/mm/yyyy")
       ' suite du code ...
    Mais cela implique une réponse sans possibilité d'annuler ou de fermer l'InputBox.
    Une saisie du genre "1/12" est acceptée dans ce cas elle renvoie 01/12/2017 car dans ce cas l'année en cours est implicite comme pour toute saisie partielle de date dans Office.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonsoir tee_grandbois,

    J'étais arrivé à quelque chose de semblable (quoiqu'un peu plus lourd), mais ce qui me gêne, c'est de ne plus pouvoir utiliser le bouton d'annulation.
    Je pense que je vais tester l'utilisation d'un formulaire de saisie dont je ferai varier les champs qu'il contient en fonction d'un premier enregistrement ou d'enregistrements suivants.

    Merci pour ta proposition.
    Gabout

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    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 648
    Points : 14 626
    Points
    14 626
    Par défaut
    ce qui me gêne, c'est de ne plus pouvoir utiliser le bouton d'annulation.
    Oui, c'est bien le problème avec InputBox car on ne sait pas détecter (comme avec MsgBox) si on a appuyé sur OK ou Annuler parce que la fonction renvoie "" dans les deux cas si rien n'a été saisi ou si on efface.
    C'est bien dommage.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Membre régulier
    Homme Profil pro
    Administrateur (improvisé) de base de données
    Inscrit en
    Décembre 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur (improvisé) de base de données
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2014
    Messages : 102
    Points : 72
    Points
    72
    Par défaut Gestion du bouton Annuler d'une InputBox
    Je me permets d'intervenir parce que j'ai trouvé sur un forum Office un moyen très simple de détecter l'utilisation du bouton Annuler d'une InputBox. Pratique si on veut sortir prématurément d'une procédure.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dim quoi as String
     
    quoi = InputBox ("Donne la valeur")
     
    If StrPtr(quoi) = 0 then
       MsgBox "Touche Annuler"
    else
       If Len(quoi) = 0 then
           MsgBox "Aucune valeur rentrée"
       Else
           MsgBox "La valeur est : " & quoi
       End if
    end If
    Important : bien déclarer la variable issue de l'InputBox en String

    Ce code utilise la fonction StrPtr qui est une fonction non documentée de Microsoft et qui reste bien mystérieuse. Des esprits sourcilleux pourraient mettre en garde contre son utilisation, et ils auraient raison, mais en attendant elle est bien pratique !

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

Discussions similaires

  1. [RegEx] Vérifier une adresse mail sur forme et son existance
    Par gpsevasion dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2008, 14h51
  2. Réponses: 5
    Dernier message: 15/06/2007, 19h26
  3. Question toute bebete sur inputbox
    Par quentingsc dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 04/01/2007, 09h43
  4. Réponses: 1
    Dernier message: 26/11/2006, 00h46

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