参数太少:预期1 - MSAcces错误3061

时间:2017-08-03 17:53:32

标签: ms-access access-vba ms-access-2010

我在Access(VBA)中收到错误3061。你能帮我吗?它看起来像我正确地写了选择。我知道这个问题在这里被多次提出过,但我已经尝试了几乎所有给出的答案,但我无法解决我的问题。这就是我寻求帮助的原因。

Private Sub cmdPLCompleto_Click()
On Error GoTo cmdPLCompleto_Click_Err

    Dim d As DAO.Database
    Dim r As DAO.Recordset
    Dim strSQL2 As String

    Set d = CurrentDb()


        strSQL2 = "SELECT DISTINCT qryPLCARTASCompleto.ZDR FROM qryPLCARTASCompleto"

    Set r = d.OpenRecordset(strSQL2)

     If r.EOF Then
        MsgBox "The Recordset is empty."
    End If

更新

这是来自qryPLCARTASCompleto的SQL:

SELECT PLCARTAS.*, Mid([ICP ID],3,4) AS ZDR
FROM PLCARTAS
WHERE (((PLCARTAS.FECHA)=[Forms]![frmCartas]![txtFecha]));

1 个答案:

答案 0 :(得分:1)

ZDR不是字段名称,或者您的查询是指表单上的字段。

如果是最后一个,则必须在打开记录集之前指定该参数。

例如:

Dim d As DAO.Database
Dim q As DAO.Querydef
Dim r As DAO.Recordset
Dim strSQL2 As String

strSQL2 = "SELECT DISTINCT ZDR FROM qryPLCARTASCompleto"    

Set d = CurrentDb
Set q = d.Querydefs("", strSQL2)
q.Parameters(0).Value = [Forms]![frmCartas]![txtFecha]    

Set r = q.OpenRecordset()

If r.EOF Then
    MsgBox "The Recordset is empty."
End If