【问题标题】:Too Few Parameters: Expected 1 - MSAcces Error 3061参数太少:预期 1 - MSAcces 错误 3061
【发布时间】:2017-08-03 17:53:31
【问题描述】:

我在 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]));

【问题讨论】:

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


【解决方案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

【讨论】:

  • ZDR 是查询中的列名。我尝试运行SELECT DISTINCT qryPLCARTASCompleto.ZDR FROM qryPLCARTASCompleto,它成功了。
  • 嘿! @Gustav 在运行您使用d.Querydefshightlighted 给我的解决方案后,我收到“错误数量的参数或无效的属性分配”。知道为什么会这样吗?
  • 没有。仔细检查@Andre 的链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多