Runtime error '3061': Too few Parameters. Expected 3

[qryEditNewSummary] is a Query, If change the [qryEditNewSummary] to a "Table" , It work ok, no error. but if change to any Query, it will have runtime error 3601.
I have check the query name, and field name, everything is ok.

What 's wrong with query in dao??
Private Sub cmdRandom_Click()   
 Dim dbs As Database
    Dim rst As Recordset
        Set dbs = CurrentDb
        strSQL = "Select Total From [qryEditNewSummary]"
        Set rst = dbs.OpenRecordset(strSQL, dbOpenDynaset)
    MsgBox rst!Total
End Sub

Open in new window

UncochenAsked:
Who is Participating?
 
mbizupCommented:
Like Jeff suggested, the problem may be in qryEditNewSummary.

A very common cause of this error is Form References in a query.

For example, if your query looks like this:
SELECT *
FROM YourTable
WHERE YourField = Forms!YourForm!YourTextboxName

This query will work perfectly when run from the database window. However, the reference to the form control will cause the "Too Few Parameters" Error if that same query is called from VBA.


To resolve this, all form references must be evaluated seperately from the query.
 
To help you further with this, we would need to see the SQL for  qryEditNewSummary.
0
 
numberkruncherCommented:
Have you tried the following:
Private Sub cmdRandom_Click()   
 Dim dbs As Database
    Dim rst As Recordset
        Set dbs = CurrentDb
' Without square brackets around qryEditNewSummary
        strSQL = "Select Total From qryEditNewSummary"
        Set rst = dbs.OpenRecordset(strSQL, dbOpenDynaset)
    MsgBox rst!Total
End Sub

Open in new window

0
 
numberkruncherCommented:
In fact you probably also need to specify where 'Total' comes from.
Private Sub cmdRandom_Click()   
 Dim dbs As Database
    Dim rst As Recordset
        Set dbs = CurrentDb
        strSQL = "Select qryEditNewSummary.Total From qryEditNewSummary"
        Set rst = dbs.OpenRecordset(strSQL, dbOpenDynaset)
    MsgBox rst!Total
End Sub

Open in new window

0
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
numberkruncherCommented:
This error can also occur when the query requires additional input parameters. I believe that you can specify those using something like the following:
dbs.Parameters![SpecialParm] = "SomeValue"
dbs.Parameters![AnotherParm] = "SomeValue"

Open in new window

0
 
Jeffrey CoachmanMIS LiasonCommented:
Uncochen,

Can you post the SQL for:
qryEditNewSummary
... so we don't have to guess at what the problem is?

JeffCoachman
0
 
UncochenAuthor Commented:
I try to  make a new access file and run, it work Ok!!!
the ado and query no this problem. I don't kown what reason the old file will happen the problem??? I did try to greate a new query in the old file, still problem!!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.