【发布时间】:2014-04-06 17:52:35
【问题描述】:
我收到访问运行时错误:
'3061':参数太少。预计 1
尝试从带有子报表的表单运行某些 VBA 代码时。
我已经尝试在 SQL 查询中使用变量 (CurAssetID) 以及直接链接 (Forms!Details!ID),但两者都会导致相同的错误。我放入 MsgBox 只是为了验证它是否获得了正确的值。
如果我用一个值 (HAVING (((Assignments.AssetID)=1));") 替换 SQL 查询的最后一部分,它可以正常工作。这是怎么回事,我该如何解决?
Private Sub LineSelect_Click()
CurAssetID = Forms!Details!ID
Status = MsgBox(CurAssetID, vbOKOnly)
Dim LastAssignment As DAO.Recordset
LastAssignmentSQL = "SELECT Assignments.AssetID, Last(Assignments.LocationID) AS LastLocationID FROM Assignments GROUP BY Assignments.AssetID HAVING (((Assignments.AssetID)=CurAssetID));"
Set LastAssignment = CurrentDb.OpenRecordset(LastAssignmentSQL, dbOpenDynaset, dbSeeChanges)
【问题讨论】:
-
你的 SQL 看不到你的 VBA 参数。