我需要将具有弹出输入参数的 Microsoft Access 查询导入到 Excel 中。我尝试了下面的代码,但它不起作用。我收到错误 93,告诉我未设置对象或对象变量。
我希望能够引用 Excel 中包含当前和上个月值的两个单元格,然后将这些值作为输入发送到访问查询,但现在我在 VBA 中输入它们以保持简单。
任何帮助将不胜感激!
谢谢你!
Sub Acess_Connection()
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim qdf As DAO.QueryDef
Dim i As Long
Dim wsh As Worksheet
Set dbs = DBEngine.OpenDatabase("filepath")
Set qdf = dbs.QueryDefs("parameter_query")
qdf.Parameters("Date_PreviousMonth") = "31.12.2018"
qdf.Parameters("Date_CurrentMonth") = "31.01.2019"
Set rst = qdf.OpenRecordset("parameter_query")
Set wsh = Worksheets("Sheet1")
For i = 0 To rst.Fields.Count - 1
wsh.Cells(1, i + 1).Value = rst.Fields(i).Name
Next
wsh.Range("A1").Resize(ColumnSize:=rst.Fields.Count).Font.Bold = True
wsh.Range("A2").CopyFromRecordset rst
rst.Close
Set rst = Nothing
dbs.Close
Set dbs = Nothing
End Sub
我测试了通过 VBA 使用一个非常简单的查询设置查询参数,它适用于以下调整。
查询对象必须在适当的字段下具有 PARAMETERS 子句和参数
use #
日期条件的分隔符#12/31/2018#
Set rst = qdf
行不使用查询名称作为参数,变量qdf
提供的名称如此正确Set rst = qdf.OpenRecordset()
它将使用默认的记录集类型。
对于早期绑定,选择Microsoft Office 14.0 Access Database Engine Object Library
在 VBA 编辑器中,至少对于更新版本的 Excel
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)