2017-08-03 124 views
0

我在Access(VBA)中收到錯誤3061。你能幫我嗎?它看起來像我正確地寫了選擇。我知道這個問題在這裏被問過很多次,但我已經嘗試了幾乎所有的答案,但我無法解決我的問題。這就是我尋求幫助的原因。太少參數:預期1 - MSAcces錯誤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 

UPDATE

這是在SQL從qryPLCARTASCompleto

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

請添加qryPLCARTASCompleto的完整的SQL你的問題。 – Andre

+0

已加入@Andre –

+1

[太少參數預期1,記錄集問題](https://stackoverflow.com/questions/32118072/too-few-parameters-expected-1-recordset-issue) – Andre

回答

1

要麼就業法是不是字段名,或者您的查詢是指一個字段窗體上。

如果是最後一個,則必須在打開記錄集之前指定該參數。

例如:

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 
+0

ZDR is查詢中的列名稱。我試着運行'SELECT DISTINCT qryPLCARTASCompleto.ZDR來自qryPLCARTASCompleto',它工作。 –

+0

查看編輯答案。 – Gustav

+0

嘿! @Gustav在運行您以'd.Querydefs'爲高亮顯示的解決方案後,我收到了「錯誤的參數數量或無效的屬性賦值 」。任何想法爲什麼它在打架? –

相關問題