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