使用OLEDB创建的vb.net导入/导出自/到Access;书签错误“;
这让我发疯: 我有一个如下定义的访问表:使用OLEDB创建的vb.net导入/导出自/到Access;书签错误“;,vb.net,ms-access,oledb,Vb.net,Ms Access,Oledb,这让我发疯: 我有一个如下定义的访问表: CustomerName - ShortText CountryCode - ShortText Category - ShortText ProductType - ShortText ProductNumber - ShortText ProductDescription - ShortText PageReferenceVolume - Number (long Integer) PK: CustomerName, CountryCode, Pr
CustomerName - ShortText
CountryCode - ShortText
Category - ShortText
ProductType - ShortText
ProductNumber - ShortText
ProductDescription - ShortText
PageReferenceVolume - Number (long Integer)
PK: CustomerName, CountryCode, ProductNumber
我有一个vb.net应用程序,用户可以将此表的数据导出到Excel文件中,这样他就可以进行批量更新,然后将其导入数据库。
因为表格可能相当大,所以我选择删除所有数据并再次从Excel导入所有数据。
这在所有的表上都很好(我在不同的地方使用它,但是对于上面的表,我系统地输入了前11行,要么没有输入,要么输入了一个错误,说“不是有效的书签错误”
关于为什么会发生这种情况有什么建议吗
以下是我正在使用的代码:
出口分包
Private Sub ExportLinkLabel_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles ExportLinkLabel.LinkClicked
Dim ProductExportFileName As String = String.Empty
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim misValue As Object = System.Reflection.Missing.Value
Dim i As Int16, j As Int16
ProductExportFileName = mdlGlobalStuff.sMasterDataPath & "\" & Microsoft.VisualBasic.DateAndTime.Year(Now) & "-" & Microsoft.VisualBasic.DateAndTime.Month(Now) & "-" & Microsoft.VisualBasic.DateAndTime.Day(Now) & " ProductExport.xls"
xlApp = New Excel.Application
xlWorkBook = xlApp.Workbooks.Add(misValue)
xlWorkSheet = xlWorkBook.Sheets("sheet1")
For Each column As DataGridViewColumn In dgv.Columns
xlWorkSheet.Cells(1, column.Index + 1) = column.DataPropertyName
Next
For i = 0 To dgv.RowCount - 2
For j = 0 To dgv.ColumnCount - 1
xlWorkSheet.Cells(i + 2, j + 1) = dgv(j, i).Value.ToString()
Next
Next
Using sfd As New SaveFileDialog
sfd.FileName = ProductExportFileName
If sfd.ShowDialog() = DialogResult.OK Then
xlWorkBook.SaveAs(sfd.FileName, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue)
End If
MsgBox(sfd.FileName & vbCrLf & "has been saved successfully")
End Using
xlWorkBook.Close(True, misValue, misValue)
xlApp.Quit()
releaseObject(xlWorkSheet)
releaseObject(xlWorkBook)
releaseObject(xlApp)
End Sub
进口分包
Private Sub ImportLinkLabel_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles ImportLinkLabel.LinkClicked
Dim Delcmd As New OleDbCommand
Dim sQuery As String = String.Empty
Dim QueryReturn As Integer = 0
Dim strFileName As String = String.Empty
Dim XLda As New OleDbDataAdapter
Dim ExcelTables As New DataTable
Try
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
Try
Delcmd.Connection = mdlLocalAccDB.accessConn
Delcmd.CommandType = CommandType.Text
Delcmd.CommandText = "DELETE * FROM tbl_GenericProducts"
QueryReturn = Delcmd.ExecuteNonQuery()
'MsgBox(QueryReturn & " rows deleted")
Catch ex As Exception
MsgBox("ImportLinkLabel_LinkClicked: Deleting Data" & vbCrLf & ErrorToString())
Exit Sub
End Try
Dim MyXLConnection As New OleDbConnection("provider=Microsoft.ACE.OLEDB.12.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_GenericProducts] SELECT * FROM [Sheet1$]"
If MyXLConnection.State = ConnectionState.Open Then
MyXLConnection.Close()
End If
MyXLConnection.Open()
cmd.ExecuteNonQuery()
End Using
End Using
Call InitForm() ' Refresh the form to displayed the newly loaded data
Catch ex As Exception
MsgBox("ImportLinkLabel_LinkClicked: Importing Product data" & vbCrLf & ErrorToString())
End Try
End Sub
您是否尝试过谷歌搜索“Not a valid bookmark”(无效书签)错误?它说问题出在数据库上。该文件可能已损坏。请尝试还原该文件,尽管每次执行代码时都出现这种情况显然是错误的。是否尝试过谷歌搜索“Not a valid bookmark”(无效书签)错误?它说问题出在数据库上。文件可能已损坏。请尝试还原它,但如果每次执行代码时都是这样,显然会出现问题
CustomerName | CountryCode | Category | ProductType | ProductNumber | ProductDescription | PageReferenceVolume
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
VALEO | BE | BE_TYPE00 | Type0 | C5F94AB | HP LaserJet Pro M402dn Printer | 500
VALEO | BE | BE_TYPE01 | Type1 | C5F94A | HP LaserJet Pro M402dn Printer | 952
VALEO | BE | BE_TYPE02 | Type2 | F2A69A | HP LaserJet Enterprise M506dn Printer | 4398
VALEO | BE | BE_TYPE02 | Type2 | F2A66A | HP LaserJet Managed M506dnm Printer | 4398
VALEO | BE | BE_TYPE03 | Type3 | CF236A | HP LaserJet Enterprise M712dn | 3760
VALEO | BE | BE_TYPE04 | Type4 | G1W46A | HP PageWide Ent Color Printer 556dn | 2418
VALEO | BE | BE_TYPE04 | Type4 | C2S11A | HP Office jet Enterprise Color X555dn | 2418
VALEO | BE | BE_TYPE05 | Type5 | D3L09A | HP Color LaserJet Enterprise M750dn | 4212
VALEO | BE | BE_TYPE06 | Type6 | F2A79A | HP LaserJet Managed MFP M527dnm Printer | 4769
VALEO | BE | BE_TYPE06 | Type6 | F2A76A | HP LaserJet Ent MFP M527dn Printer | 4769
VALEO | BE | BE_TYPE07 | Type7 | L3U63A | HP LaserJet Managed MFP M725dnm | 6262
VALEO | BE | BE_TYPE07 | Type7 | CF069A | HP LaserJet Ent MFP M725z+ | 6262
VALEO | BE | BE_TYPE07 | Type7 | CF066A | HP LaserJet Ent MFP M725dn | 6262
VALEO | BE | BE_TYPE08 | Type8 | L3U42A | HP PageWide Managed Color MFP E58650dn | 5088
VALEO | BE | BE_TYPE08 | Type8 | B5L04A | HP Office jet Enterprise Color MFP X585dn | 5088
VALEO | BE | BE_TYPE08 | Type8 | L3U40A | HP Officejet Managed Color MFP X585dnm | 5088
VALEO | BE | BE_TYPE08 | Type8 | G1W39A | HP PageWide Ent Color MFP 586dn | 5088
VALEO | BE | BE_TYPE09 | Type9 | A2W75A | HP Color LaserJet Enterprise flow MFP M880z | 19117
VALEO | BE | BE_TYPE09 | Type9 | L3U51A | HP Color LaserJet Managed Flow MFP M880zm | 19117
VALEO | BR | BR_TYPE00 | Type0 | C5F94AB | HP LaserJet Pro M402dn Printer | 1150
VALEO | BR | BR_TYPE01 | Type1 | C5F94A | HP LaserJet Pro M402dn Printer | 1005
VALEO | BR | BR_TYPE02 | Type2 | F2A69A | HP LaserJet Enterprise M506dn Printer | 7508
VALEO | BR | BR_TYPE02 | Type2 | F2A66A | HP LaserJet Managed M506dnm Printer | 7508
VALEO | BR | BR_TYPE03 | Type3 | CF236A | HP LaserJet Enterprise M712dn | 3760
VALEO | BR | BR_TYPE03 | Type3 | D3L09A | HP Color LaserJet Ent M750dn Printer | 3760
VALEO | BR | BR_TYPE03 | Type3 | CZ245A | HP LaserJet Enterprise M806x+ | 3760
VALEO | BR | BR_TYPE04 | Type4 | C2S11A | HP Office jet Enterprise Color X555dn | 3634
VALEO | BR | BR_TYPE04 | Type4 | G1W46A | HP PageWide Ent Color Printer 556dn | 3634
VALEO | BR | BR_TYPE06 | Type6 | F2A79A | HP LaserJet Managed MFP M527dnm Printer | 5347