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

VB.NET Discussion :

Do..Until avec InputBox


Sujet :

VB.NET

  1. #1
    Débutant
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Points : 704
    Points
    704
    Par défaut Do..Until avec InputBox
    Salut

    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Do Until (IsNumeric(prix))
                'chr(13) et 10 permette le saut de ligne et revenir au debut de ligne
                prix = InputBox("Entrez le montant du nouveau frais fixe " & Chr(13) & Chr(10) & " Seulement des nombres", "Ajout de donnée")
            Loop
    Mon problème est que si l'utilisateur veut annulé l'opération (avec le bouton annulé du InputBox ), il ne peut pas car le Do...Until boucle.

    Comment l'empêcher?

  2. #2
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 337
    Points : 319
    Points
    319
    Par défaut
    tu pourrais mettre uèn peu pus de code que je test stp, sinon, si tu rajoute une condition or dans ton do until ??

  3. #3
    Débutant
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Points : 704
    Points
    704
    Par défaut
    oui j'ai déjà fais ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Do Until (IsNumeric(prix) Or prix Is DBNull.Value)
    Voila le code entier mais cela ne te servira pas plus, je n'ai mis que l'essentiel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      Private Sub but_ajouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles but_ajouter.Click
            Dim nom As String
            Dim prix As String
     
            nom = InputBox("Entrez le nom du nouveau frais fixe", "Ajout de donnée")
     
            Do Until (IsNumeric(prix) Or prix Is DBNull.Value)
                prix = InputBox("Entrez le montant du nouveau frais fixe " & Chr(13) & Chr(10) & " Seulement des nombres", "Ajout de donnée")
            Loop
            requete_insert_into_frais_fixe(nom, prix)
     
        End Sub

  4. #4
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 337
    Points : 319
    Points
    319
    Par défaut
    bon je l'admet c'est pas propre.... mais ca marche ^^, je regarde si je trouve mieux..


    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
     
     
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim nom As String
            Dim prix As String
     
            nom = InputBox("Entrez le nom du nouveau frais fixe", "Ajout de donnée")
     
            prix = "test"
            Do Until (IsNumeric(prix) Or prix = "")
                prix = InputBox("Entrez le montant du nouveau frais fixe " & Chr(13) & Chr(10) & " Seulement des nombres", "Ajout de donnée")
                MessageBox.Show(prix)
            Loop
     
        End Sub

  5. #5
    Débutant
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Points : 704
    Points
    704
    Par défaut
    Citation Envoyé par boubounne Voir le message
    bon je l'admet c'est pas propre.... mais ca marche ^^, je regarde si je trouve mieux..


    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
     
     
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim nom As String
            Dim prix As String
     
            nom = InputBox("Entrez le nom du nouveau frais fixe", "Ajout de donnée")
     
            prix = "test"
            Do Until (IsNumeric(prix) Or prix = "")
                prix = InputBox("Entrez le montant du nouveau frais fixe " & Chr(13) & Chr(10) & " Seulement des nombres", "Ajout de donnée")
                MessageBox.Show(prix)
            Loop
     
        End Sub
    Tant que ça marche !

  6. #6
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 337
    Points : 319
    Points
    319
    Par défaut
    ben ca marche mais si tu met pas de valeur et que tu clic sur OK il quitte ...

  7. #7
    Débutant
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Points : 704
    Points
    704
    Par défaut
    Alors ça ne marche pas

  8. #8
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 337
    Points : 319
    Points
    319
    Par défaut
    a la limite tu rajoute une message box de type YES/CANCEL, si la valeur est vide (=> soit c'est annulé, soit le gars n'a rien mis), tu affiche cette box, et selon la valeur de retour, tu continu ou pas ... je fais le code et je te le donne dans 5 min

  9. #9
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 337
    Points : 319
    Points
    319
    Par défaut
    Je te l'offre sur un plateau ^^ bon j'admet que c'est pas terrible mais au moin ca marche bien

    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
     
    Dim test As String
            Dim bool As Boolean
            Dim message As String
     
            bool = False
     
            While bool = False
                test = InputBox("Entrez le montant du nouveau frais fixe " & Chr(13) & Chr(10) & " Seulement des nombres", "Ajout de donnée")
                If test = "" Then
                    message = MessageBox.Show("Valeur vide ou appui sur la touche cancel", "Attention", MessageBoxButtons.YesNo)
                    If message = 6 Then
                        bool = True
                    End If
                Else
                    Try
                        Integer.Parse(test)
                        bool = True
                    Catch ex As Exception
                        bool = False
                    End Try
                End If
     
            End While

  10. #10
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 777
    Points
    1 777
    Par défaut
    Bonjour.

    Pourquoi ne pas utiliser une form de saisie modale au lieu de l'inputbox ? Ca rendra l'interface plus sympa.

    Cdt?

  11. #11
    Débutant
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Points : 704
    Points
    704
    Par défaut
    Citation Envoyé par olsimare Voir le message
    Bonjour.

    Pourquoi ne pas utiliser une form de saisie modale au lieu de l'inputbox ? Ca rendra l'interface plus sympa.

    Cdt?
    Créer par moi même?

    L'outil inputBox, autant l'exploité...

  12. #12
    Débutant
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Points : 704
    Points
    704
    Par défaut
    Citation Envoyé par boubounne Voir le message
    Je te l'offre sur un plateau ^^ bon j'admet que c'est pas terrible mais au moin ca marche bien

    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
     
    Dim test As String
            Dim bool As Boolean
            Dim message As String
     
            bool = False
     
            While bool = False
                test = InputBox("Entrez le montant du nouveau frais fixe " & Chr(13) & Chr(10) & " Seulement des nombres", "Ajout de donnée")
                If test = "" Then
                    message = MessageBox.Show("Valeur vide ou appui sur la touche cancel", "Attention", MessageBoxButtons.YesNo)
                    If message = 6 Then
                        bool = True
                    End If
                Else
                    Try
                        Integer.Parse(test)
                        bool = True
                    Catch ex As Exception
                        bool = False
                    End Try
                End If
     
            End While
    Y avait juste une petite erreur.
    Voila le code fonctionnel :
    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
    While bool = False
                test = InputBox("Entrez le montant du nouveau frais fixe " & Chr(13) & Chr(10) & " Seulement des nombres", "Ajout de donnée")
                If test = "" Then
                    message = MessageBox.Show("Voulez vous entrez la donnée?", "Attention", MessageBoxButtons.YesNo)
                    'l'erreur venait de la. Ce n'est pas 6 mais 7 (correspond à non)
                    If message = 7 Then
                        bool = True
                    End If
                Else
                    Try
                        prix = Integer.Parse(test)
                        bool = True
                        'operation a effectuer
                    Catch ex As Exception
                        bool = False
                    End Try
                End If
     
            End While

  13. #13
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 337
    Points : 319
    Points
    319
    Par défaut
    ok moi je pensait plus dans la message box a "ete vous sur de vouloir quitter" plutot que "voulez vous entrer la donnée", desolé ^^

  14. #14
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Points : 706
    Points
    706
    Par défaut
    Bonjour,

    Il me semble que la méthode TryParse est plus performante que la méthode parse.

    Je remplacerais ce code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Try
       prix = Integer.Parse(test)
       bool = True
    Catch ex As Exception
         bool = False
    End Try
    par celui la:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bool = Integer.TryParse(test,prix)
    Par contre je crois qu'il dois y avoir un problème au niveau du prix car lorsque bool = false, prix = 0 avec TryParse

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

Discussions similaires

  1. [AC-2003] Problème avec INPUTBOX
    Par moilou2 dans le forum VBA Access
    Réponses: 4
    Dernier message: 18/08/2009, 15h14
  2. probleme avec inputbox
    Par adelsunwind dans le forum VBA Access
    Réponses: 2
    Dernier message: 25/05/2008, 11h33
  3. Recherche avec InputBox puis Copier - Coller de la ligne
    Par bungler dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 20/07/2007, 15h34
  4. probleme avec inputbox
    Par white_wizzard dans le forum VBScript
    Réponses: 6
    Dernier message: 04/03/2007, 10h10
  5. [VB6]Aide pour mettre format date avec inputbox
    Par Geliwy77 dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 28/01/2006, 20h13

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