Results 1 to 5 of 5
  1. #1
    GeoGlick is offline Novice
    Windows 10 Access 2016
    Join Date
    Aug 2018
    Posts
    2

    Error 3078 - engine cannot find query FOR a query that actually exists

    I'm trying to tweak my Access app to improve performance (over a very slow network) so I'm comparing processing time between ADODB and DAO.OpenRecordSet methods of retrieving my data. The ADODB method works fine:

    jsSQL = "SELECT qDSSubjCatAct.Subject_PK"
    jsSQL = jsSQL & ", qDSSubjCatAct.Subject"
    jsSQL = jsSQL & ", qDSSubjCatAct.SubCategories_PK"
    jsSQL = jsSQL & ", qDSSubjCatAct.Categories"
    jsSQL = jsSQL & ", qDSSubjCatAct.Action_PK"
    jsSQL = jsSQL & ", qDSSubjCatAct.Action"
    jsSQL = jsSQL & ", qDSSubjCatAct.FundingType_FK"
    jsSQL = jsSQL & ", qDSSubjCatAct.IsEquipmentRequired"
    jsSQL = jsSQL & ", qDSSubjCatAct.CallType_FK"
    jsSQL = jsSQL & ", qDSSubjCatAct.CatFundTypeFK"
    jsSQL = jsSQL & ", qDSSubjCatAct.CatIsEquipReqd"
    jsSQL = jsSQL & ", qDSSubjCatAct.ShippingAddressRequired"
    jsSQL = jsSQL & ", qDSSubjCatAct.AutoGenData_FK"
    jsSQL = jsSQL & " FROM qDSSubjCatAct;"
    Dim joRS As ADODB.Recordset
    Set joRS = New ADODB.Recordset


    With joRS
    .ActiveConnection = goADOConnect '- Global ADODB.Connection object
    .CursorType = adOpenForwardOnly
    .LockType = adLockReadOnly
    .CursorLocation = adUseClient
    .Open jsSQL
    Do While Not .EOF
    jsRecord = .Fields(0)
    jsRecord = jsRecord & ";" & .Fields(1) '- much more processing here but it's irrelevant to the problem
    .MoveNext
    Loop
    .Close
    End With

    Now I tried the same thing using DAO (same database, same module, just a different Sub) and I get Error 3078 for the same query at OpenRecordSet:

    Dim joRS
    jsSQL = <exactly same as above>
    Set joRS = g_DAODB.OpenRecordset(jsSQL)

    The SQL for qDSSubjCatAct is:

    SELECT tblSubject.Subject_PK, tblSubject.Subject, tblSubCategories.SubCategories_PK, tblSubCategories.Categories, tblAction.Action_PK, tblAction.Action, tblSubject.FundingType_FK, tblSubject.IsEquipmentRequired, tblSubject.CallType_FK, tblSubCategories.FundingType_FK AS CatFundTypeFK, tblSubCategories.IsEquipmentRequired AS CatIsEquipReqd, tblAction.ShippingAddressRequired, tblAction.AutoGenData_FK
    FROM tblAction INNER JOIN (tblSubCategories RIGHT JOIN (tblSubject INNER JOIN tblSubjCatActXref ON tblSubject.Subject_PK = tblSubjCatActXref.Subject_FK) ON tblSubCategories.SubCategories_PK = tblSubjCatActXref.SubCategories_FK) ON tblAction.Action_PK = tblSubjCatActXref.Action_FK
    ORDER BY tblSubject.Subject, tblSubCategories.Categories, tblAction.Action;

    I know my g_DAODB object works because I retrieve data using a table just before I execute for qDSSubjCatAct. Must be an issue with DAO and possibly RIGHT JOINs? I need the RIGHT JOIN because not every tblSubject will have a tblSubCategories record. I'm stumped as to why it doesn't work for DAO.

    Thank you for any suggestions/advice/WAGs.

    Geoff
    Last edited by GeoGlick; 08-21-2018 at 07:34 PM. Reason: Forgot info

  2. #2
    June7's Avatar
    June7 is offline VIP
    Windows 10 Access 2010 32bit
    Join Date
    May 2011
    Location
    The Great Land
    Posts
    52,930
    Set joRS = CurrentDb.OpenRecordset(jsSQL)1
    Last edited by June7; 08-21-2018 at 10:28 PM.
    How to attach file: http://www.accessforums.net/showthread.php?t=70301 To provide db: copy, remove confidential data, run compact & repair, zip w/Windows Compression.

  3. #3
    ssanfu is offline Master of Nothing
    Windows 7 32bit Access 2010 32bit
    Join Date
    Sep 2010
    Location
    Anchorage, Alaska, USA
    Posts
    9,664
    Maybe try

    Code:
    Dim joRS As DAO.Recordset   '<<< missing type
    Dim jsSQL As String
    
        jsSQL = "SELECT qDSSubjCatAct.Subject_PK"
        jsSQL = jsSQL & ", qDSSubjCatAct.Subject"
        jsSQL = jsSQL & ", qDSSubjCatAct.SubCategories_PK"
        jsSQL = jsSQL & ", qDSSubjCatAct.Categories"
        jsSQL = jsSQL & ", qDSSubjCatAct.Action_PK"
        jsSQL = jsSQL & ", qDSSubjCatAct.Action"
        jsSQL = jsSQL & ", qDSSubjCatAct.FundingType_FK"
        jsSQL = jsSQL & ", qDSSubjCatAct.IsEquipmentRequired"
        jsSQL = jsSQL & ", qDSSubjCatAct.CallType_FK"
        jsSQL = jsSQL & ", qDSSubjCatAct.CatFundTypeFK"
        jsSQL = jsSQL & ", qDSSubjCatAct.CatIsEquipReqd"
        jsSQL = jsSQL & ", qDSSubjCatAct.ShippingAddressRequired"
        jsSQL = jsSQL & ", qDSSubjCatAct.AutoGenData_FK"
        jsSQL = jsSQL & " FROM qDSSubjCatAct;"
    
       ' Set joRS = g_DAODB.OpenRecordset(jsSQL)
        Set joRS = Currentdb.OpenRecordset(jsSQL)     '<<< use CurrentDb for testing

  4. #4
    GeoGlick is offline Novice
    Windows 10 Access 2016
    Join Date
    Aug 2018
    Posts
    2
    Quote Originally Posted by ssanfu View Post
    Maybe try

    Code:
    Dim joRS As DAO.Recordset   '<<< missing type
    Dim jsSQL As String
    
        jsSQL = "SELECT qDSSubjCatAct.Subject_PK"
        jsSQL = jsSQL & ", qDSSubjCatAct.Subject"
        jsSQL = jsSQL & ", qDSSubjCatAct.SubCategories_PK"
        jsSQL = jsSQL & ", qDSSubjCatAct.Categories"
        jsSQL = jsSQL & ", qDSSubjCatAct.Action_PK"
        jsSQL = jsSQL & ", qDSSubjCatAct.Action"
        jsSQL = jsSQL & ", qDSSubjCatAct.FundingType_FK"
        jsSQL = jsSQL & ", qDSSubjCatAct.IsEquipmentRequired"
        jsSQL = jsSQL & ", qDSSubjCatAct.CallType_FK"
        jsSQL = jsSQL & ", qDSSubjCatAct.CatFundTypeFK"
        jsSQL = jsSQL & ", qDSSubjCatAct.CatIsEquipReqd"
        jsSQL = jsSQL & ", qDSSubjCatAct.ShippingAddressRequired"
        jsSQL = jsSQL & ", qDSSubjCatAct.AutoGenData_FK"
        jsSQL = jsSQL & " FROM qDSSubjCatAct;"
    
       ' Set joRS = g_DAODB.OpenRecordset(jsSQL)
        Set joRS = Currentdb.OpenRecordset(jsSQL)     '<<< use CurrentDb for testing
    Thank you for your responses but I just realized my error. I'm using the OpenDatabase method on my backend database to create g_DAODB (to create a persistent connection). Like most Access programmers do, my backend database consists of only tables and the frontend database file contains the queries (based on linked tables). Doh. Access can't find the query because it does not exist on the backend database.
    Last edited by GeoGlick; 08-22-2018 at 01:48 PM. Reason: realized the problem

  5. #5
    June7's Avatar
    June7 is offline VIP
    Windows 10 Access 2010 32bit
    Join Date
    May 2011
    Location
    The Great Land
    Posts
    52,930
    Post the query.
    How to attach file: http://www.accessforums.net/showthread.php?t=70301 To provide db: copy, remove confidential data, run compact & repair, zip w/Windows Compression.

Please reply to this thread with any new information or opinions.

Similar Threads

  1. Replies: 13
    Last Post: 09-12-2016, 09:13 AM
  2. Replies: 6
    Last Post: 07-22-2014, 06:34 AM
  3. Replies: 6
    Last Post: 11-12-2012, 11:01 PM
  4. Run Time Error 3078
    By jimjaix in forum Access
    Replies: 2
    Last Post: 02-02-2010, 12:17 PM
  5. Replies: 1
    Last Post: 11-30-2009, 05:05 AM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Other Forums: Microsoft Office Forums