none
comment faire changer une valeur dans un textbox RRS feed

  • Question

  • bonjour chère auditeur.mon problème est le suivant:j'ai conçu un application sur VB qui permet de gerer un super marché.je veux que le numero facture  qui se trouve dans un textbox change dés que je clique sur un buton suivant, et  qui me donne un autre numero facture qui se trouve dans la base de donnée access.je rappelle que tous mes numeros factures sont repertoriés dans la base de donnée access.les numeros facture  vont de f1 à f100.
    aidez moi car c'est urgent.merci
    dimanche 31 janvier 2010 03:37

Réponses

  • Bonsoir,

    Il y a plusieurs possibilités qui s'offrent à vous pour réaliser votre compteur de facture.

    Vous pouvez créer une table Counter dans votre base de données Access.

    Par la suite, vous pouvez ajouter 2 requêtes : 1 (requête de mise à jour) pour incrémenter votre compteur et 1 pour récupérer votre nouveau code.

    Requête de mise à jour "updateCounter" :

    UPDATE [Counter] SET [Counter].NumeroFacture = [Counter].[NumeroFacture]+1;
    

    Et une requête de sélection  "getCounter" :

    SELECT Counter.NumeroFacture
    FROM [Counter];

    Par la suite du côté de votre application, vous pouvez écrire ceci :

            Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Test.accdb"
            Dim connection As New OleDb.OleDbConnection(connectionString)
            Dim updateCommand As New OleDb.OleDbCommand("updateCounter", connection)
            updateCommand.CommandType = CommandType.StoredProcedure
            Dim getCounter As New OleDb.OleDbCommand("getCounter", connection)
            getCounter.CommandType = CommandType.StoredProcedure
    
            connection.Open()
            updateCommand.ExecuteNonQuery()
            Dim counter As Integer = getCounter.ExecuteScalar()
            connection.Close()
    
            txtCodeFacture.Text = "f" + counter.ToString()

    J'espère que cela vous aidera ou vous donnera des idées.

    Cordialement,

    Mathieu
    Mathieu Francesch Sharplog Engineering
    • Marqué comme réponse Alex Petrescu mardi 2 février 2010 10:36
    dimanche 31 janvier 2010 18:50
  • avant de voir ta reponse j'ai essayé un code qui à marcher;le voici

     

    Dim i As Integer 

    For i = 1 To 100

    Txt1.Text = Txt1.Text + i
    Next i

     

     

     

     

    merci à tous 

    dimanche 31 janvier 2010 18:40

Toutes les réponses

  • Bonjour,

    Voici :

    ' objet = button1 ou x
    Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Dim r
      r = MsgBox(" Confirmer l'incrémentation du numéro de facture  ", vbQuestion + vbYesNo + vbDefaultButton2)
      If r <> vbYes Then Exit Sub
      ' ICI MODIFIER ACCESS +1 SUR N° FACTURE
    End Sub

    Est-ce ça que tu veux ?

    Cordialement.


    Joe ___ Romans et Logiciels ___ http://irolog.free.fr
    dimanche 31 janvier 2010 08:02
  • ton code me permet simplement d'afficher ce qui est dans le msgbox;mais ça n'incremente pas c'est à dire que la valeur de mon textbox ne change pas.donne moi la suite du code
    dimanche 31 janvier 2010 09:23
  • Salut si j’ai bien compris

     Alors Voila ce que je propose

     

    ’Bien sur si tu fais une connection manuel

    Sinon tu peut passer  les datasets

     

    Dim a as integer=0 ’servira a passer d’une facture a une autre

    Dim t(100) as string ’comme tu as de 0 a 100 facture sinon tu peut fais sans le nombre d’element au depart

     

    ’dans le chargement du formulaire

     

     Private Sub form_load(…)…

            ’ici tu declare la connection avec tous les parametres qu’il faut

     

    ----------------------------------------

            Dim mycde As OleDbCommand = mycon.CreateCommand()

     

    ’la requete pour selectionner tes codes facture

     

            mycde.CommandText = "SELECT codfacture FROM tablefacture"

                mycon.Open()

            Dim i As Integer = 0

            Dim myreader As OleDbDataReader = mycde.ExecuteReader()

            Do While myreader.Read()

                t(i) = myreader.GetString(0)

                i += 1

            Loop

    myreader.close
            
    'fermeture de la connection
            Array.Sort(t)

        End Sub

     

    ’dans la procedure du bouton mettre

        private sub boutonsuivant_click(…)…

    ’quandv tu click textbox recois l’element indexe et a augmente      

     textbox.text = t(a)

            a += 1

            If a > 100 Then a = 0

        End Sub

    J’espere avoir été juste

    amicalement

     

    dimanche 31 janvier 2010 17:34
  • avant de voir ta reponse j'ai essayé un code qui à marcher;le voici

     

    Dim i As Integer 

    For i = 1 To 100

    Txt1.Text = Txt1.Text + i
    Next i

     

     

     

     

    merci à tous 

    dimanche 31 janvier 2010 18:40
  • Bonsoir,

    Il y a plusieurs possibilités qui s'offrent à vous pour réaliser votre compteur de facture.

    Vous pouvez créer une table Counter dans votre base de données Access.

    Par la suite, vous pouvez ajouter 2 requêtes : 1 (requête de mise à jour) pour incrémenter votre compteur et 1 pour récupérer votre nouveau code.

    Requête de mise à jour "updateCounter" :

    UPDATE [Counter] SET [Counter].NumeroFacture = [Counter].[NumeroFacture]+1;
    

    Et une requête de sélection  "getCounter" :

    SELECT Counter.NumeroFacture
    FROM [Counter];

    Par la suite du côté de votre application, vous pouvez écrire ceci :

            Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Test.accdb"
            Dim connection As New OleDb.OleDbConnection(connectionString)
            Dim updateCommand As New OleDb.OleDbCommand("updateCounter", connection)
            updateCommand.CommandType = CommandType.StoredProcedure
            Dim getCounter As New OleDb.OleDbCommand("getCounter", connection)
            getCounter.CommandType = CommandType.StoredProcedure
    
            connection.Open()
            updateCommand.ExecuteNonQuery()
            Dim counter As Integer = getCounter.ExecuteScalar()
            connection.Close()
    
            txtCodeFacture.Text = "f" + counter.ToString()

    J'espère que cela vous aidera ou vous donnera des idées.

    Cordialement,

    Mathieu
    Mathieu Francesch Sharplog Engineering
    • Marqué comme réponse Alex Petrescu mardi 2 février 2010 10:36
    dimanche 31 janvier 2010 18:50