运行时错误'3061'。参数太少。预期为3

时间:2018-12-24 20:31:28

标签: excel vba ms-access

我正在尝试使用VBA将数据从访问权限拉入excel。我可以将此脚本用于其他查询,但是在进行此特定查询时,出现此参数错误。休息发生在这里:

Set rs = A.CurrentDb().QueryDefs("Query1").OpenRecordset()

Sub test()

Dim ws As Worksheet
Dim A As Object
Dim rs As Object

Application.DisplayAlerts = False

Set A = CreateObject("Access.Application")
Set ws = ThisWorkbook.Sheets("Sheet1")

A.Visible = True
A.OpenCurrentDatabase ("Y:\UW\B\201811.accdb")
A.DoCmd.OpenQuery ("Query1")

Set rs = A.CurrentDb().QueryDefs("Query1").OpenRecordset()

If Not rs.EOF Then
ws.Range("A2").CopyFromRecordset rs
End If

For iCols = 0 To rs.Fields.Count - 1
Worksheets("Sheet1").Cells(1, iCols + 1).Value = rs.Fields(iCols).Name
Next
rs.Close

 Application.DisplayAlerts = True

End Sub

这是查询1:

SELECT W.MED, W.RX, W.HSAHRA, W.ACR, W.ML, Sum(W.MBRS) AS             
SumOfMBRS, Sum(W.PREM) AS SumOfPREM, Sum(W.CLMSTAT) AS SumOfCLMSTAT
FROM W
WHERE (((W.[DATE]) Between [Enter Start Date:] And [Enter End Date:]) AND 
((W.[ST])=[Enter State:]))
GROUP BY W.MED, W.RX, W.HSAHRA, W.ACR, W.ML
ORDER BY W.MED, W.RX, W.HSAHRA, W.ACR, W.ML;

此外,如何将query1转换为sqlstring?

1 个答案:

答案 0 :(得分:2)

用户应在表单的控件中输入标准,然后将这些控件作为参数输入:

chat.id

或者,在您的情况下,请参考工作表的单元格。如果要使用弹出窗口进行用户输入,则必须使用InputBox()函数。

相关问题