Ik heb een Access programma voor mijn postzegels. Ik zou daarin twee telvelden willen koppellen:
1. Bestaat uit drie delen: 06-0001/01 met als veldnaam "ZegelsInBoek"
- eerste deel 06 wijzigt nooit
- het derde deel start met 01 en vermeerdert met +1.Grootst mogelijke waarde is 50. Bij overschrijding van de waarde 50 opnieuw de waarde 01 + veranderding tweede deel + verandering tweede telveld "Boek"
- tweede deel start met 0001 en vermeerdert met +1 indien de waarde 50 van het derde deel wordt overschreden
2. Bestaat uit twee delen: 2006/01 met als veldnaam "Boek"
- het tweede deel vermeerdert met +1 indien de waarde van het derde deel uit het veld ZegelsInBoek de 50 heeft overschreden
- het eerste deel 2006 slaat terug op het jaar en verandert als een nieuw jaar begint. Terzelfdertijd hervalt het tweede deel van dit veld terug naar 01
Ik probeerde als volgt:
In de tabel met naam Nummering plaatste ik vier velden
NummerId: autonummering
ZegelsinBoek: Gegevenstype: tekst - Notatie: =”"06-”” & format(tussen,””0000””) & ““/”” & format(einde,””00””) - Invoermasker: 00\-0000\/00
Boek: Gegevenstype: tekst - Notatie =laatsteboek - Invoermasker: 0000/00
PostId: numeriek
Deze tabel is verbonden met de hoofdtabel Postzegels via NummerId via gegevenstype opzoeken met code: SELECT Nummering.NummerId, Nummering.ZegelsInBoek, Nummering.Boek FROM Nummering;
Bij ingave via formulier (gebaseerd op tabel Nummering) zijn er volgende velden:
NummmerId (autonummering) - PostId (keuzelijst met invoervak gekoppeld aan de tabel Postzegels-werkt perfect) - ZegelsInBoek - Boek
Na selectie uit keuzelijst PostId bij de gebeurtenissen Na Bijwerken de codering
Private Sub IdPatiëntnaam_AfterUpdate()
Dim rs As Recordset
Dim tussen, laatste, einde
Set rs=dbengine(0)(0).openrecordset(""Select max(ZegelsInBoek) as grootste,max(Boek) as grootsteboek from table"")
laatste = rs!grootste
laatsteboek = rs!grootsteboek
If Val(Mid(laatste, 9)) = 50 Then
tussen = Val(Mid(laatste, 6, 4)) + 1
einde = 1
laatsteboek = Left(laatsteboek, 7) & Format(Val(Mid(laatsteboek, 8) + 1))
Else
tussen = Val(Mid(laatste, 6, 4))
einde = Val(Mid(laatste, 9)) + 1
End If
End Sub
Ik veronderstelde dat de verschillende nummeringen automatisch zouden worden ingevuld, maar helaas het was een droom (nachtmerrie). Kan iemand mij helpen om deze droom om te zetten in werkelijkheid.
1. Bestaat uit drie delen: 06-0001/01 met als veldnaam "ZegelsInBoek"
- eerste deel 06 wijzigt nooit
- het derde deel start met 01 en vermeerdert met +1.Grootst mogelijke waarde is 50. Bij overschrijding van de waarde 50 opnieuw de waarde 01 + veranderding tweede deel + verandering tweede telveld "Boek"
- tweede deel start met 0001 en vermeerdert met +1 indien de waarde 50 van het derde deel wordt overschreden
2. Bestaat uit twee delen: 2006/01 met als veldnaam "Boek"
- het tweede deel vermeerdert met +1 indien de waarde van het derde deel uit het veld ZegelsInBoek de 50 heeft overschreden
- het eerste deel 2006 slaat terug op het jaar en verandert als een nieuw jaar begint. Terzelfdertijd hervalt het tweede deel van dit veld terug naar 01
Ik probeerde als volgt:
In de tabel met naam Nummering plaatste ik vier velden
NummerId: autonummering
ZegelsinBoek: Gegevenstype: tekst - Notatie: =”"06-”” & format(tussen,””0000””) & ““/”” & format(einde,””00””) - Invoermasker: 00\-0000\/00
Boek: Gegevenstype: tekst - Notatie =laatsteboek - Invoermasker: 0000/00
PostId: numeriek
Deze tabel is verbonden met de hoofdtabel Postzegels via NummerId via gegevenstype opzoeken met code: SELECT Nummering.NummerId, Nummering.ZegelsInBoek, Nummering.Boek FROM Nummering;
Bij ingave via formulier (gebaseerd op tabel Nummering) zijn er volgende velden:
NummmerId (autonummering) - PostId (keuzelijst met invoervak gekoppeld aan de tabel Postzegels-werkt perfect) - ZegelsInBoek - Boek
Na selectie uit keuzelijst PostId bij de gebeurtenissen Na Bijwerken de codering
Private Sub IdPatiëntnaam_AfterUpdate()
Dim rs As Recordset
Dim tussen, laatste, einde
Set rs=dbengine(0)(0).openrecordset(""Select max(ZegelsInBoek) as grootste,max(Boek) as grootsteboek from table"")
laatste = rs!grootste
laatsteboek = rs!grootsteboek
If Val(Mid(laatste, 9)) = 50 Then
tussen = Val(Mid(laatste, 6, 4)) + 1
einde = 1
laatsteboek = Left(laatsteboek, 7) & Format(Val(Mid(laatsteboek, 8) + 1))
Else
tussen = Val(Mid(laatste, 6, 4))
einde = Val(Mid(laatste, 9)) + 1
End If
End Sub
Ik veronderstelde dat de verschillende nummeringen automatisch zouden worden ingevuld, maar helaas het was een droom (nachtmerrie). Kan iemand mij helpen om deze droom om te zetten in werkelijkheid.