将 Excel 文件导入 Access 表运行时错误“-2147352565 (8002000b)”
Posted
技术标签:
【中文标题】将 Excel 文件导入 Access 表运行时错误“-2147352565 (8002000b)”【英文标题】:Import Excel file into Access table Run-time Error '-2147352565 (8002000b)' 【发布时间】:2010-11-03 17:55:16 【问题描述】:场景:用户要求我为他们提供一个按钮,他们可以在其中选择 .xls,它将数据导入表中的相应列。
问题:我将提供下面的代码,但基本上一旦它尝试打开工作簿,它就会给我下面的错误。我已经搜索了许多解决方案,但我仍然收到此错误。
Private Sub Command20_Click()
Dim fdg As FileDialog, vrtSelectedItem As Variant
Dim strSelectedFile As String
Set fdg = Application.FileDialog(msoFileDialogFilePicker)
With fdg
.AllowMultiSelect = False
.ButtonName = "Select"
.InitialView = msoFileDialogViewList
.Title = "Select Input Files"
'add filter for excel
With .Filters
.Clear
.Add "Excel Spreadsheets", "*.xls"
End With
.FilterIndex = 1
If .Show = -1 Then
For Each vrtSelectedItem In .SelectedItems 'onby be 1
Dim app As New Excel.Application
app.Workbooks.Open (vrtSelectedItem)
app.Worksheets(1).Activate
For Each rwRow In ActiveWorkbook.Worksheets(1).Rows
' Do things with the rwRow object
Next rwRow
strSelectedFile = vrtSelectedItem
Next vrtSelectedItem
Me![txtSelectedFile] = strSelectedFile
Else 'The user pressed Cancel.
End If
End With
Set fd = Nothing
End Sub
【问题讨论】:
哪一行导致了错误? @Fink, app.Workbooks.Open(vrtSelectedItem) 【参考方案1】:嗯.. 对我有用。
我注释掉了app.Worksheets(1).Activate
和Me![txtSelectedFile] = ...
之后的四行
set fd = Nothing
我不得不改成fdg
我想知道 Excel 文件本身是否有问题。你尝试过从头开始创建的吗?
【讨论】:
原来是excel文件。启用宏会导致此错误。使它在没有它们的情况下打开并且一切正常。谢谢【参考方案2】:我不明白为什么 app.Workbooks.Open
会导致该错误。不过,我会建议一些更改,这些更改可能会或可能不会帮助您识别问题。
-
将
Option Explicit
添加到模块的声明部分;然后从 VBE 主菜单运行 Debug->Compile 以显示哪些变量还没有变暗
在 Dim app As New Excel.Application
之后包含 app.Visible = True
,以便您可以监控 Excel 发生的情况
在程序结束前添加app.Quit
和Set app = Nothing
【讨论】:
以上是关于将 Excel 文件导入 Access 表运行时错误“-2147352565 (8002000b)”的主要内容,如果未能解决你的问题,请参考以下文章
Access2007将Excel表导入至Access2007的当中一张已存在的表之中