【问题标题】:VB.Net: MS Access database engine could not find the objectVB.Net:MS Access 数据库引擎找不到对象
【发布时间】:2013-01-07 16:45:26
【问题描述】:

我有一个将 Excel 文件导入 MS Access 数据库表的模块。 我得到:MS Access 数据库引擎找不到对象“REPORTCONFIG”。 表 REPORTCONFIG 确实存在,并且它被代码“拾取”,因为就在我导入 excel 之前,我首先将表清空(工作正常)。 我已确保我的 excel 中的选项卡与表格名称相同。 (报告配置)

这是我的模块:

Dim MyExcelFileDialogBox As New OpenFileDialog()
        If MyExcelFileDialogBox.ShowDialog = DialogResult.OK Then
            MyExcelFullFileName = MyExcelFileDialogBox.FileName
            MyExcelFile = Dir(MyExcelFileDialogBox.FileName)
            MyExcelFilePath = Path.GetDirectoryName(MyExcelFileDialogBox.FileName)
            ModuleConnection.AccessConnect()
            ModuleTables.DeleteTableContent(MyTableName)
            Dim MyExcelInsertSQL As String = "INSERT INTO [" & MyTableName & "] SELECT * FROM [Excel 12.0;HDR=YES;DATABASE=" & MyExcelFullFileName & "].[" & MyTableName & "];"
            Dim MyCommand As OleDbCommand = New OleDbCommand(MyExcelInsertSQL, MyAccessConnection)
            Try
                MyCommand.ExecuteNonQuery()
                MyCommand.Dispose()
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
            MyAccessConnection.Close()
        End If 

感谢任何帮助。

【问题讨论】:

  • 您是否尝试过在 MS Access 中通过粘贴到 sql 视图中进行查询?我的 Excel 连接字符串看起来不正确。
  • 该模块适用于我导入到另一个表的另一个 excel 文档。我觉得奇怪的是,如果我以这种方式添加数据,那么它就可以工作。

标签: vb.net excel-2010 ms-access-2010


【解决方案1】:

使用工作表作为查询的数据源时,请在工作表名称后添加一个美元符号 ($),以便找到它。

通过这个简单的SELECT 查询,数据库引擎抱怨找不到REPORTCONFIG

SELECT *
FROM [Excel 12.0;DATABASE=C:\share\Access\MyWorkBook.xlsx;HDR=YES].[REPORTCONFIG];

但是,当在FROM 子句中使用REPORTCONFIG$ 时,下面的查询返回的数据没有错误。

SELECT *
FROM [Excel 12.0;DATABASE=C:\share\Access\MyWorkBook.xlsx;HDR=YES].[REPORTCONFIG$];

【讨论】:

  • HansUp,$ 为我的以 REPORTCONFIG 作为选项卡名称的文档做了诀窍,但现在其他选项卡名称包含下划线 (rpt_bank_krediet_mg_comm_cns) 的文档不再导入。跟下划线有关系吗?
  • HansUp,我发现了问题。变量 MyTableName 有问题。再次感谢您的帮助。
猜你喜欢
  • 2012-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多