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 6 et antérieur Discussion :

[VB]Table d'opération


Sujet :

VB 6 et antérieur

  1. #1
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Par défaut [VB]Table d'opération
    Bonjour,

    Je désire faire un programme sur les tables d'opération.
    J'ai 2 label et 1 textbox pour recevoir le resultat de l'utilisateur.
    ex: 1 + 1 = ...... (Les pointillés sont les textbox)
    2 + 2 = .....
    3 + 3 = .....
    etc... quelqu'un pourrait-il m'orienter à commencer ce programme.
    Je désire le faire pour les addition les multiplication les division et les soustraction.
    Merci d'une réponse

    @+

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    J'ai 2 label et 1 textbox pour recevoir le resultat de l'utilisateur.
    ex: 1 + 1 = ...... (Les pointillés sont les textbox)
    2 + 2 = .....
    3 + 3 = .....
    Un bon début : relis donc ta question et recommences-la, s'il le faut (il me semble que oui....)

    On verra après.

    PS : Es-tu sur de n'avoir pas plutôt besoin de 2 textboxes (pour les saisies) et d' un label (pour les résultats) :

  3. #3
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    c'est un programme simple.

    que sait-tu déja faire?

  4. #4
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Par défaut Les tables d'opération
    rebonjour,

    Non je n'ai pas besoin de 2 textbox car les labels ne serve qu'a lire.
    Il faut que dans le texbox l'utilisateur mettre le résultat des 2 labels.
    1 + 1 = .....
    2 + 2 = .....
    etc .... .l'utilisateur inscrit le résultat des labels ou du label (je peux mettre 1+1 dans 1 seul label) dans le textbox et suivant si c'est bon ou pas un message s'affiche pour l'informer du resultat.

    j'ai commencé comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Text1_KeyPress(KeyAscii As Integer)
      if keyascii = 13 then
        if val(Text1(0) = 4 then
          message  ' Procédure
          valText1(1).Setfocus
        else
          Erreur    ' Procédure
          val(Text1(0) = ""
          val(Text1(0).SetFocus
        end if
      end if
    End Sub
    Mais Programmé chaque Textbox me semble un peu long.
    Mon niveau de programmation est débutant.

    j'espère avoir été plus clair.
    Merci de vos réponse

  5. #5
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    je n'ais pas bien compris pourquoi tu avais besoin de deux label... et sinon, je te conseille d'utiliser un bouton pour la validation.


    salut

  6. #6
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Veux-tu relire ce que tu écris s'il te plait ?
    Non je n'ai pas besoin de 2 textbox car les labels ne serve qu'a lire.
    et plus loin :

    Mais Programmé chaque Textbox me semble un peu long.
    ce qui est parfaitement contradictoire
    Mais je commence à deviner que tu veux peut-être dire :
    que tu as une série de questions/réponses composées, chacune d'entre elles, de 2 labels prédéfinis et d'un textbox pour permettre à un utilisateur d'entrer sa réponse, que tu veux tester.

    Dis-moi si c'est bien cela que tu veux et nous avancerons pas à pas car tu n'as apparemment que très peu de connaissances.

    Je suggère que nous commencions par une seule opération (1+1) dans un label

    ouvres-donc un nouveau projet avec :

    1 label label1 avec sa propriété caption = "1+1"
    1 textbox texbox1
    1 bouton de commande commandbutton1 avec sa propriété caption = "vérification"

    Quand tu te réfères à la saisie dans textbox1, réfères-toi à textbox1.text

    commences ainsi et dis-moi si tu rencontres un obstacle à ce niveau et nous verrons.

    Une fois ce 1er stade passé, nous avancerons différemment (un label avec 1 chiffre, un textbox ou tu pourras changer le signe de l'opération et un label avec l'autre chiffre)
    etc..., pas à pas... je te suivrai au début puis te laisserai faire... afin que je sois certain (j'y tiens) que tu n'avances pas "à l'aveuglette"

    à très bientôt donc


  7. #7
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Par défaut Les tables d'opération
    rebonjour,

    Tu as bien compris c'est cela que je veux faire.
    Oui je suis débutant.

    J'ai fait ce que tu m'a dit
    J'ai mis un label avec "1+1" et un textbox ainsi qu'un bouton validation.
    j'ai inséré ce code à l'intérieur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Val(Text1.Text) = 2 Then
      MsgBox "Bravo"
    Else
      MsgBox " Erreur"
    End If
    je te remercie de m'aider

  8. #8
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Mais voilà : tu apprends vite !

    2ème étape, donc

    au lieu d'un seul label, tu en fais 2, ainsi :

    renommes label1 en "nombrea" (pour renommer, utilises la propriété Name)
    ajoutes un label que tu appelles "nombreb"
    entre ces deux labels, ajoutes un textbox que tu appelles "signe" avec sa propriété text = ""

    dans le code que tu as déjà écrit, tu connaissais forcément la réponse (2) mais on va supposer, maintenant que tu le la connaisses pas. Ta vérification devra porter, si le signe est + sur :
    si la réponse de l'utilisateur = la valeur de nombrea.caption + la valeur de nombreb.caption alors "Bravo" sinon "erreur"

    on commence par le signe + pour l'instant (on verra ensuite pour ce qui est des changements de signes)...

    allez vas-y et dis-moi...


  9. #9
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Par défaut Les tables d'opération
    Me revoilà

    J'ai fait ce que tu m'a dit et mis ce code cela fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Command1_Click()
      If Val(Text1.Text) = Val(nombrea.Caption) + Val(nombreb.Caption) Then
        MsgBox "Bravo"
      Else
        MsgBox "Erreur"
      End If
    End Sub


  10. #10
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Très bien !
    3ème étape donc

    1) en lieu et place des label nombrea et nombreb (supprimes-les carément) utilises 2 textbox (avec propriété text = "") et nommes-les "nombrea" et "nombreb"
    ton code précédent sera bon si tu changes simplement nombrea.caption et nombreb.caption par nombrea.text et nombreb.text (çà tu le vois déjà bien, n'est-ce-pas ?)

    2) en développement, il est toujours préférable (et ce sera très utile pour les autres étapes) de passer par des variables pour à la fois raccourcir le code et agiliser l'appli. L'agilisation, avec une seule question, est pour l'instant nulle, mais tu verras à quelle point elle servira pour les autres étapes

    déclarons donc 4variables : a, b, resul et propos
    dim a as integer, b as integer, c as integer, propos as integer

    dans ton code, tu peux, tu le vois, dire que a = val(nombrea.text), b = val(nombreb.text), resul = a + b et propos = val(text1.text)et donc, ensuite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If propos = resul Then
      MsgBox "Bravo"
    Else
      MsgBox " Erreur"
    End If
    fais çà et dis-moi... le reste ira ensuite très vite

  11. #11
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Par défaut Les tables d'opération


    Super

    Voici mon code, j'ai bien compris c'est coul merci encore

    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
    Private Sub Command1_Click()
      Dim resul As Integer
      Dim a As Integer, b As Integer, c As Integer, propos As Integer
      a = Val(nombrea.Text)
      b = Val(nombreb.Text)
      resul = a + b
      propos = Val(Text1.Text)
     
      If propos = resul Then
        MsgBox "Bravo"
      Else
        MsgBox "Erreur"
        Text1.SetFocus
        Text1.Text = ""
      End If
    End Sub

  12. #12
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Tu vois ?? Rien de plus facile que le développement quand on commence par structurer sa pensée... Je te félicite.

    4ème étape donc, que tu vas commencer seul.

    Tu as bien compris que celà te permet de faire toutes les additions sur tous les nombres entiers que tu voudras. Mais quid des autres opérations ???

    Fastoche : il suffit de définir la valeur de resul en fonction du signe mis dans le textbox signe, non ???

    si le signe est "+", par exemple, resul = a + b. si le signe est "-", resul = a - b, etc...

    comment exprimer agilement tout celà ? Il y a le If....Then... bien sur, mais, dans le cas de figure, il vaudrait beaucoup mieux utiliser Select Case.
    A ce niveau, tu vas aller faire un tour dans l'aide en ligne et voir ce que c'est que ce Select Case et comment t'en servir. Je vais pendant ce temps manger et reviendrai voir ou tu en es...

    A très bientôt donc

  13. #13
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Par défaut Les tables d'opération
    Bien manger ?

    J'ai pas trouvé la solution avec le select case

    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
    Private Sub Command1_Click()
      Dim resul As Integer
      Dim a As Integer, b As Integer, c As Integer, propos As Integer
      a = Val(nombrea.Text)
      b = Val(nombreb.Text)
      resul = a + b
      c = a - b
      propos = Val(Text1.Text)
     
      If propos = resul Then
        MsgBox "Bravo"
      Else
        MsgBox "Erreur"
        Text1.SetFocus
        Text1.Text = ""
      End If
     
      Select Case signe
        Case "+"
          resul
        Case "-"
          c
      End Select
    End Sub
    j'ai fait cela mais une erreur m'apparait !!

  14. #14
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Tu as bien évidemment une erreur si tu t'exprimes ainsi.

    alors :
    signe n'étant pas une variable, tu dois te référer à signe.text

    1) resul doit être "calculé" là où, dans ton code, tu avais :
    c'est là que tu dois exprimer la valeur de resul en fonction du signe saisi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Select Case signe.Text
        Case Is = "+"
          resul = a + b
        Case Is = "-"
          resul = a - b
        Case Is = "x"
          resul = a * b
        Case Is = ":"
          resul = a / b
      End Select
    celà ne marchera que si, dans le textvox signe, tu saisis "+", "-", "x" ou ":"
    on verra plus tard qu'il convient de prévoir le cas où on frappe un signe qui ne rentre dans aucun de ces cas-là....
    pour l'instant, contentes-toi de celà, mais..... quid de la division ? (on a défini resul comme un entier alors que si, par exemple, on divise 2 par 3 on n'aura pas un entier....) que convient-il de faire, selon toi, pour remédier à cet état de choses ??? je t'écoute....

  15. #15
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Par défaut Les tables d'opération
    Pour la division je devrait peut être changer les variables de type entier par des variables de type single (7 chiffres aprés la virgule ça devrait suffire.

    Voici mon code

    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
    Private Sub Command1_Click()
      Dim resul As Integer
      Dim a As Integer, b As Integer, c As Integer, propos As Integer
      a = Val(nombrea.Text)
      b = Val(nombreb.Text)
      Select Case signe.Text
        Case Is = "+"
          resul = a + b
        Case Is = "-"
          resul = a - b
        Case Is = "x"
          resul = a * b
        Case Is = "/"
          resul = a / b
      End Select
      propos = Val(Text1.Text)
      If propos = resul Then
        MsgBox "Bravo"
      Else
        MsgBox "Erreur"
        Text1.SetFocus
        Text1.Text = ""
      End If
    End Sub

  16. #16
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Tout celà est parfait et je t'en félicite ainsi qu'en ce qui concerne le choix de single pour les variables, y compris la variable propos que j'avais oubliée ( à ce propos là -sans jeu de mots - l'utilisateur devra utiliser le point "." et non la virgule "," pour les décimales... enfin, avec ma version en tout cas)
    A ce niveau :
    1) un point qui n'a rien à voir avec le développement : as-tu remarqué que ce que je présentais en "code" avait un aspect différent du tien ? Pour y parvenir, il faut utiliser les balises code (avant et après ton code). Celà permet une meilleure lisibilité... essayes de le faire dorénavant.

    2) te voilà equipé d'un bon outil (très simple, mais c'est un début...), mais, si j'ai bien compris, tu souhaiterais disposer de plusieurs questions et réponses ? Comment allons-nous donc procéder ????
    Avec VB, il est possible de créer des groupes d'objets, chacun d'entre eux étant "affublé d'un index identificateur.

    Essayes, sur un autre projet "d'essai", de créer un contrôle quelconque ,un textbox par exemple, puis sélectionnes-le, copies-le et colles-le... VB t'interrogeras sur ton intention de créer un groupe ou non. Réponds oui et vas voir, dans la fenêtre des propriétés, comment vb a procédé (changement du nom et propriété index notamment). Fais celà et dis moi ce que tu constates... je t'attends...


  17. #17
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Par défaut Les tables d'opération
    Hello,

    J'ai fait ce que tu m'a conseillé avec les textbox, j'en ai fait 6 et j'ai remarqué
    que tous les textbox sont textbox1(1), textbox(2), textbox(3) etc ..

  18. #18
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Tu as tout bien observé, sauf que le 1er index n'est pas 1 mais 0.. mais c'est bon.

    Imagine maintenant que tu "alignes" tes questions/réponses ainsi sur ta form (en créant, comme tu sais maintenant le faire, des groupes d'objets indexés)
    nombrea(0) signe(0) nombreb(0) propos(0) comand1(0) message(0)
    nombrea(1) signe(1) nombreb(1) propos(1) comand1(1) message(1)
    .
    .
    nombrea(n) signe(n) nombreb(n) propos(n) comand1(n) message(n)

    j'ai ajouté un contrôle "message", qui sera un label dont la propriété caption prendra la valeur "bravo" ou "erreur" selon le cas, car celà est plus élégant qu'un msgbox plutôt énervant...

    tu observeras que tu as cette fois-ci quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Command1_Click(Index As Integer)
    
    
    end sub
    où index = 0, 1, 2 etc....
    C'est là dedans que tu vas écrire le même code que précédemment, mais en te référerant, en plus, à l'index

    ex : a = Val(nombrea(index).Text) (idem pour tous les contrôles indexés... bien sur)

    A ce niveau là, Prog1, j'attends de toi que tu fasses un maximum d'effort, pour l'instant sans moi... Le reviendrai si tu appelles au secours, mais en me montrant (et commentant) ce que tu auras essayé..
    Je vois qu'il est 22 heures et que tu es encore là et t'en félicite mais tu es jeune et as surement besoin de repos aussi...

    J'ajoute que je fais très rarement ce que je fais là et que je ne le fais que parce-que tu me parais aller dans le bon sens... Le risque est toutefois que tu attrapes le "virus" du développeur et je ne voudrais pas en être responsable....

    A demain sans doute...


  19. #19
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Par défaut Les tables d'opération
    oui à demain, dans l'aprés-midi

    bonne nuit et merci

  20. #20
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    Citation Envoyé par jmfmarques
    à ce propos là -sans jeu de mots - l'utilisateur devra utiliser le point "."
    je pense qu'un replace reglera facilement ce problème.
    Je te félicite pour ta pédagogie jfmarques et je félicite égualement prog1 pour sa rapidité d'aprentissage.
    pour ma part, j'ai tendance à faire ce genre de chose par msn.

    salut

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Opérations sur tables jointes
    Par fikou dans le forum VB.NET
    Réponses: 3
    Dernier message: 10/02/2008, 15h19
  2. [VB6 + access] Faire l'opération lier les tables
    Par david71 dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 03/08/2007, 15h26
  3. Opération mathématique sur une table
    Par webrider dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 23/09/2006, 14h01
  4. Réponses: 3
    Dernier message: 19/06/2006, 14h25
  5. [Oracle 9.1] Opérations sur tables très proches...
    Par ftrifiro dans le forum Oracle
    Réponses: 7
    Dernier message: 10/10/2005, 14h10

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