• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 286
  • Last Modified:

Error 3061: Too Few Parameters. Expected 2

Hi all,

I am struggling with this error.

I have some simple test code and it works fine:

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim strSQL As String
    Dim SpectrumID As String
    Dim idLoadGroup As String
   
    Set db = OpenDatabase("D:\Dev\CIRCLY50 and APSDS50 Common Files\data\aaa For database design etc\loads.mdb")   ' Open database.
   
    SpectrumID = "2000"
    idLoadGroup = "Kalm37012"
   
    strSQL = "Select * from TrafficMixComponents Where ((TrafficSpectrumID='" & SpectrumID & "') And (idLoadGroup='" & idLoadGroup & "')) ORDER BY sglTrafficMixLoadGroupLoadMin"
   
    Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
    MsgBox rs.RecordCount

But when I use the same code on the same database in a more sophisticated application, I get the error.
So I believe the syntax of the SQL query is OK.
Could it be something more subtle?

Regards,
Leigh
0
LeighWardle
Asked:
LeighWardle
  • 5
  • 5
  • 2
2 Solutions
 
flavoCommented:
that error occurs if you dont have the right " " around strings and # # around date/times

In the above, it looks like both your ID's are text fields.  is this right??

If you post the strSQL of the ones that dont work, with the table data types for the fields,  can fix them up...

Dave
0
 
flavoCommented:
sorry

>> In the above, it looks like both your ID's are text fields.

In the above, it looks like both your fields are text fields.

Dave
0
 
LeighWardleAuthor Commented:
Thanks, Dave, for your response.

Yes, both fields are text fields.

Leigh
0
Cloud Class® Course: C++ 11 Fundamentals

This course will introduce you to C++ 11 and teach you about syntax fundamentals.

 
LeighWardleAuthor Commented:
Here is a sample of the SQL query that gives the error:

Select * from TrafficMixComponents Where ((TrafficSpectrumID='2000') And (idLoadGroup='HysterH40C')) ORDER BY sglTrafficMixLoadGroupLoadMin

Leigh
0
 
flavoCommented:
It looks fine

Try copy and paste it into the query builder and see if that works

Dave
0
 
LeighWardleAuthor Commented:
I am using Access 1.1 format databases, so couldn't use query builder.
But it works fine in Access 1.1 SQL window.

Leigh
0
 
flavoCommented:
1.1 geezz.... i cant even remember it

not sure then... in DAO 3.6 w/ Access 97 its sweet.
0
 
LeighWardleAuthor Commented:
As a test, I created a sub that consists of the code posted above.

I call the sub immediately before the code that gives the error, and the sub works fine.  But then my  next statement, i.e.

       Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)

bombs with the error.
So that's why I think it is something more subtle than just the SQL syntax.
0
 
leonstrykerCommented:
Try very simple syntax and see if that works:

Select * from TrafficMixComponents

If this works then you have a syntax problem, if it doesn't then it is something else.

Leon
0
 
LeighWardleAuthor Commented:
Hi all,

My problem has been solved, the error was due to me using a database that had an out-of-date version of my table.  It didn't have all the fields that were referenced in the SQL query.

Everything worked OK when I used the correct version of my database and table.

Thanks for your help.
I don't know how to allocate the points.

Regards,

Leigh
0
 
flavoCommented:
Leigh,

Glad its all working for you now..

>>I  don't know how to allocate the points.
not too fussed..

Dave :-)

0
 
leonstrykerCommented:
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.

Join & Write a Comment

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 5
  • 5
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now