Salut tout le monde
Svp j'ai besoin d'aide pour resoudre ce probleme.
J'essaye d'obtenir le dernier score enregistré dans le champs (CodeOuvrier) dans ma Table1 Access et apres je l'enregistre.
Table1 : (Id) AutoNumber , (CodeOuvrier) de Type numerique - Reelle Double : Indexé Oui - Sans doublons, (FirstName) de Type Texte, (LastName) de Type Texte
Le (codeOuvrier) se compose de 10 ou 11 ou 12 chiffres .. comme exemple (458796548991)
La premiere fois avec le premier record je tape le premier CodeOuvrier de 12 chiffre manuellement dans TextBox1 et j'enregistre .. sans aucun probleme
La Deuxieme fois avec le deuxieme recors lorsque je Click Button1 pour recuperer Last_Record .. j'aurai ce message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
L'operation arithmetique a provoqué un depassement de capacité
Nom : p_12176i4pl1.jpg
Affichages : 806
Taille : 87,5 Ko
Voici mon code utilisé :
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
25
26
27
28
29
30
31
32
33
34
35
Imports System.Data
Imports System.Data.OleDb
Public Class Form1
    Public ConStr As String = "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=|DataDirectory|\Database1.accdb "
    Public Con As New OleDbConnection(ConStr)
    Public Function Get_Last_Record(TableName, OrderByField) As Integer
        Get_Last_Record = 0
        Dim Str = "Select * From " & TableName & " Order By " & OrderByField
        Dim Adp = New OleDb.OleDbDataAdapter(Str, Con)
        Dim Ds As New DataSet
        Adp.Fill(Ds)
        Dim DT As DataTable
        DT = Ds.Tables(0)
        If DT.Rows.Count <> 0 Then
            Dim I = DT.Rows.Count - 1
            Get_Last_Record = Val(DT.Rows(I).Item(OrderByField))
        End If
    End Function
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        TextBox1.Text = Format(Get_Last_Record("Table1", "CodeOuvrier") + 1, "000000000000")
    End Sub
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Con.Open()
        Dim sqlQry As String = "Insert Into Table1 ([CodeOuvrier], [FirstName], [LastName]) Values (@CodeOuvrier, @FirstName, @LastName)"
        Using cmd As New OleDbCommand(sqlQry, Con)
            cmd.Parameters.AddWithValue("@CodeOuvrier", TextBox1.Text)
            cmd.Parameters.AddWithValue("@FirstName", TextBox2.Text)
            cmd.Parameters.AddWithValue("@LastName", TextBox3.Text)
            Dim SaveOk As Integer = cmd.ExecuteNonQuery()
            If SaveOk <> -1 Then
                MsgBox("Record enregistré avec succes")
            End If
        End Using
    End Sub
End Class
Merci d'avnace pour l'aide
LAIDAROS