Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 563
  • Last Modified:

How to Simulate an Unmatched Query in a Microsoft Access 2013 Web App

I have a situation in one of Microsoft Access 2013 Web Applications in which I need to simulate an unmatched query (to return the records from table A that do not exist in table B). Since this can't actually be done with a query on this platform I was wondering if anyone has a solution to do it using ForEachRecord loops in a data macro.  Thanks for your help!
0
penlandt
Asked:
penlandt
  • 7
  • 5
1 Solution
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
Are you saying you cannot create an Outer Join with two tables to do this in the Web App side of A2013 ?
0
 
penlandtAuthor Commented:
Thanks for your quick reply.  As far as I know outer joins are not supported in Access 2013 Web Apps (though they are of course supported in desktop apps).  Additionally, it is my understanding that nested SELECT statements are not supported in Web Apps.  This leaves me unable to figure out how to perform an unmatched query in any way other than to loop through the tables and identify which rows exist in table A that do not exist in table B.  I know that I could then insert the resulting records into a temporary table and use that as the result of my simulated unmatched query, however I'm wondering if there's a more elegant way to accomplish this within the constraints of the Web App platform.
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
Let me try it when I get home tonight ...

But ... the image below is a query from Jeff Conrad's Access 2013 Inside Out book ... and his BOSS app, which I have (.accdw) on this system. So ....


outer join
0
Get your Conversational Ransomware Defense e‑book

This e-book gives you an insight into the ransomware threat and reviews the fundamentals of top-notch ransomware preparedness and recovery. To help you protect yourself and your organization. The initial infection may be inevitable, so the best protection is to be fully prepared.

 
penlandtAuthor Commented:
Thanks again.  That example looks like an inner join to me though.  Am I missing something in the example?
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
OOP ... gezze ...  trust me, it's been a bad hair day ALL day ....
standby
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
OK ... I was able to create an Other Join, save and run the query.

1
2
0
 
penlandtAuthor Commented:
I appreciate the help!  If I'm reading that query correctly, it is including all of the records in tblSchedule - including records that exist in tblEmployees.  That's not exactly what I'm looking for.  Using your example I would want to return only the records in tblSchedule that have NO MATCHING RECORD in tblEmployees (joined on the EmployeeID of course).  Unfortunately this query won't do that.

I am relatively certain that the type of procedure I'm trying to do cannot be done via a query in a Web Application.  My understanding is that it can only be done via a data macro using a ForEachRecord loop on TableA and then a LookupRecord on TableB to find out whether there it contains a matching record, retaining the record from TableA if there is no matching record in TableB.  That's easy enough to do however I don't know how/where to store the results other than to put them in in a Temporary table.  As I said, that's not a very elegant way to do this but it will work.  I was hoping someone here had done this before and had worked out a better way.  Thanks again.
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
I just showed you can create an Outer Join - which is what you need. Except ... in the Join Properties screen shot, I forgot to select # 2 before I did the screenshot. So, Outer Joins are supported.

if you were to add a criteria of Is Null for the EmployeeIDFK in tblSchedule, then that would do ... for this example - what you are looking for.  

"to return the records from table A that do not exist in table B"
A=Table Employees and B=Table Schedule - in my screenshot example.
0
 
penlandtAuthor Commented:
I see - part of the problem was that I can't see the criteria in your screenshots so I wasn't aware that you were entering anything there.  I tried it as you described and it does work.  Thank you very much for your help.
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
oops again, that screenshot was cut off ... sorry about that.
Good ... you got it !

I HIGHLY recommend Jeff Conrad's book Access 2013 Inside Out (Amazon). You can download several ready to use  Web Apps ... and see how things are done. VERY cool.

mx
0
 
penlandtAuthor Commented:
Thanks again.  I'll definitely get it.
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
I have personally met and talked with Jeff several times at the MVP Summit in Redmond (last week in fact) and his passion for Access and Web Apps is second to none.
0

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.

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