|  
                                             
	Hi, 
	du kannst mal folgendes versuchen: 
Function fcDomWert(Expression As String, Domain As String, _
                   Optional Criteria As String, _
                   Optional ltDomArt As ltDomWert = ltDLookup) As Variant
    Dim strSQL  As String
    Dim rs      As DAO.Recordset
     
    rs.move 700000,1
    Select Case ltDomArt
      Case 0: strSQL$ = "SELECT " & Expression$ & " FROM " & Domain$
      Case 1: strSQL$ = "SELECT COUNT(*) FROM " & Domain$
      Case 2: strSQL$ = "SELECT MAX(" & Expression$ & ") FROM " & Domain$
      Case 3: strSQL$ = "SELECT MIN(" & Expression$ & ") FROM " & Domain$
      Case 4: strSQL$ = "SELECT FIRST(" & Expression$ & ") FROM " & Domain$
      Case 5: strSQL$ = "SELECT LAST(" & Expression$ & ") FROM " & Domain$
      Case 6: strSQL$ = "SELECT SUM(" & Expression$ & ") FROM " & Domain$
      Case 7: strSQL$ = "SELECT AVG(" & Expression$ & ") FROM " & Domain$
    End Select
    If Nz(Criteria$, "") <> "" Then strSQL$ = strSQL$ & " WHERE " & Criteria$
    Set rs = CurrentDb.OpenRecordset(strSQL$, dbOpenForwardOnly)
    If rs.EOF Then
        fcDomWert = Null
      Else
        fcDomWert = rs.Fields(0)
    End If
'    Debug.Print fcDomWert 'Nur zum Testen
    rs.Close
    Set rs = Nothing
End Function
	Ich glaub aber eher nicht, dass es funktioniert, aber du kannst natürlich auch die Fälle "manuell" durchgehen: 
Function fcDomWert(Col&, Table$, Criteria$, Optional ByVal start& = 700000) As Long
Dim rs      As DAO.Recordset
Dim i&
    Set rs = CurrentDb.OpenRecordset(Table, dbOpenForwardOnly)
    With rs
        .Move start, 1
        While Not rs.EOF
            
            If .fields(Col) = Criteria Then
                i = i + 1
            End If
            .movenext
            
        Wend
        .Close
    End With
    fcDomWert = i
    Set rs = Nothing
    
End Function
	Das optionale Parameter "Start" gibt die erste Zeile an. 
	Da ich die Beispiele nicht getestet habe und mich nicht viel mit Access beschäftige, wird das vermutlich nicht auf anhieb klappen. Bin mir auch nicht sicher ob der "Move" Befehl so klappt. Kannst aber ja mal versuchen darauf aufzubauen... 
	  
	Gruß 
	Till 
     |