[VBA]active form opvragen in een module

Pagina: 1
Acties:

  • Shadowzon
  • Registratie: Januari 2001
  • Laatst online: 17:04
Ik ben een module aan het schrijven die voor meerdere forms bruikbaar moet zijn. hierin maak ik gebruik van een textbox die op beide forms dezelfde naam heeft.
normaal gebruik ik de me.textboxnaam maar dan zet ik de functie achter de form. nu ik in access een aparte module maak en me. gebruik geeft hij de fout melding

"invalid use of Me keyword"

Hoe kan ik de textbox van de form gebruiken die de functie aan roept?

Verwijderd

Het form van waaruit je de functie aanroept toevoegen aan de parameters lijkt me de beste oplossing. DUs zoiets als
code:
1
2
3
public sub Blaat ( Callingform as form) 
  callingform.caption = "blaaaaaat"    
end sub

[ Voor 6% gewijzigd door Verwijderd op 12-03-2004 11:13 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Verwijderd schreef op 12 maart 2004 @ 11:12:
Het form van waaruit je de functie aanroept toevoegen aan de parameters lijkt me de beste oplossing. DUs zoiets als
code:
1
2
3
public sub Blaat ( Callingform as form) 
  callingform.caption = "blaaaaaat"    
end sub
Daar dacht ik in eerste instantie zelf ook aan, echter, (en ik weet niet hoe het bij VBA zit), maar moet je dan niet die parameter niet gaan casten naar het exacte type form voor je een property (zoals bv. die textbox) kunt aanroepen?

Zoja, is het dan niet beter dat je de TextBox waarvan je de waarde wilt veranderen meegeeft aan die functie, of, dat je een functie maakt die de waarde die aan de textbox (of aan eender welke control/variable) moet gegeven worden gewoon returned?

https://fgheysels.github.io/


Verwijderd

whoami schreef op 12 maart 2004 @ 11:20:
[...]


Daar dacht ik in eerste instantie zelf ook aan, echter, (en ik weet niet hoe het bij VBA zit), maar moet je dan niet die parameter niet gaan casten naar het exacte type form voor je een property (zoals bv. die textbox) kunt aanroepen?

Zoja, is het dan niet beter dat je de TextBox waarvan je de waarde wilt veranderen meegeeft aan die functie, of, dat je een functie maakt die de waarde die aan de textbox (of aan eender welke control/variable) moet gegeven worden gewoon returned?
Je hoeft de parameter niet te casten naar exact hetzelfde type. Alle forms kun je doorgeven al aan variabele van het type form. Het enigste probleem dat je hebt is dat de code-completion je textbox niet ziet staan. Maar als je het runt werkt het wel.
code:
1
2
3
Public Sub blaat(callingform As Form)
  callingform.KnopDieEchtNietStandaardOpEenformVoorkomt.Caption = "blaat"
End Sub


De textbox meegeven als parameter, of een functie maken die gewoon de tekst voor de textbox bewerkt zijn ook goede alternatieven.
Het hangt er helemaal vanaf wat de poster wilt doen met de textbox. Als hij alleen de text wilt vullen, dan kan hij het beste een losse functie maken die een waarde teruggeeft, en daarmee de textbox vullen.
Wil hij echter meerdere properties van een textbox wijzigen, onafhankelijk van de andere controls/waarden van het form, dan kan hij het beste de textbox als parameter meegeven. Zijn de wijzigingen aan de textbox ook nog eens afhankelijk van andere dingen op en aan het form, dan lijkt het form doorgeven mij het eenvoudigst.

  • Shadowzon
  • Registratie: Januari 2001
  • Laatst online: 17:04
Verwijderd schreef op 12 maart 2004 @ 11:12:
Het form van waaruit je de functie aanroept toevoegen aan de parameters lijkt me de beste oplossing. DUs zoiets als
code:
1
2
3
public sub Blaat ( Callingform as form) 
  callingform.caption = "blaaaaaat"    
end sub
Bedankt dit was voor mij de oplossing ( :? een beetje stom dat ik dit zelf niet had uitgevonden doe dit al meer dat ik een string wist niet van het bestaan van form)

THANX!!!