[AccessD] return query result into variable <SOLVED>

Sad Der accessd666 at yahoo.com
Thu Jul 10 06:41:35 CDT 2003


Hahaha. 
He Bruce, I just dropped out of hyperwarp. You're
correct I used a function. I know it wasn't as
sophisticated as youre's but it did the trick.

Thank you very much! 

Regards,

Sander

PS: now i got a new problem. I want to know HOW I did
it...
--- "Brock, Christian T, PERSCOM"
<Christian.Brock at hoffman.army.mil> wrote:
> Do you have to have some particular reference turned
> on to use the State
> property for recordsets?  I am using Access XP and
> do not see that as a
> property.
> 
> Christian Brock
> 
> -----Original Message-----
> From: Bruce Bruen [mailto:bbruen at bigpond.com] 
> Sent: Tuesday, 08 July 2003 05:51
> To: 'Access Developers discussion and problem
> solving'
> Subject: RE: [AccessD] return query result into
> variable
> 
> 
> Hoowee, you're about 2 light years away.
> 
> Your query does not return one number, it returns a
> recordset with a single
> row containing a single field that is a number.
> 
> Docmd.runquery?  Perhaps docmd.openquery, but I
> doubt that's what you want
> either.
> 
> I think you need a module containing something along
> the lines of the
> following.
> 
> <CODE>
> 
> #Const DEVEL = False        'turns development level
> error handling on
> and off
> 
> Public Function GetCount(qryName As String) As Long
>
'-----------------------------------------------------------------------
> ----------------
> '
> '   Description / Purpose :-
> '       GetCount executes a stored database query
> that returns a count
> of a specific type
> '       The query MUST return only one row, and only
> one field
> "qryCount".
> '
> '   Parameters:-
> '       PARAMETER   TYPE    COMMENTS
> '       qryName     string  The name of the select
> query to be run
> '
> '   Return Value:-
> '       (Long) the value of the count as returned by
> the query.  If the
> action fails the
> '       returned value is set to -1.
> '
> '   Notes:-
> '
>
'-----------------------------------------------------------------------
> ----------------
> '   Version     Dated       Author  Comment
> '     1.0       28/06/2003  bruce   Original.
>
'=======================================================================
> ================
> 
>     Dim lngRtn As Long          'internal store for
> interim result
>     Dim conn As Connection      'db connection
>     Dim rst As Recordset        'recordset returned
> by the query
> 
>     On Error GoTo GetCount_ERR
>     
>     lngRtn = -1
>     Set conn = CurrentProject.Connection
>     Set rst = New Recordset
>     rst.Open qryName, conn, adOpenStatic,
> adLockReadOnly
>     
>     If rst.RecordCount <> 1 Then
>         Err.Raise 4011, "GetCount" ', "GetCount
> Query error"
>     Else
>         lngRtn = rst!qryCount
>     End If
>     
>     GetCount = lngRtn
> 
> GetCount_CLEANUP:
>     If Not rst Is Nothing Then
>         If rst.State = adStateOpen Then
>             rst.Close
>         End If
>         Set rst = Nothing
>     End If
> 
> GetCount_EXIT:
>    On Error GoTo 0
>    Exit Function
> 
> GetCount_ERR:
>     Select Case Err.Number
>         Case 3265
>             Call MsgBox("Program Error:The query
> passed to the GetCount
> procedure " _
>                         & vbCrLf & "does not contain
> the correct field for
> returning the count." _
>                         & vbCrLf & "This error is a
> serious program fault."
> _
>                         & vbCrLf & "" _
>                         & vbCrLf & "Please inform
> the System Administrator
> of this error." _
>                         , vbCritical +
> vbSystemModal, Application.Name)
>         Case 4011
>             Call MsgBox("Program Error: The query
> supplied to this procedure
> returned no rows or " _
>                         & vbCrLf & "more than one
> row.   The procedure
> can only use a query that returns" _
>                         & vbCrLf & "exactly one row.
>  This is a serious
> program error." _
>                         & vbCrLf & "" _
>                         & vbCrLf & "Please inform
> the System Administrator
> of this error." _
>                         , vbCritical +
> vbSystemModal, Application.Name)
>         Case -2147217900
>             Call MsgBox("Program Error:  An invalid
> query name was passed as
> a " _
>                         & vbCrLf & "parameter to the
> GetCount function. This
> is a serious " _
>                         & vbCrLf & "programming
> error." _
>                         & vbCrLf & "" _
>                         & vbCrLf & "Please inform
> the System Administrator
> of this error" _
>                         , vbCritical +
> vbSystemModal, Application.Name)
>             Set rst.ActiveConnection = Nothing
> 'needed as the open call
> failed
>         Case Else
>             MsgBox "Error " & Err.Number & " (" &
> Err.Description & ") in
> procedure GetCount of Module Module1"
>     End Select
> #If Not DEVEL Then
>     Resume GetCount_CLEANUP
> #Else
>     Stop
>     Resume
> #End If
> 
> End Function
>   
> </CODE>
> 
> Then you can call the beast as a function, like:
> 
>  intNewProjectID=GetCount("qryNewProjectID")
> 
> 
> Hth
> Bruce
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
> [mailto:accessd-bounces at databaseadvisors.com] On
> Behalf Of Sad Der
> Sent: Tuesday, 8 July 2003 6:48 PM
> To: Acces User Group
> Subject: [AccessD] return query result into variable
> 
> _______________________________________________
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com


__________________________________
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com


More information about the AccessD mailing list