Heel simpel antwoord: modules roep je niet aan

. Er zijn drie soorten modules in Access: Algemene modules, Klasse modules en Gebonden Klasse modules.
1. Algemene modules
Dit zijn modules die je maakt vanuit het VBA venster met het menu <Invoegen>, <Module>
In een algemene module zet je functies en procedures die in algemene zin gebruikt worden. Die functies en procedures kun je overal in gebruiken.
2. Klasse modules
Dit zijn modules die je maakt vanuit het VBA venster met het menu <Invoegen>, <Klasse Module>
Hierin maak je specifieke klasse procedures. Dat is een beetje buiten het kader om dat hier uit te leggen.
3. Gebonden Klasse modules
Deze variant vind je bij Formulieren; als je een procedure schrijft op een formulier, is die procedure in beginsel alleen te gebruiken op dat formulier.
Zodra je vanuit een formulier bij <Eigenschappen> op het tabblad <Gebeurtenissen> klikt, en je maakt daar een <Gebeurtenisprocedure>, kom je terecht op een Formulier module. Hierop maak je code die
alleen voor dat formulier bedoeld is.
Voor ons belangrijk dat het nu gaat werken. En om te snappen wat je gedaan hebt is de vraag van ons waar wordt de module aangeroepen en hoe?
En nu komen we bij je vraag: dat is dus totaal onbelangrijk

. Sowieso is de
naam van een module niet interessant, zolang je maar in de gaten houdt dat een object een
unieke naam moet hebben. Een procedure beschouw ik in dit geval dus even als een object, en een module ook. Een module met de naam "Volgnummer" combineren met de
functie "Volgnummer" gaat nooit werken: twee objecten met dezelfde naam. Ik maak er een gewoonte van om mijn modules een voorvoegsel te geven (modBestanden, modFotoApp in het voorbeeld) en functies ook een voorvoegsel. Dus liefst noem ik mijn functie dan funVolgnummer. Dat hoeft niet (consequent ben ik ook niet, zoals je ziet) maar het helpt wel.
Waar je functies opslaat, maakt ook helemaal niet uit. In het plaatje zie je 10 modules, maar alle functies en procedures die er op staan kan ik overal gebruiken met dezelfde naam. Je gebruikt dus de naam van de module nooit als je een functie aanroept. Tenzij je twee of meer identieke functies hebt staan op meerdere modules. Helaas is dat niet verboden, maar je hebt niet zo snel door welke versie dan uiteindelijk gebruikt wordt.
Functies kun je op een formulier aanroepen op de manier zoals ik je verteld heb: in jouw geval dus door in de eigenschap <Standaardwaarde> de functie aan te roepen met =Lidnummer(). En omdat deze functie op een module staat, werkt hij.
Het voordeel van deze constructie is, dat je hem op allerlei andere formulieren óók kan gebruiken. Wil je een functie écht universeel maken, dan moet je hem nog wel enigszins aanpassen, maar in beginsel hoef je, als de functie klaar is, hem dan alleen op het specifieke veld te zetten en je bent klaar.