Code aanroepen van andere formulier

Status
Niet open voor verdere reacties.

test1000

Gebruiker
Lid geworden
7 jul 2017
Berichten
258
Hoi,

Ik heb een formulier A met verschillende knoppen en code.
Onder formulier A heb ik een
Code:
Public sub opvullen()  ......... end sub
Dus als ik formulier A open en druk op een knop heb ik code
Code:
call opvullen
en wordt de code uitgevoerd.

Nu heb ik een formulier B en wil ik de code van formulier A onder sub opvullen() ook aanroepen met
Code:
call opvullen
maar dan krijg ik de foutmelding "Sub of Function is niet gedefinieerd".

De vraag is : welke code of manier kan je het beste gebruiken om code van een ander formulier aan te roepen ?

Ik lees van alles op het internet ivm module maken of
Code:
call forms("A").opvullen
ed
Ook lees je van subroutines.

Maar wat is de beste manier om zo iets te programmeren.

Thx.
 
Ik lees van alles op het internet ivm module maken of call forms("A").opvullen ed. Ook lees je van subroutines.

Eigenlijk is het heel simpel: code die je op een Formulier zet, werkt alleen op dat formulier. Heb je procedures die je ook elders wilt gebruiken, dan moet je ze op een aparte module zetten (<Invoegen>, <Module>). Hoe die module heet, boeit verder niet en je hoeft nooit een procedure aan te roepen met Call; dat is code uit de tijd dat Bill Gates nog in een korte broek liep :).
En op een formulier heeft een Public Sub ook niet zoveel zin, tenzij je vanuit de ene procedure een andere op hetzelfde formulier wilt aanroepen. Ook dan is Call dus overbodig.

Kun je elke procedure of functie 'klakkeloos' transporteren naar een aparte module? Dat hangt sterk van de procedure af. Een procedure of functie die elementen aanroept op dat formulier en die je met Me.Objectnaam aanroept, zal niet meer werken als je hem verplaatst naar een andere module. Simpelweg omdat Me. kijkt naar de bron van de huidige procedure. Op een gebonden module (bij een formulier of rapport dus) verwijst Me. naar dat formulier, staat de module los, dan is er geen bron meer. Dan kun je de procedure nog steeds gebruiken, maar zul je hem dus moeten ombouwen. Omdat je verder geen code geeft, kan ik niet zien of dat nodig is.
 
Zeer duidelijke, klaarhelder en to the point uitleg.
Probleem opgelost.
Soms kan het zo eenvoudig zijn :D:D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan