访问权限:“参数太少”。
问题描述:
我知道这是一个多余的问题,但无法找到与我的类似的场景。访问权限:“参数太少”。
我有一个存储的查询,它在执行时从打开的窗体上的过滤器中选择值并显示结果。所有作品。
下面是该查询是如何调用:
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "qry"
Dim rsReport As New ADODB.Recordset
rsReport.CursorType = adOpenKeyset
rsReport.CursorLocation = adUseClient
rsReport.Open cmd
我试图使用从VBA相同的查询,以创建可下载或通过电子邮件发送的Excel文件,我得到一个“太少参数”错误现在(当表单仍然打开时)。任何人都可以让我朝着正确的方向发展,请问为什么会这样?
答
使用VBA执行查询时,不能引用打开的表单。您需要明确说明所有参数。
如果您使用DoCmd.RunQuery
执行查询,则可以使用DoCmd.SetParameter
来设置参数。
如果您使用QueryDef.Execute
执行查询,则可以使用QueryDef.Parameters
集合来设置参数。
如果您使用的是ADODB.Command
执行查询,您可以通过附加参数为Command.Parameters
集合,以下列方式设置参数:
Command.Parameters.Append Command.CreateParameter ("MyParameterName", adInteger, adParamInput)
其中adInteger
是类型。之后,您仍然需要通过设置参数Command.Parameters("MyParameterName").Value = MyValue
参见this question以获取有关ADODB参数的信息。他们有点棘手。
执行查询前需要填写所有参数。
我可以理解你有一个问题,但我们不能没有任何代码帮助。 – *er
@*er等我会更新它,谢谢 – Babar