Bonjour,

Je suis en train de réécrire en vb.net un projet de gestion de bases ACCESS 97 développé en vb6 principalement avec des requêtes SQL en DAO.
Le projet vb.net devra gérer des bases ACCESS 2016 que je souhaite remplir partiellement avec des données venant des bases ACCESS 97.
Je souhaite donc remplir certains champs de certaines tables des bases ACCESS 2016 avec des champs choisis dans les tables ACCESS 97 après avoir éventuellement modifiés ces derniers dans une DataGridView.
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
Public Connecteur_A97 As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="
Public Connecteur_A2010 As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source="
 
Sub Transfert()
'Connexion à la base ACCESS 97
    Cnx97 = New OleDbConnection(Connecteur_A97 & "D:\DBA97.mdb")
    Cnx97.Open()
'Connexion à la base ACCESS 2016
    Cnx2016 = New OleDbConnection(Connecteur_A2010 & "D:\DBA2016.accdb")
    Cnx2016.Open()
 
    Dim dat97 As DataSet
    dat97 = New DataSet
    Dim SQL_97 As String = "SELECT * FROM tableA97"    '    (la table contient 5 champs)
    Using Adap As OleDbDataAdapter = New OleDbDataAdapter(SQL_97, Cnx97)
'Chargement du Dataset
        Adap.Fill(dat97)
'Remplissage du DataGridView DGV avec la tableA97
        DGV.DataSource = dat97.Tables(0)    '    ==> tout est OK
    End Using
'modifications dans DGV    '    OK
'Update de DBA97'    je ne sais pas faire !!!
'Ajout des enregistrements de dat97 à la tableA2016 de DBA2016.accdb
    Dim Mycommand As OleDbCommand = Cnx2016.CreateCommand()
    Mycommand.CommandText = "INSERT INTO tableA2016 (champ2,  champ4, champ5, champ7, champ8) SELECT * FROM dat97.Tables(0)"
    Mycommand.ExecuteNonQuery()        '    ==> Erreur de syntaxe dans la clause FROM
 
End Sub
Merci de m'aider