Bonjour,

J'utilise un dataset pour mettre à jour une base de donnee acces en vb.net

J'ai un soucis lors de l'update sur cette Table ( le code fonctionne sur d'autre mdb ) dans ce cas precis il y a "Erreur de syntaxe dans l'instruction INSERT INTO." oleDbException non générée. Voici mon code

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
Dim ObjetConnection As OleDbConnection
Dim ObjetCommand As OleDbCommand
Dim ObjetDataAdapter As OleDbDataAdapter
Dim ObjetDataSet As New DataSet() 'Attention au New
Dim strSql As String
Dim ObjetDataTable As DataTable
Dim ObjetDataRow As DataRow
Dim RowNumber As Integer
Dim strConn As String
Dim ObjetCommandBuilder As OleDbCommandBuilder
 
 
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source= c:\MaBase.mdb;"
 
strSql = "SELECT * FROM MaTable"
ObjetConnection = New OleDbConnection()
ObjetConnection.ConnectionString = strConn
ObjetConnection.Open()
ObjetCommand = New OleDbCommand(strSql)
ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
ObjetCommand.Connection() = ObjetConnection
ObjetDataAdapter.Fill(ObjetDataSet, "MaTable")
ObjetDataTable = ObjetDataSet.Tables("MaTable")
 
ObjetDataRow = ObjetDataSet.Tables("MaTable").NewRow()
ObjetDataRow("Date") = Date 'champ1
 
ObjetDataSet.Tables("MaTable").Rows.Add(ObjetDataRow)
ObjetCommandBuilder = New OleDbCommandBuilder(ObjetDataAdapter)
ObjetDataAdapter.Update(ObjetDataSet, "MaTable")
ObjetDataSet.Clear()
ObjetDataAdapter.Fill(ObjetDataSet, "MaTable")
ObjetDataTable = ObjetDataSet.Tables("MaTable")
 
ObjetConnection = Nothing
ObjetCommand = Nothing
ObjetDataAdapter = Nothing
ObjetDataSet = Nothing
ObjetDataTable = Nothing
ObjetDataRow = Nothing
Il n'y a pas d'erreur sur l'ouvertude de la table car je peux lire les enregistrements mais je ne peux pas en creer un. D'apres le cours de Mr Lasserre cela pourrait provenir de, je cite: 'Attention: quand la commande Update est effectuée, si l'enregistrement ne répond pas au spécification de la base ( doublon alors que c'est interdit, pas de valeur pour une clé primaire, Champ ayant la valeur Null alors que c'est interdit..), une exception est levée; si vous ne l'avez pas prévue cela plante!!'

Dans ma table le champs(0) est un numero auto avec clef primaire sans doublon, le champs(1) est au format date avec doublons.

J'ai trouvé des solutions dans le forum VB.net en passant par ADODB ( ce qui d'ailleur ressemble plus à VB6), j'aimerais qd meme comprendre pourquoi ca ne va pas.

Merci de votre aide. a ciao.