J'obtiens l'erreur "Type incompatible dans l'expression du critère" quand j'essaye de mettre à jour ma table dans une base de données Access.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
sql = "UPDATE [MaTable] SET MonChamp=? WHERE clef=" & clef
 
cmd = New OleDbCommand(sql, con)
 
cmd.Parameters.Add(New OleDbParameter("@MonChamp", OleDbType.Numeric))
 
cmd.Parameters("@MonChamp").Value = CType(montextbox.text,Decimal)   
 
 
con.Open()
cmd.ExecuteNonQuery()
con.Close()
"MonChamp" est de type Décimal avec 3 chiffres après la virgule dans MaTable et d'après les tableaux de correspondance de Microsoft, le type Decimal d'Access correspond au type OleDb Numeric et à system.decimal.

Je n'ai pas l'erreur avec un nombre entier mais dès que j'essaye un décimal ça marche plus.

Quelqu'un peut-il m'aider à comprendre svp ?