Bonjour,
@_Ez3kiel
Ils essayent de le faire progresser
Seulement il manque un : "Avant insert"; et c'est ça qui serait utile à chuspyto
Sinon les SGBD ont effectivement les Triggers.
@_Ez3kiel (suite)
Ou on écrit une concaténation de chaine avec &
SQLstr = "INSERT INTO " & basdef & " (ChmAcc,Etiq) VALUES ('" & Recherche_AVI.Text & "','" & isole_nom(Etiq) & "')"
ou on ecrit
SQLstr = String.Format("INSERT INTO {0} (ChmAcc,Etiq) VALUES ('{1}','{2}')", basdef, Recherche_AVI.Text, isole_nom(Etiq))
mais
Envoyé par
chuspyto
SQLstr = String.Format("INSERT INTO {0} (ChmAcc,Etiq) VALUES ('" & Recherche_AVI.Text & "','" & isole_nom(Etiq) & "') ", basdef)
un mixte des 2
________________________________________________
Sinon, il est préférable d'utiliser les requêtes paramètrées.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Using cnn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=......")
cnn.Open()
If Integer.Parse(New OleDbCommand("select count(*) from " & basdef, cnn).ExecuteScalar) > 10 Then
MsgBox("enregistrement atteint")
Else
Dim myCommand As OleDbCommand = New OleDbCommand(String.Format("INSERT INTO {0} (ChmAcc,Etiq) values (?,?)", basdef), cnn)
myCommand.Parameters.Add(New OleDbParameter("@ChmAcc", OleDbType.VarChar, 4))
myCommand.Parameters.Add(New OleDbParameter("@Etiq", OleDbType.VarChar, 25))
myCommand.Parameters("@ChmAcc").Value = Recherche_AVI.Text
myCommand.Parameters("@Etiq").Value = isole_nom(Etiq)
myCommand.ExecuteNonQuery()
End If
cnn.Close()
End Using |
Mais la meilleure blague avec access, c'est qu'il ne tiend pas compte des noms des paramètres, il les prend dans l'ordre de définition dans la requette. (si je les avais appelé "Id" et "Lib" cela aurait aussi fonctionné. Ca c'est un piége)
Partager