Toon posts:

[access 97]Centrale plaats voor code

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een aantal forms. Deze hebben dezelfde knoppen met daarachter dezelfde code.

Is het mogelijk om de code aan te roepen vanuit een centrale plaats?

Verwijderd

Dat kan je in een module zetten.
Alleen moet je er dan geen private sub / functions van maken maar public :)

Verwijderd

Topicstarter
Alle code staat nu in een module.
Heb bij alle routines Private Sub in Public Sub veranderd.

Maar hoe roep je die aan vanuit het form?

Heb geprobeerd met: GoTo Public Sub <naam>
Maar dat werkt niet, misschien heel logisch maar ik ben nog een behoorlijk VB n00b :o

Verwijderd

Gewoon de naam van de functie
Visual Basic:
1
2
3
public sub Test()
  msgbox "Hoi"
end sub


dan roep je die sub aan met
Visual Basic:
1
Test

Je moet dus wel goede namen maken die niet al voorkomen :)

Verwijderd

Topicstarter
Dus de code achter de knop wordt:

Visual Basic .NET:
1
2
3
Private Sub Knop22_Click()
Test_Click()
End Sub


En de code in de module wordt:

Visual Basic .NET:
1
2
3
Public Sub Test_Click()
msgbox "Hoi"
End Sub


maar dat werkt niet

Verwijderd

Kan je Test_Click wel aanroepen vanuit je Debug window ?

Verwijderd

Topicstarter
ik heb "test_click" verandert in "test" en nu werkt het wel :)
thanx

Verwijderd

Topicstarter
Kan het zijn dat sommige functies niet werken als vanuit een module uitgevoerd worden?

bijvoorbeeld bij: Me.requery

Hij zegt dan:
ongeldig gebruik van het sleutelwoord Me

Verwijderd

Dat kan heel goed. Me werkt alleen in de Class module van een formulier.
Je zal dus zelf een link naar het juiste formulier mee moeten geven in je functie

Verwijderd

Topicstarter
Hmm...dan gaat eigenlijk het hele idee verloren. :|
Dan moet ik voor ieder afzonderlijk formulier een aparte routine maken binnen de module.
Kan ik het beter houden zoals het nu is. (alle code in de forms)
Of is er nog een alternatief?

Verwijderd

Je kan toch een variabele toevoegen als Form en die meegeven aan je sub ?
Werkt perfect hoor !

Verwijderd

Topicstarter
Ik begrijp niet echt wat je bedoelt.

Zou je me hier anders per email even mee kunnen helpen?
Dit topic dreigt een slotje te krijgen gok ik zo. (one on one)

maurice@delucht.nl

Verwijderd

na het lezen van dit alles heb ik maar 1 advies. . .druk op F1 . .en ga leren .. want volgens mij mist hier enige basiskennis. ..

  • ocke
  • Registratie: Juni 2000
  • Laatst online: 10-04 18:26
Je moet er de naam van de module voor zetten. Dus als die module "progs" heet, en een stukje code in "progs" is
Visual Basic:
1
2
3
public sub knop_click()
msgbox "bla"
end sub

Kun je deze aanroepen met
Visual Basic:
1
progs.knop_click
Pagina: 1