[AccessD] Modifying a query

Hale, Jim Jim.Hale at FleetPride.com
Thu Jun 8 08:34:55 CDT 2006


Rocky, This function has been in my toolkit so long I forget where I got it.
Probably from this list!
Jim Hale

Function ahtDoesObjExist(strObj As String, intType As Integer) As Boolean
'This function returns True if an object exists, false if it doesn't
    '-------------------------------------------------------------------
    Dim strName As String
    Dim db As Database
    Dim strCon As String
    
    
    On Error GoTo ahtDoesObjExist_Err
    
    Set db = CurrentDb()
    Select Case intType
        Case acTable
            strName = db.TableDefs(strObj).Name
        Case acQuery
            strName = db.QueryDefs(strObj).Name
        Case acForm, acReport, acMacro, acModule
            Select Case intType
                Case acForm
                    strCon = "Forms"
                Case acReport
                    strCon = "Reports"
                Case acMacro
                    strCon = "Scripts"
                Case acModule
                    strCon = "Modules"
            End Select
            strName = db.Containers(strCon).Documents(strObj).Name
    End Select
    ahtDoesObjExist = True

ahtDoesObjExist_Exit:
    Exit Function
       
ahtDoesObjExist_Err:
    ahtDoesObjExist = False
    Resume ahtDoesObjExist_Exit
    
End Function


-----Original Message-----
From: Rocky Smolin - Beach Access Software [mailto:bchacc at san.rr.com]
Sent: Wednesday, June 07, 2006 5:47 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Modifying a query


Jim:

I think you're right.  Delete and re-create was where I was heading if I 
want to keep this query in the string of queries the user wants to 
execute through a macro that they set up.

"ahtDoesObjExist "  whuzzat?


Regards,

Rocky


Hale, Jim wrote:
> I may have missed this suggestion from earlier in the thread, but why not
> delete the old query and recreate it with the new criteria? I do it a lot
> with passthrough queries but it can be done with regular Access queries as
> well. Something like these code snippets (this ex creates a passthrough
> query)
>
> Dim qdfPassthrough As QueryDef, rstPassthrough As Recordset
> 'delete old version of query
> 	if ahtDoesObjExist("qryDownload", acQuery) Then DoCmd.DeleteObject
> acQuery, "qryDownload"
>      strPassthrough = "SELECT * from GLTLIB.GLMSL"     
>     ' Create pass-through query
>     Set qdfPassthrough = db.CreateQueryDef("qryDownload")
>     qdfPassthrough.Connect = "ODBC;DSN=AS400Prod;"
>     qdfPassthrough.SQL = strPassthrough
>      ' Tell Access to wait as long as the query takes
>     qdfPassthrough.ODBCTimeout = 0
>       Set rstPassthrough = qdfPassthrough.OpenRecordset()
>       qdfPassthrough.ReturnsRecords = True
>
> query qryDownload will show up in the Database container
>
> Jim Hale
>

***********************************************************************
The information transmitted is intended solely for the individual or
entity to which it is addressed and may contain confidential and/or
privileged material. Any review, retransmission, dissemination or
other use of or taking action in reliance upon this information by
persons or entities other than the intended recipient is prohibited.
If you have received this email in error please contact the sender and
delete the material from any computer. As a recipient of this email,
you are responsible for screening its contents and the contents of any
attachments for the presence of viruses. No liability is accepted for
any damages caused by any virus transmitted by this email.


More information about the AccessD mailing list