Bonjour,

Je sollicite votre aide car je ne comprend pas ce qui cloche dans mon code.
J'ai une erreur de type "Erreur de syntaxe dans l'instruction INSERT INTO"

Voici le code incriminé :

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
36
37
38
39
40
41
42
43
44
45
46
 
 'Dim Requete As String = "INSERT INTO USERS (Identifiant, Nom, Prenom, Password, Mail, Role, Cercle, DateCreation, DateValidite, Verrouille, NumElements, CheminDefaut, CopieMail, AccuseMail) VALUES (@Identifiant,@Nom,@Prenom,@Password,@Mail,@Role,@Cercle,@DateCreation,@DateValidite,@Verrouille,@NumElements,@CheminDefaut,@CopieMail,@AccuseMail)"
            Dim Requete As String = "INSERT INTO USERS (Identifiant,Nom,Prenom,Password,Mail,Role,Cercle,DateCreation,DateValidite,Verrouille,NumElements,CheminDefaut,CopieMail,AccuseMail) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
 
            Dim commande As New OleDbCommand(Requete, Connexion)
 
            With commande
 
                .Parameters.Add("@Identifiant", OleDbType.VarChar).Value = TxtIdentifiant.Text
                .Parameters.Add("@Nom", OleDbType.VarChar).Value = TxtNom.Text
                .Parameters.Add("@Prenom", OleDbType.VarChar).Value = TxtPrenom.Text
                .Parameters.Add("@Password", OleDbType.VarChar).Value = TxtPassword1.Text
                .Parameters.Add("@Mail", OleDbType.VarChar).Value = TxtMail.Text
                .Parameters.Add("@Role", OleDbType.VarChar).Value = TxtRole.Text
                .Parameters.Add("@Cercle", OleDbType.VarChar).Value = CmbSite.Text
                .Parameters.Add("@DateCreation", OleDbType.Date).Value = DateTime.Now.Date
                .Parameters.Add("@DateValidite", OleDbType.Date).Value = DtpValidite.Value.Date
                If ChkVerrouille.Checked = True Then
                    .Parameters.Add("@Verrouille", OleDbType.VarChar).Value = "OUI"
                Else
                    .Parameters.Add("@Verrouille", OleDbType.VarChar).Value = "NON"
                End If
                .Parameters.Add("@NumElements", OleDbType.VarChar).Value = "5"
                .Parameters.Add("@CheminDefaut", OleDbType.VarChar).Value = "C:\"
                .Parameters.Add("@CopieMail", OleDbType.VarChar).Value = "N"
                .Parameters.Add("@AccuseMail", OleDbType.VarChar).Value = "N"
 
            End With
 
            Try
 
                Connexion.Open()
 
                commande.ExecuteNonQuery()
 
                Connexion.Close()
 
            Catch ex As Exception
 
                MsgBox("Une erreur est survenue lors de la création de l'utilisateur." & vbCrLf & vbCrLf & ex.Message, vbOKOnly + vbCritical, "MyGED")
 
                Connexion.Close()
 
                Exit Sub
 
            End Try
La requête commentée était un essai précédent. J'arrive sans problème à utiliser ce code en SQL server, mais sur Access je ne parviens pas à l'adapter. J'ai cherché sur le Net, mais je ne trouve rien de concluant. Le code présenté devrait normalement fonctionner selon le dernier exemple que j'ai pu trouver ... mais en fait non.

Si quelqu'un peut m'expliquer si c'est le VB qui n'est pas correcte au niveau des paramètres, ou si c'est mon SQL qui est foiré ce serait vraiment sympa car là ça me m'enquiquine de perdre du temps sur un truc aussi basique.

Merci d'avance de votre aide.

Bonne journée.

Cordialement-