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 :

Comparaison de valeurs entre plusieurs textbox


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 89
    Par défaut Comparaison de valeurs entre plusieurs textbox
    Hello tout le monde.
    Me voilà dans une impasse en ce qui concerne mon projet de gestion de stock. Ma base de données est nickel, j'utilise un table adapter pour retourner des valeurs dans des textbox. Et quand je veux comparer deux valeurs dans deux textbox différentes je rencontre un problème. Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Me.Relation_stockTableAdapter1.Fill(Me.Gestion_stockDataSet1.relation_stock, ComboBox2.Text) 'retourne mes valeurs dans les textbox
            If ((TextBox1.Text) <= (TextBox2.Text)) Then 'si la valeur de la première est inférieure ou égale à la valeur de la deuxième alors
                If (MsgBox("Réapprovisionner le produit", vbOKCancel + vbExclamation, "ALERTE") = vbOK) Then 'afficher alerte stock
                    If (MsgBox("Voulez-vous passer une commande ?", vbYesNoCancel + vbQuestion, "COMMANDE") = vbYes) Then 'si tu clique sur OK on te demande si tu veux passer commande                    
                        Entrée_produit.Show() 'ouvrir la form de commande
                    End If
                End If
            End If
    Enfin bref cette méthode fonctionne mais QUE pour les chiffres !!! Pas pour les nombres !!!
    Nom : stock_mini_ex.png
Affichages : 1197
Taille : 2,1 KoNom : alerte_marche_pas.png
Affichages : 1213
Taille : 8,0 Ko
    Voyez

  2. #2
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    tu compares des chaînes de caractères et non des valeurs (ex. "11" < "9").
    Il faut convertir tes valeurs avant de les comparer (avec Convert.ToInt32 ou Int32.TryParse si la donnée peut être malformée).

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    par définition TextBox1.Text c'est du string! donc tu fais un If alphabétique!
    "2" est pus grand que "1000000000000"
    alors que "0000000000002" est bien plus petit que "1000000000000"
    2 possibilité!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Debug.Print(1.ToString("0000000000000"))
    Debug.Print(CInt(1.ToString))

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 89
    Par défaut
    J'ai déjà essayé de convertir mes textbox de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      Dim j As Integer
            Dim i As Integer
            j = Integer.Parse(TextBox1.Text)
            j = Convert.ToInt32(TextBox1.Text)
            i = Integer.Parse(TextBox2.Text)
            i = Convert.ToInt32(TextBox2.Text)
            If j <= i Then
                If (MsgBox("Réapprovisionner le produit", vbOKCancel + vbExclamation, "ALERTE") = vbOK) Then
                    If (MsgBox("Voulez-vous passer une commande ?", vbYesNoCancel + vbQuestion, "COMMANDE") = vbYes) Then
                        Entrée_produit.Show()
                    End If
                End If
            End If
    Le problème c'est qu'il y a une erreur lors de la conversion : le format de la chaine d'entrée est incorrect.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 89
    Par défaut
    Meme en utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print(CInt(1.ToString))
    ça ne fonctionne pas

  6. #6
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Try
       j = Integer.Parse("0" & TextBox1.Text)
       i = Integer.Parse("0" & TextBox2.Text)         
    Catch ex As Exception
         MessageBox.Show("Pas Numerique")
     End Try

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 89
    Par défaut
    merci rdurupt ça fonctionne. Peut tu m'expliquer à quoi sert ce "0" pour mes commentaires ?

  8. #8
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Par défaut
    Bonjour,

    Petit point d'attention sur le fait qu'il n'est pas conseillé de traiter des données depuis tes contrôles utilisateur. C'est à dire que tu devrais stocker les valeurs de tes tables dans un objet avant de les inscrire dans ton IHM. Cela te permet donc de traiter les données indépendamment de ton interface et d'éviter des problèmes de cast.

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

Discussions similaires

  1. [XL-2010] Changer format et comparaison valeur entre plusieurs plages
    Par dad76600 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 26/02/2016, 21h36
  2. [XL-2007] Comparaison de données entre plusieurs feuilles d'un classeur
    Par Raphael39 dans le forum Excel
    Réponses: 8
    Dernier message: 02/07/2010, 22h54
  3. [WD-2003] Calcul entre plusieurs textbox
    Par vbword dans le forum VBA Word
    Réponses: 11
    Dernier message: 02/06/2010, 14h42
  4. [XL-2003] Comparaison des données entre plusieurs colonnes
    Par floctc dans le forum Excel
    Réponses: 6
    Dernier message: 08/12/2009, 20h56
  5. Valeur de plusieurs textbox
    Par smartbis dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/08/2007, 12h50

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