将 Excel 连接到 Access

Posted

技术标签:

【中文标题】将 Excel 连接到 Access【英文标题】:Connecting Excel to Access 【发布时间】:2012-05-30 11:16:40 【问题描述】:

我正在尝试在具有以下查询的数据库上连接 excel。

SELECT * FROM Products WHERE Order = [Enter Order]

但 excel 似乎无法找到此查询。它只显示实际表和其他不使用参数的查询。

有没有办法在使用参数的查询上连接 excel?我正在使用 MS-Excel 2007。

【问题讨论】:

"参数查询必须在 Microsoft Query 中创建。" office.microsoft.com/en-us/excel-help/… 和 office.microsoft.com/en-us/excel-help/…。如果不适合,您愿意使用多少 VBA? 如果不适合,您愿意使用多少 VBA? - 只要它有效。 您的建议奏效了。只有一个问题,我使用的数据库是具有用户级安全性的 Access 2003 数据库。它需要一个工作组文件来打开数据库,但似乎无法让它在 Microsoft Query 上运行。 我终于让它工作了。非常感谢!!!但是,如果您能告诉我如何在 VBA 上执行此操作,我将不胜感激!!! 好吧,玩得开心。如果您需要使用 Access 中的参数查询,而不是 MS Query,您可以随时使用 VBA / ADODB。 【参考方案1】:

一些笔记。

“必须在 Microsoft Query 中创建参数查询。”

Customize a parameter queryUse Microsoft Query to retrieve external data

ADODB 和 VBA

''Ref: Microsoft ActiveX Data Objects x.x Library
Dim cmd As New ADODB.Command
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim prm As ADODB.Parameter
Dim strConn As String

strConn = "Provider = Microsoft.ACE.OLEDB.12.0;" _
        & "Data Source=z:\docs\test.accdb"

conn.Open strConn

cmd.ActiveConnection = conn
cmd.CommandText = "Query4"
cmd.CommandType = adCmdStoredProc
Set prm = cmd.CreateParameter("EnterText", adVarWChar, adParamInput, 50)
cmd.Parameters.Append prm
cmd.Parameters("EnterText").Value = ActiveWorkbook.Sheets("Sheet5").[A2]

'Execute the Stored Procedure
Set rs = cmd.Execute
ActiveWorkbook.Sheets("Sheet8").Cells(2, 1).CopyFromRecordset rs
'Close the connection
conn.Close

【讨论】:

以上是关于将 Excel 连接到 Access的主要内容,如果未能解决你的问题,请参考以下文章

尽管我已经安装了驱动程序,但无法将 Excel 连接到 Oracle。 (使用 Excel 的 PowerQuery)

通过ODBC将Excel连接到PostgreSQL

使用 VBA 将 Excel 表连接到 SQL Server

如何使用 ODBC 将 Excel 连接到我的域中的在线 Mysql 数据库?

通过 Power Query 将 Excel 连接到 Smartsheet

GlobalMapper精品教程023:Excel数据通过相同字段连接到属性表中(气温降水连接到气象台站)