Итак, вот оно:
Мне нужно скопировать данные из таблицы в базе данных Access, в другую таблицу из другой базы данных Access.
Имена столбцов в таблицах одинаковы, за исключением того, что в таблице FROM 5 столбцов, в таблице TO - 6.
вот мой код:
dsFrom.Clear()
dsTO.Clear()
daFrom = Nothing
daTO = Nothing
conn_string1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="etc.mdb;"
conn_string2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="database.mdb;"
query1 = "Select * from nomenclator_produse"
query2 = "Select * from nomenclator_produse"
Conn1 = New OleDbConnection(conn_string1)
conn2 = New OleDbConnection(conn_string2)
Conn1.Open()
conn2.Open()
daFrom = New OleDbDataAdapter(query1, Conn1)
daTO = New OleDbDataAdapter(query2, conn2)
daFrom.AcceptChangesDuringFill = False
dsFrom.HasChanges()
daFrom.Fill(dsFrom, "nomenclator_Produse")
dsFrom.HasChanges()
Dim cb = New OleDbCommandBuilder(daFrom)
dsTO = dsFrom.Copy
daTO.UpdateCommand = cb.GetUpdateCommand
daTO.InsertCommand = cb.GetInsertCommand
daTO.Update(dsTO, "nomenclator_produse")
Поскольку в таблице FROM 5 строк, а в другой - 6, я пытаюсь использовать команду InsertCommand, сгенерированную DataAdapter первой таблицы.
Работает, только то, что вставляет данные из FROMTABLE в тот же FROMTABLE вместо TOTABLE.