Expressie dat datum uit een nummercombinatie kan onttrekken.

Status
Niet open voor verdere reacties.
Hier heb je een voorbeeld.
In de tabel Lotnummers kun je in de twee velden een waarde invullen voor de twee opmaken die je wilt kunnen gebruiken.
In de query qLotnummers zie je dan de vertaalde datums. Overigens kun je in de query ook nog die waarden aanpassen. In de groep Modules vind je de code die gebruikt wordt voor de functies. Let er wel op dat bij het laden van de db de macro-beveiliging uit staat, of op middel, zodat de macro's wel ingeschakeld worden.
 

Bijlagen

Octafish, het is gelukt :thumb:. Bedankt voor de moeite, ook aan harry.
 
Mag je het draadje ook nog op slot gooien!
 
Het lijkt alsof het geluk niet meezit, misschien te vroeg gejuicht. Als ik door vele records tegelijk scroll loopt access plots vast en geeft ie "Run time error 9 subscript out of range". Als ik op debug klik duidt access volgend lijntje aan in de vba code "iDag = Right(sTemp(1), 1)" .
Blijkbaar was er niets aan de hand met enkele records maar met velen (350) loopt ie vast.
 
Eerste vraag: voldoet de waarde in het veld wel aan de regeltjes? Als er niks valt te splitsen bijvoorbeeld blijft de variabele leeg. Dat kan uiteraard wel worden afgevangen. Dus check dat eerst. Verder kan het zijn dat de variabele volloopt, ik heb de foutmelding zelf nog niet gekregen, maar zal eens kijken of ik wat kan genereren. Dus ik kom er nog wel op terug.
 
Ik krijg de foutmelding als er in het bronveld geen / voorkomt. Je hebt dan bijvoorbeeld 10127 staan i.p.v. 10/127.
Is altijd een risico bij tekstvelden....
 
Klopt, ik had velden waarin "var" stond (van variabele lotnummers).
 
Laatst bewerkt:
En wat wil je daar mee doen? Je snapt hopelijk wel dat een functie alleen goed kan werken als de gegevens in dat veld voldoen aan een vast patroon.
 
Dat besef ik nu, is nog iets dat stamt uit mijn vroegere werkwijze met excell. Ik heb nog een probleem. Als ik voorbij het jaar 2010 ga in de lotnummers geeft hij als datum de verkeerde eeuw. 10/125 is 26/03/2010 maar 11/125 is 24/03/1911 :(
 
Dat klopt; om ook jaren vóór 2000 te kunnen gebruiken heb ik een check ingebouwd die controleert of het jaartal groter is dan het huidige jaartal, of kleiner. In het eerste geval maakt-ie er 1900+ van, anders 2000. Als je vooruit wilt plannen, moet de functie een klein beetje worden aangepast.
Stel dat je 10 jaar vooruit wilt kunnen plannen, dan kun je de functie zo aanpassen:

Code:
If sTemp(0) > (Right(Year(Date), 2)[B][COLOR=red]+10[/COLOR][/B]) Then
    iJaar = 1900 + sTemp(0)
Else
    iJaar = 2000 + sTemp(0)
End If

Je snapt denk ik nu wel hoe je die range zelf kunt aanpassen?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan