Automatische nummering

Status
Niet open voor verdere reacties.
Maak een 'normale' functie en zet die als Standaardwaarde op het veld. En over velden gesproken: je voorbeeld gebruikt andere veldnamen als je zelf hanteert. Dat is natuurlijk behoorlijk onhandig voor ons als we een functie maken :). Ik heb dus je eigen veldnamen gehanteerd en niet die uit het voorbeeld.

Code:
Function Volgnummer() As Long
Dim rs As DAO.Recordset
Dim strSQL As String
Dim Jaar As Integer, Nummer As Integer
Jaar = Year(Date)

    strSQL = "SELECT DISTINCT TOP 1 Kasverrichting_ID FROM Kasverrichtingen " _
        & "WHERE Left(Kasverrichting_ID,4) =" & Year(Date) & " " _
        & "ORDER BY Kasverrichting_ID DESC"
    Set rs = CurrentDb.OpenRecordset(strSQL)
    If rs.RecordCount > 0 Then
        If Right(rs!Kasverrichting_ID, 4) = 9999 Then
            MsgBox "Er zijn geen vrije nummers meer!", vbCritical, "Nummers op"
            Cancel = True
            Exit Function
        End If
        Nummer = Right(rs!Kasverrichting_ID, 4) + 1
        Volgnummer = Year(Date) & Right("0000" & Nummer, 4)
    Else
        Volgnummer = Year(Date) & "0001"
    End If
End Function
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan