Results 1 to 3 of 3
  1. #1
    rb608 is offline Novice
    Windows XP Access 2010 32bit
    Join Date
    Apr 2012
    Posts
    4

    CreateQueryDef doesn't create query def

    I'm getting back into minor database design after a long layoff, and I've forgotten too much. Alas, I'm stumped on this one.

    I'm using code behind a command button on a form to create a query definition from which I'm printing a report. The query definition is based on which form controls are utilized as selection criteria. If a control on the selection form is blank, it is omitted from the query; if not, it is included. I've included the code below.

    My issue is that the code seems to create the SELECT string just fine, but it does not create the query. (To verify, I'm transferring the strSelect string to a text box on the form for review.) I've also copied that string and pasted it into a blank query, and it works fine that way.

    To clarify, the code as written below DOES create the query qry_ReportQuery; but it creates a blank query with no fields. The query is created, but there is no SQL string assigned.

    What am I missing here? Also, if there's a simpler way to do this, I'm all ears.

    FWIW - If all of the selection fields are populated, the SELECT string becomes:

    SELECT tbl_Facilities.FacilityID As FacilityID, tbl_Facilities.FacName As FacName, tbl_Facilities.DistrID, tbl_Facilities.FacType, tbl_Facilities.[Address 1] As Address1, tbl_Facilities.[Address 2] as Address2, tbl_Facilities.City as City, tbl_Facilities.State as State, tbl_Facilities.[Zip Code] as Zipcode, tbl_Facilities.County as County FROM tbl_Facilities INNER JOIN tbl_Buildings ON tbl_Facilities.FacilityID = tbl_Buildings.FacilityID GROUP BY tbl_Facilities.FacilityID, tbl_Facilities.FacName, tbl_Facilities.DistrID, tbl_Facilities.FacType, tbl_Facilities.[Address 1], tbl_Facilities.[Address 2], tbl_Facilities.City, tbl_Facilities.State, tbl_Facilities.[Zip Code], tbl_Facilities.County, tbl_Buildings.BldgType HAVING (tbl_Facilities.DistrID=[Forms]![frm_ReportMenu]![txtchkSHA1] Or tbl_Facilities.DistrID=[Forms]![frm_ReportMenu]![txtchkSHA2] Or tbl_Facilities.DistrID=[Forms]![frm_ReportMenu]![txtchkSHA3] Or tbl_Facilities.DistrID=[Forms]![frm_ReportMenu]![txtchkSHA4] Or tbl_Facilities.DistrID=[Forms]![frm_ReportMenu]![txtchkSHA5] Or tbl_Facilities.DistrID=[Forms]![frm_ReportMenu]![txtchkSHA6] Or tbl_Facilities.DistrID=[Forms]![frm_ReportMenu]![txtchkSHA7]) AND tbl_Facilities.County =[Forms]![frm_ReportMenu]![txtCounty] AND tbl_Facilities.FacilityID =[Forms]![frm_ReportMenu]![txtFacilityID] AND tbl_Buildings.BldgType =[Forms]![frm_ReportMenu]![txtBldgType]



    Thanks in advance.



    Private Sub Command101_Click()
    Dim strSelect As String, qdfReport As QueryDef, dbsA As DAO.Database


    '
    ' Create initial string specifying SHA Districts
    '
    strString = "SELECT tbl_Facilities.FacilityID As FacilityID, tbl_Facilities.FacName As FacName, tbl_Facilities.DistrID, tbl_Facilities.FacType, tbl_Facilities.[Address 1] As Address1, tbl_Facilities.[Address 2] as Address2, tbl_Facilities.City as City, tbl_Facilities.State as State, tbl_Facilities.[Zip Code] as Zipcode, tbl_Facilities.County as County " _
    & " FROM tbl_Facilities INNER JOIN tbl_Buildings ON tbl_Facilities.FacilityID = tbl_Buildings.FacilityID " _
    & "GROUP BY tbl_Facilities.FacilityID, tbl_Facilities.FacName, tbl_Facilities.DistrID, tbl_Facilities.FacType, tbl_Facilities.[Address 1], tbl_Facilities.[Address 2], tbl_Facilities.City, tbl_Facilities.State, tbl_Facilities.[Zip Code], tbl_Facilities.County, tbl_Buildings.BldgType " _
    & "HAVING (tbl_Facilities.DistrID=[Forms]![frm_ReportMenu]![txtchkSHA1] Or tbl_Facilities.DistrID=[Forms]![frm_ReportMenu]![txtchkSHA2] Or tbl_Facilities.DistrID=[Forms]![frm_ReportMenu]![txtchkSHA3] Or tbl_Facilities.DistrID=[Forms]![frm_ReportMenu]![txtchkSHA4] Or tbl_Facilities.DistrID=[Forms]![frm_ReportMenu]![txtchkSHA5] Or tbl_Facilities.DistrID=[Forms]![frm_ReportMenu]![txtchkSHA6] Or tbl_Facilities.DistrID=[Forms]![frm_ReportMenu]![txtchkSHA7])"
    '
    ' If a county is selected on the form, add criteria to string
    '
    If Forms!frm_ReportMenu!txtCounty <> "" Then strString = strString & " AND tbl_Facilities.County =[Forms]![frm_ReportMenu]![txtCounty]"
    '
    'If a Facility is selected on the form, add criteria to string
    '
    If Forms!frm_ReportMenu!txtFacilityName <> "" Then strString = strString & " AND tbl_Facilities.FacilityID =[Forms]![frm_ReportMenu]![txtFacilityID]"
    '
    'If a building type is selected on the form, add criteria to string
    '
    If Forms!frm_ReportMenu!txtBldgType <> "" Then strString = strString & " AND tbl_Buildings.BldgType =[Forms]![frm_ReportMenu]![txtBldgType]"
    '
    ' Show final string in text box
    '
    Me!txtString = strString
    '
    ' Create report query
    '
    Set dbsA = CurrentDb
    DoCmd.DeleteObject acQuery, "qry_ReportQuery"
    Set qdfReport = dbsA.CreateQueryDef("qry_ReportQuery", strSelect)
    '
    ' Print report
    '
    DoCmd.OpenReport "rpt_OverallReport", acViewPreview
    '
    End Sub

  2. #2
    Robeen is offline VIP
    Windows XP Access 2010 32bit
    Join Date
    Mar 2011
    Location
    Tulsa, Oklahoma.
    Posts
    1,593
    You're using strSelect [declared] in your CreateQueryDef . . . and strString [not declared] to build your SQL string.
    You're populating the strString - but not the strSelect.

    This [in red]:
    Code:
    Set qdfReport = dbsA.CreateQueryDef("qry_ReportQuery", strSelect)
    could be your problem.

    Hope this helps.

  3. #3
    rb608 is offline Novice
    Windows XP Access 2010 32bit
    Join Date
    Apr 2012
    Posts
    4
    D'oh! I knew it had to be something like that. Thanks for the second pair of eyes.

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

Similar Threads

  1. Replies: 5
    Last Post: 10-06-2011, 05:49 PM
  2. Simple query doesn't return anything
    By lbytesxk in forum Queries
    Replies: 6
    Last Post: 09-15-2011, 06:50 AM
  3. VBA to create PDF and folder if doesn't exist!
    By crxftw in forum Programming
    Replies: 2
    Last Post: 08-08-2011, 08:53 AM
  4. Query doesn't work the day after
    By sithis876 in forum Queries
    Replies: 1
    Last Post: 07-13-2010, 07:11 AM
  5. Why doesn't the table & Query update?
    By U810190 in forum Forms
    Replies: 1
    Last Post: 03-29-2010, 04:07 AM

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