0
我想通过vb.net将Excel文件导入Access数据库 这个想法是客户可以将数据导出到excel,修改它,添加,删除它们导入回来了。使用vb.net将Excel文件上传到MS Access中
导出的数据与导入的表格格式完全相同。 我使用下面的代码:
Try
Dim strFileName As String = String.Empty
Dim XLda As New OleDbDataAdapter
Dim ExcelTables As New DataTable
Dim StrSelect = "SELECT * FROM [{0}]"
OpenFileDialog1.FileName = ""
OpenFileDialog1.InitialDirectory = mdlGlobalStuff.sMasterDataPath
OpenFileDialog1.Filter = "Excel|*.xls|All files (*.*)|*.*"
If OpenFileDialog1.ShowDialog() <> Windows.Forms.DialogResult.OK Then
Exit Sub
End If
strFileName = OpenFileDialog1.FileName
Dim MyXLConnection As New OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & strFileName & ";Extended Properties=Excel 8.0;")
Using MyXLConnection
Using cmd As New OleDbCommand
cmd.Connection = MyXLConnection
cmd.CommandText = "INSERT INTO [MS Access;Database=InvoicingToolDB.accdb].[tbl_Bases] SELECT * FROM [Sheet1$]"
If MyXLConnection.State = ConnectionState.Open Then
MyXLConnection.Close()
End If
MyXLConnection.Open()
cmd.ExecuteNonQuery()
End Using
End Using
Catch ex As Exception
MsgBox("ImportLinkLabel_LinkClicked: Importing Base data" & vbCrLf & ErrorToString())
End Try
我一直有一个错误信息说:
Unrecognized database format 'c:\--path to db--\InvoicingToolDB.accdb'
的路径是正确的,我不明白为什么格式将不被认可。
dunno如果它是你的一个选项,但我已经看到类似的做法是通过在Access数据库VBA中导入一个函数,然后从VB.NET中调用该函数 –
你不能使用两个不同的[数据库源]在一个SQL行..你需要先读取数据,然后打开连接到目标数据库并插入那里! –