Solved

4 table join in VB6 MS access

Posted on 2009-04-01
6
368 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
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
Guide to Performance: Optimization & Monitoring

Nowadays, monitoring is a mixture of tools, systems, and codes—making it a very complex process. And with this complexity, comes variables for failure. Get DZone’s new Guide to Performance to learn how to proactively find these variables and solve them before a disruption occurs.

 
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: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

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

Suggested Solutions

In database programming, custom sort order seems to be necessary quite often, at least in my experience and time here at EE. Within the realm of custom sorting is the sorting of numbers and text independently (i.e., treating the numbers as number…
Composite queries are used to retrieve the results from joining multiple queries after applying any filters. UNION, INTERSECT, MINUS, and UNION ALL are some of the operators used to get certain desired results.​
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …
Suggested Courses

732 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