in access een volgnummer op een formulier

Status
Niet open voor verdere reacties.

jurek1301

Gebruiker
Lid geworden
12 apr 2012
Berichten
54
heei ,,
ik heb in een formulier factuur een nummer maar daar wil ik een (ver)volgnummer van maken zodat ze het niet telkens bij hoeven te houden .
is dit mogelijk of niet zoja hoe ??



alvast bedankt
 
Hoe moet dat vervolgnummer er uit zien?
 
Dat riekt als een jaartal + volgnummer; in dat geval wil je volgend jaar 2013-003 etc. zien. Klopt dat?
 
Het helpt als je dit gelijk in je vraag zet, want de oplossing wordt gelijk heel anders. En niet makkelijker ;)
 
En is het nummer alleen afhankelijk van het jaar, of ook nog per (bijvoorbeeld) een project?
 
Je zou dit kunnen proberen:

Code:
Function VolgNummer() As String
Dim sVeld As String, sTabel As String, sWaarde As String, strSQL As String
Dim arr As Variant
Dim Nummer As Integer, Jaar As Integer
Dim rst As ADODB.Recordset
Dim cnConn As ADODB.Connection

    sVeld = "[Veldnaam]"            'Hier het veld dat je gebruikt voor het volgnummer.
    sTabel = "[Tabelnaam]"          'Hier de tabelnaam waar het volgnummer in staat.
    strSQL = "SELECT TOP 1 " & sVeld & " FROM " & sTabel & " WHERE (" & sVeld & " Is Not Null) ORDER BY " & sVeld & " DESC"
    Set cnConn = CurrentProject.Connection
    Set rst = New ADODB.Recordset
    rst.Open strSQL, cnConn, adOpenKeyset, adLockOptimistic, adCmdText
    With rst
        If Not .BOF And Not .EOF Then sWaarde = .Fields(0).value
        .Close
    End With
    If sWaarde & "" = "" Then GoTo GeenNummer
    arr = Split(sWaarde, "-")
    Jaar = CInt(arr(0))
    If Jaar = Year(Date) Then
        Nummer = CInt(arr(1)) + 1
    Else
        Nummer = 1
    End If
    VolgNummer = Jaar & Format(Nummer, "-000")
    Exit Function
    
GeenNummer:
    VolgNummer = Year(Date) & "-001"

End Function

Deze functie zet je in een willekeurige module. Op het formulier zet je dan deze procedure:
Code:
Private Sub Form_Current()
    If Me.Form.NewRecord = True Then
        Me.Nummer = VolgNummer()
    End If
End Sub
 
Dan heb je geen tekstveld Nummer op je formulier. En dat verbaast mij uiteraard niks, want ik weet niet hoe bij jou het volgnummerveld heet, dat weet ik alleen van mijn eigen voorbeeld :)
 
Dan verander je Me.Nummer in Me.Tekst40. Overigens vind ik mijn naam een stuk mooier en duidelijker :)
Beter is dus: verander de naam van Tekst40 in Nummer!
 
dat is zo maar ik werk aan een bestaande database die iemand anders heeft opgezet maar niet helemaal juist
 
hij doet het nog steeds niet ik heb die eerste code in een nieuwe module geplaats en dat er onder op dat formulier maar hij doet niks...
 
Wat heb je precies in de module geplakt? Kun je de code posten?
 
Code:
Function VolgNummer() As String
Dim sVeld As String, sTabel As String, sWaarde As String, strSQL As String
Dim arr As Variant
Dim Nummer As Integer, Jaar As Integer
Dim rst As ADODB.Recordset
Dim cnConn As ADODB.Connection

    sVeld = "[tekst40]"            'Hier het veld dat je gebruikt voor het volgnummer.
    sTabel = "[Factuur overzicht]"          'Hier de tabelnaam waar het volgnummer in staat.
    strSQL = "SELECT TOP 1 " & sVeld & " FROM " & sTabel & " WHERE (" & sVeld & " Is Not Null) ORDER BY " & sVeld & " DESC"
    Set cnConn = CurrentProject.Connection
    Set rst = New ADODB.Recordset
    rst.Open strSQL, cnConn, adOpenKeyset, adLockOptimistic, adCmdText
    With rst
        If Not .BOF And Not .EOF Then sWaarde = .Fields(0).Value
        .Close
    End With
    If sWaarde & "" = "" Then GoTo GeenNummer
    arr = Split(sWaarde, "-")
    Jaar = CInt(arr(0))
    If Jaar = Year(Date) Then
        Nummer = CInt(arr(1)) + 1
    Else
        Nummer = 1
    End If
    VolgNummer = Jaar & Format(Nummer, "-000")
    Exit Function
    
GeenNummer:
    VolgNummer = Year(Date) & "-001"

End Function
 
Ziet er redelijk hetzelfde uit... Heb je de ADO bibliotheek ook geladen?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan