Afficher un résultat d'un calcul des deux textbox dans un label

Fermé
xxdaw - 29 nov. 2012 à 15:37
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 - 24 déc. 2012 à 19:56
Bonjour,

Je suis en train de développer une application sous VB 2008 et j'arrive pas à résoudre mon problème tout seul.
Voilà, j'ai 2 textbox (Montant à payer et montant payé) vides en ouvrant une fenêtre et un label pour afficher le reste à payer. J'aimerai donc afficher dynamiquement le reste à payer dans le label au moment où on remplit les 2 textbox. Je sais vraiment pas quoi faire, quel méthode utiliser et où mettre les codes.

J'ai besoin de votre aide les amis.

10 réponses

commentcamarcheeay Messages postés 666 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 30 mars 2020 86
Modifié par commentcamarcheeay le 29/11/2012 à 15:46
Je ne connais pas exactement la syntaxe VB 2008, mais sous VB 6 c'était la méthode textbox_lostfocus (ou textbox_textChange si le calcul doit être fait en tapant au clavier) qui permettait cela.
A l'intérieure de la méthode tu mets :
If isNumeric(textbox1) and isNumeric(textbox2) then 
    label1 = val(textbox1.text) - val(textbox2.text) 
Else 
    label1 = "" 
End If

Cordialement!

C. Taha
1
xxdaw Messages postés 26 Date d'inscription samedi 5 février 2011 Statut Membre Dernière intervention 1 mars 2013 1
3 déc. 2012 à 15:16
>Heliotte

En fait, ma demande c'est que:
- Est-ce la conception de la base est correcte?
- Quelle est la solution pour les 3 #tes types de numéros?
- Comme c'est une application multi-utilisateurs, comment faire pour pouvoir le mettre opérationnel et de plus que la base est installée sur un serveur MSSQL 2005 Express Edition. (Je me rappelle qu'il faut utiliser le système DSN pour pouvoir choisir la base et facilité l'utilisation en multi-utilisateurs).
La connexion à une base SQL Server.

Je t'envoie la généralité du projet avec l'ancienne base qui doit être modifiée.
1
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
Modifié par Heliotte le 24/12/2012 à 09:35
Bonjour xxdaw,

Cela fait trois semaine maintenant. Je n'ai plus accès au fichier déposé sur le site.

Normalement, pour les bases de données, le forum est "bases de données" .. donc s'il n'y a pas grand monde sur ce message, il faut changer de forum !

Pour la connexion, c'est VB2008 avec MySQL .. regarde ici, il y a un code prêt à l'emploi : https://forums.commentcamarche.net/forum/affich-498008-connexion-a-une-base-mysql-avec-vb-net
1
xxdaw Messages postés 26 Date d'inscription samedi 5 février 2011 Statut Membre Dernière intervention 1 mars 2013 1
30 nov. 2012 à 09:38
Bonjour et merci commentcamarcheeay,

La méthode est TextChanged mais seulement il me liste une erreur en disant que: une valeur de type 'String'/'Double' ne peut pas être convertie en 'system.Windows.Forms.Label'.
Je comprend ce qu'il veut dire.

J'ai essayer qu'en saisissant un texte ou chiffre dans le textbox, le texte ou le chiffre saisi s'affiche au même moment dans le label comme ceci:

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Lbl1.Text = TextBox1.Text
End Sub

Mais pour le calcul, j'ai donc fait:

Private Sub TextBox16_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox16.TextChanged
Lbl1.Text = (Val(TextBox1.Text) - Val(TextBox2.Text))

Et ça marche, seulement la valeur dans leTextBox1 est une valeur affichée venant de la base de donnée et celle du deuxième c'est à saisir. Je sais pas donc si c'est possible et comment faire pour avoir les valeurs en monnaie (ex: 25 000,00).

Merci encore à toi et aux autres aussi qui pourront m'aider.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
xxdaw Messages postés 26 Date d'inscription samedi 5 février 2011 Statut Membre Dernière intervention 1 mars 2013 1
3 déc. 2012 à 11:10
>Heliotte, Voilà le lien https://www.cjoint.com/?3LdljqaiQKp
0
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
3 déc. 2012 à 11:31
Je suis perplexe, car je ne vois pas vraiment en quoi je peux te venir en aide. Déjà j'ai pas bien compris ta demande .. je ne suis peut-être pas bien réveillé ce matin.
Comme tu à mis à notre disposition le MCD et le MPD, il serait plus judiciable de poster un nouveau message sur le forum des bases de données .. je sait pas trop.
0
Bonjour Heliotte,

Je suis de retour et je reviens vers toi.
J'ai finalement changé le SGBD. j'ai donc ma base mysql et que la base est à distance. Je sais pas comment faire pour se connecter à la base et surtout qu'elle est à distance sur un serveur local bien sûre.
Je me rappelle seulement qu'il faut créer une classe ou module pour le code (connexion) pour la bonne programmation.
Pouvez-vous vraiment m'aider pour ce développement? Les autres aussi si possible. Je trouve déjà des exemples sur le net mais je comprend pas de plus que c'est avec un seul formulaire et une seule table. Le mien à plusieurs forms et que la base a plusieurs tables.
Merci d'avance et de votre compréhension.
J'ai hate de vous lire.
0
>Heliotte,

mon problème c'est que l'étape pour créer le code je le sais plus. Je sais pas si on le met se code dans un module ou classe et que les forms ne se refèrent pas sur un seul table mais plusieurs, donc je sais plus comment faire. et de plus que je vais utiliser la base à distance qui est déjà faite.

Serait-il possible d'avoir ton adresse pour que je puisse t'envoyer le projet et que tu puisse le voir car je suis vraiment bloqué et je sais plus quoi faire.
0
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
24 déc. 2012 à 19:56
Bonsoir xxdaw,

Puisque tu as MSDN avec Visual Basic 2008, regarde dans l'aide du programme ou en ligne .. tu trouveras tous les renseignements.

Joyeux Réveillon de Noël,

Heliotte
0
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
30 nov. 2012 à 14:04
Bonjour xxdaw,
Public Class Form1
    Private Sub tbxMontantAPayer_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tbxMontantAPayer.TextChanged
        If ((Val(tbxMontantAPayer.Text) <> 0) And (Val(tbxMontantPaye.Text) <> 0)) Then
            ' calculer le "reste à payer"
            Call CalulerRestantAPayer()
        End If
    End Sub

    Private Sub tbxMontantPaye_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tbxMontantPaye.TextChanged
        If ((Val(tbxMontantAPayer.Text) <> 0) And (Val(tbxMontantPaye.Text) <> 0)) Then
            ' calculer le "reste à payer"
            Call CalulerRestantAPayer()
        End If
    End Sub

    Private Sub lbltbxResteAPayer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbltbxResteAPayer.Click
        tbxMontantPaye.Focus()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        tbxMontantAPayer.Text = "0"
        tbxMontantPaye.Text = "0"
        lbltbxResteAPayer.Text = "0"
    End Sub

    Private Sub CalulerRestantAPayer()
        lbltbxResteAPayer.Text = (Val(tbxMontantAPayer.Text) - Val(tbxMontantPaye.Text)).ToString
    End Sub
End Class

Sur le formulaire, il y a six contrôles:
ligne 1: Label~lblMontantAPayer et TextBox~tbxMontantAPayer
ligne 2: Label~lblMontantPaye et TextBox~tbxMontantPaye
ligne 3: Label~lblResteAPayer et Label~lbltbxResteAPayer, bien que ce dernier est souvent une TextBox et pas un Label.
-1
xxdaw Messages postés 26 Date d'inscription samedi 5 février 2011 Statut Membre Dernière intervention 1 mars 2013 1
3 déc. 2012 à 06:52
Merci Heliotte
-1
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
3 déc. 2012 à 08:04
Si ça marche, pense à mettre "résolu", merci et bonne programmation
0
xxdaw Messages postés 26 Date d'inscription samedi 5 février 2011 Statut Membre Dernière intervention 1 mars 2013 1
Modifié par xxdaw le 3/12/2012 à 09:30
Bonjour à tous,

Voilà, comme vous le voyer déjà je suis en train de développer une application pour multi-utilisateurs sous VB 2008. C'est une application de gestion des adhérents et des inscriptions aux activités existantes. Il faut être un membre pour s'inscrire aux activités. Ces derniers ont chacun des groupes.
Les adhérents ont des catégories/types à l'adhésion ou bien l'adhésion a des catégories/types (ex : Tout petit, enfant, Ados, Adulte). ET pour les groupes aussi, même chose. C'est-à-dire que les catégories sont les mêmes pour l'adhésion et l'inscription (Activité ----?groupe). J'ai donc conçu la base de données (qui va être sous SQL server 2005 Express Edition). J'aimerai vous envoyer la conception (MCD et MPD) mais je ne sais pas comment le faire ici.
J'explique plus clairement :
- Une fois adhéré, l'adhérent à sa catégorie.
- Pour l'inscription, on saisie son numéro d'adhésion sur la fenêtre des inscriptions et on reçoit toutes les infos saisis à l'adhésion avec sa catégorie bien sûr pour le choix de son groupe qui sont grisés. Il veut donc suivre une activité et grâce à sa catégorie, les groupes de cette activité dont il en fait partie s'affiche (ex les groupes ici sont des cours) .

Exemple :

Langue-------------> TPFrançais EFFrançais AOFrançais
TPAnglais EFAnglais AOAnglais
TPChinois EFChinois AOChinois
TPAllemand EFAllemand AOAllemand
TPItalien EfItalien AOItalien

AUFrançais
AUAnglais
AUChinois
AUAllemand
AUItalien

Danse---------------->etc...
Eveil musical-------->etc...
Théâtre-------------->etc...
Dessin--------------->etc...
Informatique------->etc...


Voilà en globale le système.

Pour la connexion multi-utilisateurs, je sais aussi qu'il faut utiliser le système DSN (Data Source Name) mais je ne le sais plus comment le faire. ça fait des années que j'ai pas touché à la programmation.


ET DE PLUS, jusqu'à maintenant, un logiciel monoposte est utilisé juste pour l'adhésion alors qu'il ya 3 accueils pour recevoir l'adhésion et donc les numéros d'adhésion ne sont plus les mêmes. Avant, il y avait que des chiffres comme 1 à 34877. Actuellement, il y a 3 types dont l'ancien fait parti, 1/12/MA à xxxxx/12/MA et 1/12/AC à xxxxx/12/AC (manuellement fait à la main sur dossier et saisie ensuite par l'utilisateur du logiciel).
Avec cette application, l'ancienne base (Table Adhérent) doit être importée. J'aimerais pourtant que les numéros d'adhésion soient incrémentés avec un seul type (continuer le premier).

Pourriez vous m'aider.
J'ai vraiment besoin de vos connaissances et compétences car aujourd'hui en 8, cette application commence à être opérationnelle.

Merci d'avance.
-1
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
3 déc. 2012 à 10:25
Pour que nous puissions avoir accès à un ou plusieurs documents/fichiers, il faut le déposer, par exemple, sur "cjoint.com" et nous mettre le(s) lien(s) des fichiers dans ton prochain message. A partir de là, nous aurons accès au(x) fichier(s).
0