|
2.6 Jak wywołując funkcję DLookup przekazać kwerendzie parametr ?

<cyt>
... Masz jakąś kwerendę parametryczną, powiedzmy "Kwerenda1"
i chcesz wyliczyć coś:
? DLookUp("Pole1", "Kwerenda1", ...)?
Nie da się przekazać parametru !
Możesz to zrobić poprzez DAO:
</cyt>

' zwraca wartość jaką zwraciłaby funkcja DLookup, przy błędzie zwraca wartość Empty - nie obsługuje błędów: np. brak tabeli, brak pola, zła nazwa parametru, zły typ wartości parametru itp.
Public Function knDLookupParam(sQryName As String, _
sFieldName As String, _
sParamName As String, _
vParamValue As Variant) As Variant
Dim dbs As DAO.Database
Dim qdf As DAO.QueryDef
Dim rst As DAO.Recordset
Set dbs = CurrentDb
Set qdf = dbs.QueryDefs(sQryName)
qdf.Parameters(sParamName).Value = vParamValue
Set rst = qdf.OpenRecordset
With rst
If Not (.BOF And .EOF) Then
.MoveFirst
knDLookupParam = .Fields(sFieldName)
End If
End With
rst.Close
Set rst = Nothing
Set qdf = Nothing
Set dbs = Nothing
End Function
ΔΔΔ | |