【发布时间】:2011-12-12 03:48:24
【问题描述】:
我正在尝试在 Excel 中编写一些 vba 代码来查询 Access 中的表。我为此尝试了多个代码示例,例如添加的链接,它们似乎都在“打开连接”部分失败。我尝试过使用不同的引用,但我不确定我应该使用哪个,一些不同版本(即 Microsoft ActiveX 数据对象 2.0、2.1、...、6.0)之间有什么区别,或者提供者信息是什么应该。对于提供商信息,我通常看到的内容类似于
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
但我不确定这是否是我需要使用的,或者上面显示的提供程序字符串中的任何内容为什么/什么条件应该改变。有人可以教我如何正确地做这种事情吗?
注意:如果可能的话,我想要一个无需下载任何其他应用程序即可工作的解决方案,并且适用于 2007 和 2010 版本的 Access 和 Excel,因为这需要在不同版本的不同计算机上运行办公室。
类似问题的链接: Excel VBA query to access is failing http://www.mrexcel.com/forum/showthread.php?t=527490
代码:
Sub asdf()
strFile = "C:\Users\bwall\Desktop\Excel Query Access Testing"
Dim cn As Object
Dim rs As Object
Dim strSql As String
Dim strConnection As String
Dim AppPath As String
Set cn = CreateObject("ADODB.Connection")
AppPath = Application.ActiveWorkbook.Path
strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & AppPath & "\Masterlist_Current_copy.accdb;"
Debug.Print strConnection
strSql = "SELECT [Neptune Number],[Description],[Manufacturer],[Manufacturer P/N] FROM [All Components];"
cn.Open strConnection
Set rs = cn.Execute(strSql)
MsgBox rs.Fields(0) & " rows in MyTable"
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
strConnection 值 =
Provider=Microsoft.Jet.OLEDB.4.0;数据 Source=C:\Users\bwall\Desktop\Excel 查询访问 测试\Masterlist_Current_copy.accdb;
【问题讨论】:
-
Microsoft.Jet.OLEDB.4.0 不支持 64 位操作系统。