BasicZx81
Messages postés140Date d'inscriptionsamedi 5 mars 2011StatutMembreDernière intervention13 août 2013
-
6 févr. 2012 à 21:51
BasicZx81
Messages postés140Date d'inscriptionsamedi 5 mars 2011StatutMembreDernière intervention13 août 2013
-
6 févr. 2012 à 22:33
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
A voir également:
Impossible de faire fonctionner la commande Update
BasicZx81
Messages postés140Date d'inscriptionsamedi 5 mars 2011StatutMembreDernière intervention13 août 2013 6 févr. 2012 à 22:33
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