【发布时间】:2015-06-09 06:53:42
【问题描述】:
我正在尝试从 Access Query 设计器运行查询,该设计器在 Access 中运行良好,但是当我尝试将语句带到 VBA 时,它给了我以下错误消息:
运行时错误参数太少。预计2。
我已经在即时窗口中打印了该语句并在 Access 中运行它,它正在运行而无需询问参数。我做了一些网络搜索,普遍的共识似乎是在 VBA 中声明它,包括参数 -
Private Sub CmdAppend_Click()
Dim db1 As Database
Dim mystr As Recordset2
Dim UserName As String
Dim UpdateSQL As String
Dim SelectIDSQL As String
Dim checkstr As String
If Validate_Data = True Then
UserName = Environ$("Username")
SelectIDSQL = "Select Distinct ChecklistResults.[StaffID]" _
& " From ChecklistResults" _
& " Where (((ChecklistResults.[ClientID])=[Forms]![TeamLeader]![ComClientNotFin])" _
& " And ((ChecklistResults.[DateofChecklist])=[Forms]![TeamLeader]![ComDateSelect])" _
& " AND ((ChecklistResults.[ManagerID]) Is Null));"
Debug.Print SelectIDSQL
Set db1 = CurrentDb
Set mystr = db1.OpenRecordset(SelectIDSQL)
checkstr = mystr!StaffID
If checkstr <> UserName Then
当我尝试将mystr 设置为记录集时,我收到了上述错误消息。我想我可以按照以下格式获取记录集,但是有没有办法让上述 SQL 语句/分配工作?
Dim qdf1 As DAO.QueryDef
Set qdf1 = db1.QueryDefs("Get_StaffID")
qdf1.Parameters(0) = [Forms]![TeamLeader]![ComClientNotFin]
qdf1.Parameters(1) = [Forms]![TeamLeader]![ComDateSelect]
Set rst1 = qdf1.OpenRecordset(dbOpenDynaset)
【问题讨论】: