Ich versuche, eine Excel-Datei in eine Access DB via VB.net importieren die Idee ist der Kunde kann die Daten in Excel exportieren, ändern, hinzufügen, löschen sie importieren es zurück.Hochladen von Excel-Datei in MS Access mit vb.net
Die exportierten Daten haben genau das gleiche Format wie die zu importierende Tabelle. ich den Code unten bin mit:
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
Ich habe immer eine Fehlermeldung, die besagt:
Unrecognized database format 'c:\--path to db--\InvoicingToolDB.accdb'
Der Weg richtig ist, und ich verstehe nicht, warum das Format nicht erkannt werden würde.
dunno, wenn es eine Option für Sie ist, aber ich habe ähnliche getan, indem Sie eine Funktion für den Import in der Zugriffs-DB VBA haben, und rufen Sie dann diese Funktion von VB.NET –
Sie können nicht zwei verschiedene [ Datenbankquelle] in einer SQL-Zeile .. Sie müssen zuerst die Daten lesen und dann die Verbindung zur Zieldatenbank öffnen und dort einfügen! –