Impossible de faire fonctionner la commande Update [Résolu]

Signaler
Messages postés
140
Date d'inscription
samedi 5 mars 2011
Statut
Membre
Dernière intervention
13 août 2013
-
Messages postés
140
Date d'inscription
samedi 5 mars 2011
Statut
Membre
Dernière intervention
13 août 2013
-
Bonjour à tous, je m'arrache les cheveux sur un problème qui semble pourtant simple. J'espère que vous pourrait m'aider car la je tourne en rond depuis quelques jours sans trouver la solution. Donc j'ai une procédure qui fonctionné avant et j'ai du modifier un truc dans mon programme ou un truc dans la base peut-être ? pourtant j'ai bien vérifier la base (tous les champs accepte une valeur Null donc pas de problème de ce coté là, pas de soucis non plus avec la clé primaire "USERNAME", l'utilisateur que je veux ajouter n'existe pas dans la base) bref j'obtiens une Erreur : Erreur de syntaxe dans l'instruction INSERT INTO lorsque j'effectue la commande Update.



    Public Sub SaveNewUser(UserName As String)
        'Déclaration de la variable pour la connectionstring
        Dim strConnect As String
        'Test de la connection avec la base de données
        Try
            strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & "D:\Projets VB2010\X-Project\X-Project\AppFiles\X-Project.mdb"
            DBconnection = New OleDbConnection(strConnect)
            'DBcommand = New OleDbCommand()
            'DBcommand.Connection = DBconnection
            DBconnection.Open()
        Catch
            MsgBox("La connexion à echoué, l'application va se fermer !", MsgBoxStyle.Critical)
            End
        End Try

        'Initialisation de la chaîne contenant l'instruction SQL
        'Dim sqlUser As String "SELECT * FROM Users WHERE USERNAME 'Toto'"
        Dim sqlUser As String = "SELECT * FROM Users"
        'Instancier un objet Adapter
        DBDataAdapterUser = New OleDbDataAdapter(sqlUser, DBconnection)
        'Avec l'aide de la propriété Fill du DataAdapter charger le DataSet
        Dim objDBDatasetUser As New DataSet
        DBDataAdapterUser.Fill(objDBDatasetUser, "Users")

        Dim objRow As DataRow = objDBDatasetUser.Tables("Users").NewRow
        objRow("USERNAME") = UserName
        objRow("PRIVILEGES") = "Utilisateur"
        objDBDatasetUser.Tables("Users").Rows.Add(objRow)
        Dim bldr = New OleDbCommandBuilder(DBDataAdapterUser)
        DBDataAdapterUser.InsertCommand = bldr.GetInsertCommand
        Try
            DBDataAdapterUser.Update(objDBDatasetUser, "Users")
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical)
        End Try


        DBconnection.Close()

    End Sub

1 réponse

Messages postés
140
Date d'inscription
samedi 5 mars 2011
Statut
Membre
Dernière intervention
13 août 2013

Bonsoir, c'est bon j'ai trouvé. Il faut que je poste pour trouver la solution 5 minutes aprés....lol
Je savais qu'il y avait des noms de champs interdit mais pas à ce point et PRIVILEGES fait partie des noms interdit sous ACCESS 2003. c'est toujours bon à savoir....;)
http://support.microsoft.com/kb/248738