[dba-SQLServer]Replacement for DLookup with 2 parameters

Francisco Tapia my.lists at verizon.net
Tue Mar 4 01:40:30 CST 2003


Think sprocs, David....
So your Function would be more along the lines of..

Public Function cbfAmtDue() as Currency
    Dim rst ADODB.Recordset
    Set rst = New ADODB.Recordset

    Currentproject.Connection.stp_AmountDue CustIDNo, InvNumber - 1, rst

    if rst.eof = true then
       cbfAmtDue = Null 'Or 0
    else
        cbfAmtDue = rst!CurrentMth
    end if
'--------END
Now in a sproc on your SQL Server you'd add the following sproc...

----------
Create Procedure stp_AmountDue (@CustIDno as int, @InvNumber as Int) AS
SELECT CurrentMth From tblCustStatement Where CustNoId = @CustNoId AND
InvNumber = @InvNumber
---------END

this is all OTOMH, so please check your syntax...
-Francisco
http://rcm.netfirms.com/
----- Original Message -----
From: "David Emerson" <davide at dalyn.co.nz>
To: <dba-SQLServer at databaseadvisors.com>
Sent: Monday, March 03, 2003 8:14 PM
Subject: [dba-SQLServer]Replacement for DLookup with 2 parameters


: What I am looking for here is some confirmation I am doing the right
thing.
:
: In A97 I had a simple statement to return a single value if the
: corresponding record existed (this was in the Control Source of a field -
:
: =IIf(Not
: IsNull([CustIDNo]),nz(DLookUp("Current","tblCustStatement","CustIDNo = " &
: [CustIDNo] & " and StatementNumber = " & [InvNumber]-1),0))
:
: Now in my ADP I am using the following (and setting the field control
: source to '=cbfAmtDue()') -
:
: Public Function cbfAmtDue() As Currency
:
:      Dim cnn As ADODB.Connection, rst As ADODB.Recordset
:
:      Set cnn = CurrentProject.Connection
:      Set rst = New ADODB.Recordset
:      rst.Open "tblCustStatement", cnn, adOpenDynamic, adLockOptimistic
:
:      cbfAmtDue = 0
:      If Not IsNull([CustIDNo]) Then
:          rst.Filter = "CustIDNo = " & Me!CustIDNo & " and StatementNumber
=
: " & DLookup("InvNumber", "tblCustomers", "CustomerID = " & Me!txtCustID) -
1
:          If rst.EOF <> True Then 'Statement record exists
:              cbfAmtDue = rst!CurrentMth
:          End If
:      End If
:
:      rst.Close
:      Set rst = Nothing
:      cnn.Close
:      Set cnn = Nothing
:
: It seems a long way about it but is there any simpler way?
:
:
: Regards
:
: David Emerson
: DALYN Software Ltd
: 25b Cunliffe St, Johnsonville
: Wellington, New Zealand
: Ph/Fax (877) 456-1205
:
: _______________________________________________
: dba-SQLServer mailing list
: dba-SQLServer at databaseadvisors.com
: http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
: http://www.databaseadvisors.com
:





More information about the dba-SQLServer mailing list