Ik probeer in een acces database 2007 een uniek nummer te genereren die bestaat uit datum notatie jaar (yyyy) en 4 cijfers oplopend (0000). Dit als bedoeling om een uniek nummer te maken die per jaar oplopend is van 1 tot in 9999.
Na wat speur werk op forums blijkt dat, dat niet gaat met een autonummer veld en toevoegen met Dmax als standaardwaarde in een tabel werkt ook niet.
Ik heb onderstaande VBA gevonden op dit voorbeeld http://www.helpmij.nl/forum/showthr...onummering-quot-YY.MM.0000-per-maand-resetten forum en naar mijn idee aangepast.
De functie heb ik in mijn formulierveld als standaardwaarde = VolgNummer(“naam veld”;”naam table”)
als ik de functie toevoeg in het formulier standaardwaarde zie ik alleen VolgNummer() staan en niet VolgNummer («Veld»; «Tabel»)
Echter geeft hij bij een nieuw veld het resultaat “#Naam?”. Ik vraag me af waar ik moet zoeken om het werkend te krijgen?
Na wat speur werk op forums blijkt dat, dat niet gaat met een autonummer veld en toevoegen met Dmax als standaardwaarde in een tabel werkt ook niet.
Ik heb onderstaande VBA gevonden op dit voorbeeld http://www.helpmij.nl/forum/showthr...onummering-quot-YY.MM.0000-per-maand-resetten forum en naar mijn idee aangepast.
Code:
Option Compare Database
Option Explicit
Function VolgNummer(veld As String, Tabel As String) As String
Dim strSQL As String
Dim sFilter As String
Dim sNum As String
Dim iNum As Integer
If InStr(1, veld, " ") > 0 And Left(veld, 1) <> "[" Then veld = "[" & veld & "]"
If InStr(1, Tabel, " ") > 0 And Left(Tabel, 1) <> "[" Then Tabel = "[" & Tabel & "]"
sFilter = Format(Date, "yyyy") & "."
strSQL = Nz(DMax(" & Veld & ", " & Tabel & ", Left(" & Veld & ", 5) = " & sFilter & "))
With CurrentDb.OpenRecordset(strSQL)
If .RecordCount > 0 Then
On Error Resume Next
sNum = Mid(.Fields(0), InStrRev(.Fields(0), ".") + 1)
iNum = CInt(sNum) + 1
sNum = Right("0000" & iNum, 4)
VolgNummer = sFilter & sNum
Else
VolgNummer = sFilter & "0001"
End If
End With
End Function
De functie heb ik in mijn formulierveld als standaardwaarde = VolgNummer(“naam veld”;”naam table”)
als ik de functie toevoeg in het formulier standaardwaarde zie ik alleen VolgNummer() staan en niet VolgNummer («Veld»; «Tabel»)
Echter geeft hij bij een nieuw veld het resultaat “#Naam?”. Ik vraag me af waar ik moet zoeken om het werkend te krijgen?