如何将参数发送到 Microsoft Access 查询,以便我可以将访问参数查询导入 Excel?

2023-12-02

我需要将具有弹出输入参数的 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 使用一个非常简单的查询设置查询参数,它适用于以下调整。

  1. 查询对象必须在适当的字段下具有 PARAMETERS 子句和参数

  2. use #日期条件的分隔符#12/31/2018#

  3. Set rst = qdf行不使用查询名称作为参数,变量qdf提供的名称如此正确Set rst = qdf.OpenRecordset()它将使用默认的记录集类型。

  4. 对于早期绑定,选择Microsoft Office 14.0 Access Database Engine Object Library在 VBA 编辑器中,至少对于更新版本的 Excel

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将参数发送到 Microsoft Access 查询,以便我可以将访问参数查询导入 Excel? 的相关文章

随机推荐