genereren van een klantnummer

Scallebe

Gebruiker
Lid geworden
29 okt 2014
Berichten
533
Beste ontwikkelaars,

Ik gebruik al enkele jaren een database voor mijn klanten.
ik heb echter nooit gewerkt met een specifiek klantennummer.
ik zou dit vanaf nu wel willen doen voor alle nieuwe klanten.

De klantenID van mijn tabel gebruiken is echter geen optie omdat de autonummering voor de eerste 26 klanten netjes opeenvolgend waren. Nadien is de automatische toekenning van de KlantenID zeer willekeurig geweest met ID's van 8 en 9 cijfers en zelfs negatieve nummering. Dus niet zo netjes om als klantnummer (en later offerte en factuurnummer) te gebruiken.

Op het net vind ik wel enkele voorbeelden om een klantnummer te genereren met VBA maar die willen maar niet lukken met mijn database.

Waar ik op zoek naar ben is een vba code dat bij het aanmaken van een nieuw record een klantnummer wordt genereerd en deze opslaat in het veld "Klantnummer" van de Tbl "Tabel_Klanten" Eventueel met een prefix : "KL-" en een klantnummer 0001, 0002
Alles gebeurd uiteraard via een formulier.

Wie kan mij helpen

Bedankt op voorhand.

Pascal
 
Op het net vind ik wel enkele voorbeelden om een klantnummer te genereren met VBA maar die willen maar niet lukken met mijn database
Ik had ook, als ik jou was, eerst in dit subforum gezocht, en wel op de term 'volgnummer'. Dan had je een aantal voorbeelden gevonden (meeste van mijn hand :)) met functies die in essentie allemaal hetzelfde werken, maar verschillende nummers genereren.
Wat die functies doen: kijken in de tabel naar het hoogste klantnummer, en dat verhogen met 1. Die functie zet je dan als Standaardwaarde op het veld Klantnummer in je tabel (op je formulier) en dan krijg je netjes, als je een nieuwe klant toevoegt, een volgend klantnummer.

Heb je veel klanten, dan kun je nog overwegen om ook een jaartal in het klantnummer op te nemen, en elk jaar met 1 te beginnen. Dus iets als "KL2024-0001", "KL2024-0002", "KL2024-0003" en het volgend jaar dan "KL2025-0001", "KL2025-0002", "KL2025-0003" etc.

Ik zou overigens ook de bestaande klanten hernummeren, om de klantnummers uniform te houden.
 
Hey Octafish,

Bedankt voor uw reactie.

Ik zal zeker gaan kijken in het Subforum of er iets bijzit waar ik mee verder kan. Ik twijfel daar zelfs niet aan.

Ik hou je op de hoogte mocht er toch iets niet lukken.

Groetjes en fijn weekend.

Pascal
 
Als het niet lukt: post een kopietje van je de mee met wat dummy records, en dan zet ik 'm er in voor je.
 
Octafisch,

Ik heb jouw voorbeeld gezien en ik kan min of meer wel volgen.
Ik weet echter niet waar je die code plaatst. Wordt die in een module gezet? En hoe wordt de code dan opgeroepen? Via de knop "Nieuw"?

Ik kan een kopietje meesturen maar wat heb je precies nodig? Mijn tabel klanten sowieso vermoed ik dan.
Ook een formulier waar ik een nieuwe klant mee aanmaak?

Groetjes Pascal
 
Hier is een klein onderdeel van de database met de tabel_Klanten en het formuliertje om een nieuwe klant toe te voegen.
Ik had graag een klantennummer beginnende met PDN-0000 (max 4 cijfers)

Bedankt
 

Bijlagen

Ik zal er morgen even naar kijken. In essentie is het heel simpel: de code zet je in een (eventueel nieuwe) module. Maakt niet uit in welke. Het gebruik is nog simpeler, zoals ik al schreef in #2. In het formulier roep je de functie aan in de eigenschap <Standaardwaarde> als volgt: =Volgnummer(). Standaardwaarde is een eigenschap van een veld, en zorgt ervoor dat het veld gevuld wordt als je een nieuw record aanmaakt.
Dus als je in de eigenschap van een veld bij Standaardwaarde het getal 10 invult, dan krijgt elk nieuw record in dat veld de waarde 10. Dit handig natuurlijk. Maar bij een veld als <Datum In> kun je heel,goed de functie Date() g#beuken om de huidige datum in te vullen. Dus dat wordt heel vaak gedaan.

En je kunt dus ook functies gebruiken zoals Volgnummer() die vanuit de tabel een nieuw nummer genereren. Zoals gezegd: dat gebeurt dan automatisch als je een nieuw record aanmaakt.

Kijk maar even of je hem er nu in kan zetten, of anders tot morgen wachten :).
 
Zoiets?
Ik heb een gebeurtenis "voor invoegen" gemaakt op het formulier waarmee het klantnummer gemaakt wordt. Let op dat deze alleen werkt uitgaande van een lege tabel of een tabel waarin de klantnummers al volgens de logica zijn toegekend.
Ook heb ik een unieke index op het klantnummer gezet.
 

Bijlagen

Als ik dit zo lees denk ik: wacht even op mijn versie :).
 
wacht even op mijn versie
Nog even wachten....... 🍕🍕🍕

In afwachting van De Oplossing heb ik mij voorstelletje nog een klein beetje aangepast. Het zal waarschijnlijk niet snel gebeuren, maar als je over de 9999 klanten gaat zit er nu een rem op zodat je geen klanten meer toe kunt voegen. Je zult dan eerst een nieuw systematiek moeten bedenken.
 

Bijlagen

OctaFish, xps351,

Het is even druk geweest en straks vertrekken we voor enkele dagen naar Frankrijk. :cool:

Dinsdag kan ik de aangereikte oplossingen testen en ik laat zeker weten of het lukt voor mij.
Ik ben zeker in blijde verwachting naar OctaFish zijn oplossing.

In ieder geval bedankt voor jullie reacties en nog een fijn weekend gewenst.

Groetjes

Pascal
 
Dan heb ik ook nog een paar dagen de tijd; ben zelf ook nogal,druk geweest. Maar voor dinsdag staat-ie er :). Veel plezier alvast in La Douce France!
 
En hierbij alvast de versie zoals ik het zou doen, met een functie op de eigenschap <Standaardwaarde>. Zelf doe ik het nooit anders als zo, met eventueel andere opties, zoals elk jaar opnieuw beginnen met nummeren. Een variant die bij facturen bijvoorbeeld heel handig is.
 

Bijlagen

Terug
Bovenaan Onderaan