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 :

Utiliser valeur InputBox pour un MsgBox


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 90
    Par défaut Utiliser valeur InputBox pour un MsgBox
    Bonjour !

    J'aurais besoin d'aide sur quelque chose de tout simple mais qui pourtant me rebute. Voici mon code VBa créé sur Access :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim lecteur as String
    lecteur = InputBox("Saisissez la lettre correspondant à la clé insérée (exemple: F)", "Saisir votre lecteur")
     
    Dim Msg
    Msg = MsgBox("Attention : Vous avez choisi le lecteur " & lecteur & " êtes-vous sûr de votre choix ?", "", 1000)
    En gros, ce que je veux faire c'est récupérer la valeur de l'InputBox (une lettre pour être plus précis) et utiliser cette valeur pour la mettre dans le message d'un MsgBox afin que la personne puisse vérifier son choix. Cependant, quand je fais ce code (ou quels que soient les modifications que je fais), j'ai un message d'erreur :

    Erreur d'exécution '13' : Incompatibilité de type

    J'ai essayé de changer le type de mes différentes variables mais pas moyen. Je suis débutant dans Access mais là, ce qui m'a l'air tout simple ne fonctionne pas.

    Avez-vous une idée ?

    Merci d'avance !

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    Bonjour.

    À priori c'est le deuxième paramètre qui n'est pas correct.

    Essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox("Attention : Vous avez choisi le lecteur " & lecteur & " êtes-vous sûr de votre choix ?", vbQuestion+vbYesNo+vbDefaultButton2, "Confirmation")
    J'ai supposé que tu veux afficher un point d'intérogation et une réponse en Oui/Non et que la réponse par défaut est Non. Le titre sera "Confirmation"

    Si tu n'a pas besoin d'un paramètre, il faut simplement ne pas le renseigner. Dans ton exemple, en supposant que tes autres paramètres sont corrects, cela donnerai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox("Attention : Vous avez choisi le lecteur " & lecteur & " êtes-vous sûr de votre choix ?", , 1000)
    Pour info les retours de MsgBox sont des entiers longs donc dim msg devrait être dim msg as long.


    A+
    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 confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 90
    Par défaut
    En effet ça marche, merci beaucoup !

    Voici mon code final pour ceux qui ont le même problème que moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim lecteur
    lecteur = InputBox("Saisissez la lettre correspondant à la clé insérée (exemple: F)", "Saisir votre lecteur")
     
    Dim Msg
    Msg = MsgBox("Attention : Vous avez choisi le lecteur " & lecteur & " êtes-vous sûr de votre choix ?", vbQuestion + vbYesNo + vbDefaultButton2, "Titre de la fenêtre")
    J'ai enlevé la précision sur le dim et ça marche nickel

    Merci encore, hop résolu !

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    J'ai enlevé la précision sur le dim et ça marche nickel
    Ce n'est pas recommandé. Préciser le type des données utilisées aide à prévenir des érreurs de dépassement de capacité ou de mauvaise interprétation des données. Par exemple cela permet de s'assurer que si on attend une date, on reçoit bien une date.

    Autre exemple pour :

    si v1 et v2 sont des nombres tu vas obtenir la somme (ex v1=10, v2=20, résutat=30)
    si v1 et v2 sont des chaînes de caractères tu vas obtenir la concaténation (ex v1="10", v2="20", résutat="1020")
    et il est possible que selon la façon dont Access reçoit les données il ne soit pas capable de deviner si c'est une chaîne ou un nombre.

    Voici ce que je te suggères :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim lecteur as string
    dim Msg as long
    Un point à propos du +, il est recommandé d'utiliser & quand on concatène (met bout à bout) des chaînes de caractères afin d'éviter la confusion entre l'adition et la concaténation.

    A+
    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.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/03/2012, 10h13
  2. Utiliser valeur listbox pour champ TCD
    Par Scrabblouille dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/08/2011, 21h44
  3. utiliser valeur champ pour mot de passe
    Par marcmarc150 dans le forum IHM
    Réponses: 3
    Dernier message: 31/01/2010, 10h26
  4. Réponses: 14
    Dernier message: 25/04/2009, 14h47
  5. utiliser une valeur float pour une boucle for
    Par didi59650 dans le forum Débuter
    Réponses: 6
    Dernier message: 18/04/2006, 17h32

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