Solved

4 table join in VB6 MS access

Posted on 2009-04-01
6
362 Views
Last Modified: 2012-05-06
I've been doing some looking and have found a number of topics that address my issue of joining 4 tables from an MS access db in VB6 but none work.  I still get a "too few parameters, 1 expected" error.  It's driving me crazy.  I've put the latest code below but it still gives me that error.  I feel I've been in a big circle.

Can anyone point out what I'm doing wrong?

Thanks,
bob...
======
P.S. I didn;t know how to go back and add to my previous question so I added a new one here.
strsql = "SELECT [Qualifications].*, [QualificationCourses].*, [Roster].*, [Arms].* "
        strsql = strsql & " FROM ((( Qualifications "
        strsql = strsql & " INNER JOIN QualificationCourses ON Qualifications.[CourseID] = QualificationCourses.[ID]) "
        strsql = strsql & " INNER JOIN Roster on Qualifications.[AgentID] = Roster.[ID])"
        strsql = strsql & " INNER JOIN Arms on Qualifications.[ArmsID] = Arms.[ID]) "
        strsql = strsql & " WHERE [Qualifications].License = '" & Trim(userAdminMOD.currentUser.license) & "'"

Open in new window

0
Comment
Question by:bob-hytekltd
6 Comments
 
LVL 41

Expert Comment

by:ralmada
ID: 24046085
try like this
strsql = "SELECT [Qualifications].*, [QualificationCourses].*, [Roster].*, [Arms].* "
strsql = strsql & " FROM Qualifications "
strsql = strsql & " INNER JOIN QualificationCourses ON Qualifications.[CourseID] = QualificationCourses.[ID] "
strsql = strsql & " INNER JOIN Roster on Qualifications.[AgentID] = Roster.[ID]"
strsql = strsql & " INNER JOIN Arms on Qualifications.[ArmsID] = Arms.[ID] "
strsql = strsql & " WHERE [Qualifications].License = '" & Trim(userAdminMOD.currentUser.license) & "'"

Open in new window

0
 
LVL 65

Accepted Solution

by:
rockiroads earned 200 total points
ID: 24046829
Cant see whats wrong with your sql. Maybe fault is elsewhere where you are using this sql. Might be worth posting how you run this sql. Also, did you step thru the code to find the exact line where it is failing?

FYI
Another way, one I prefer over inner joins is to simply list the tables then perform the joins using the where clause
eg

strsql = "SELECT Qualifications.*, QualificationCourses.*, Roster.*, Arms.* "
strsql = strsql & " FROM Qualifications, QualificationCourses, Roster, Arms "
strsql = strsql & " WHERE Qualifications.CourseID = QualificationCourses.ID "
strsql = strsql & " AND Qualifications.AgentID = Roster.ID"
strsql = strsql & " AND Qualifications.ArmsID = Arms.ID "
strsql = strsql & " AND Qualifications.License = '" & Trim(userAdminMOD.currentUser.license) & "'"


select columns
from
where table1.somefield = table2.somefield
and table1.somefield = table3.somefield

etc
0
 
LVL 28

Assisted Solution

by:TextReport
TextReport earned 200 total points
ID: 24047135
The error "too few parameters, 1 expected" implies you have a typo in one of the field names you have specified in the SQL so triple check each field in each table mentiones, specifically whatching out for spaces etc.

If you can take the result of the SQL into Access and paste into a queries SQL view and it will tell your there when you run it which field it doesn't like as it will as you for a value for it.

Cheers, Andrew
0
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 
LVL 41

Assisted Solution

by:ralmada
ralmada earned 100 total points
ID: 24050950
yeah, check your column names. there must be some misspelling in there.
0
 

Author Closing Comment

by:bob-hytekltd
ID: 31565976
Thanks to all that replied.  The problem was in the spelling of one of the field names (I've only been writing this code for 18 years) but the suggestion to not use INNER JOINS was brilliant and I learned a new way of creating SQL statements this way.  A LOT simplier!!!  Thanks again everyone.  Experts Exchange is great... and so are all of the experts who participate!!!
Best to All!
bob...
======
0
 

Author Comment

by:bob-hytekltd
ID: 24053879
In case you all didn't catch my humor... I misspelled "simpiler".
Best,
bob...
=======
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

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.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you find yourself in this situation “I have used SELECT DISTINCT but I’m getting duplicates” then I'm sorry to say you are using the wrong SQL technique as it only does one thing which is: produces whole rows that are unique. If the results you a…
This article describes how to use the timestamp of existing data in a database to allow Tableau to calculate the prior work day instead of relying on case statements or if statements to calculate the days of the week.
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…
In an interesting question (https://www.experts-exchange.com/questions/29008360/) here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…

807 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