Solved

Error 3061: Too Few Parameters. Expected 2

Posted on 2004-08-23
12
265 Views
Last Modified: 2013-12-25
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
Comment
Question by:LeighWardle
  • 5
  • 5
  • 2
12 Comments
 
LVL 34

Expert Comment

by:flavo
Comment Utility
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
 
LVL 34

Expert Comment

by:flavo
Comment Utility
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
 
LVL 1

Author Comment

by:LeighWardle
Comment Utility
Thanks, Dave, for your response.

Yes, both fields are text fields.

Leigh
0
 
LVL 1

Author Comment

by:LeighWardle
Comment Utility
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
 
LVL 34

Accepted Solution

by:
flavo earned 200 total points
Comment Utility
It looks fine

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

Dave
0
 
LVL 1

Author Comment

by:LeighWardle
Comment Utility
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
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

 
LVL 34

Expert Comment

by:flavo
Comment Utility
1.1 geezz.... i cant even remember it

not sure then... in DAO 3.6 w/ Access 97 its sweet.
0
 
LVL 1

Author Comment

by:LeighWardle
Comment Utility
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
 
LVL 29

Assisted Solution

by:leonstryker
leonstryker earned 50 total points
Comment Utility
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
 
LVL 1

Author Comment

by:LeighWardle
Comment Utility
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
 
LVL 34

Expert Comment

by:flavo
Comment Utility
Leigh,

Glad its all working for you now..

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

Dave :-)

0
 
LVL 29

Expert Comment

by:leonstryker
Comment Utility
0

Featured Post

Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

Join & Write a Comment

Introduction While answering a recent question about filtering a custom class collection, I realized that this could be accomplished with very little code by using the ScriptControl (SC) library.  This article will introduce you to the SC library a…
When designing a form there are several BorderStyles to choose from, all of which can be classified as either 'Fixed' or 'Sizable' and I'd guess that 'Fixed Single' or one of the other fixed types is the most popular choice. I assume it's the most p…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now