[Access 97] Met knop uit form A een knop uit form B activere

Pagina: 1
Acties:

  • Triple
  • Registratie: Mei 2000
  • Laatst online: 20-05-2025
Voor alle duidelijkheid, ik bedoel niet cmdKnopB.SetFocus Ik wil met knop A formulier A sluiten, formulier B openen, focus op Knop B in form B zetten en een comando geven om KnopB aan te klikken. Dat van het formulier en de focus is al gelukt, nu nog de code onder Knop B aanroepen.
Als het makkelijker in om vanuit knopA Private Sub KnopB_(Click) aan te roepen is dat ook prima

There is no beast without cruelty, Friedrich Nietzsche


  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Zal het niet makkelijker zijn om gewoon een public function aan te roepen? Die kan je dan vanuit beide formulieren aanroepen als je wil.

  • Triple
  • Registratie: Mei 2000
  • Laatst online: 20-05-2025
Dat zou ook nog een mogelijkheid zijn, zo'n public function, maak ik die in een module??

There is no beast without cruelty, Friedrich Nietzsche


  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Jah dat kun je gewoon in een module proppen en dan kun je hem vanuit je formulier aanroepen.

Verwijderd

Als je formulier B opent worden er een aantal events afgevuurd. Open, Load en daarna de Activate. Wanneer je de focus op Knop_B zet vuurt die het gotfocus event af. Door bijvoorbeeld het Activate event af te vangen kan je simuleren dat er op die bewuste knop is geklikt.

code:
1
   Knop_A_Click


En het werkt.

edit:

En bijna goed met je opmerking over een public function. Normaliter geldt dat als je niets of public voor een functie of sub zet dat hij toegankelijk is voor je complete project. Private daarentegen is alleen beschikbaar voor de huidige module. Als je het hier over hebt dan spreek je over scope. Lees hier meer over. Dit is erg belangrijk. In VB heb je namelijk ook nog Friend en als je classes gaat maken wordt het nog veel leuker.

[ Voor 42% gewijzigd door Verwijderd op 12-12-2002 09:12 ]


  • Triple
  • Registratie: Mei 2000
  • Laatst online: 20-05-2025
LOL eerst dit maar eens!! Het is niet de bedoeling dat ik direct een volleerd programmeur wordt!! :) Op z'n tijd zullen al die andere dingen er ook wel bijkomen.... eerst maar eens kijken of ik een on focus event kan bouwen.

There is no beast without cruelty, Friedrich Nietzsche


  • Triple
  • Registratie: Mei 2000
  • Laatst online: 20-05-2025
Jep! Gelukt met het on focus event.. ik heb nu alleen lompweg de hele private sub van het On Click event ge sleurd en gepleurd.... dat lijkt me niet de meest ideale oplossing... Ik neem aan dat het mogelijk is om de private sub van het On Click event aan te roepen in de private sub van het got focus event.

There is no beast without cruelty, Friedrich Nietzsche


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 25-08 14:38

OZ-Gump

terug van weggeweest

Als ze in de zelfde module staan wel ,anders moet je de OnClick Public maken omdat die dan niet bekend is in de andere module.

My personal website


  • Triple
  • Registratie: Mei 2000
  • Laatst online: 20-05-2025
Ze staan in dezelfde module.. ik heb alleen het probleem dat DoCmd.OpenModule "Modulenaam", "Subnaam" de module opent in een edit scherm zegmaar, en niet de sub uitvoert

There is no beast without cruelty, Friedrich Nietzsche


Verwijderd

Ik heb alleen het probleem dat DoCmd.OpenModule "Modulenaam", "Subnaam" de module opent in een edit scherm zegmaar, en niet de sub uitvoert
Waarom doe je dat?

  • Triple
  • Registratie: Mei 2000
  • Laatst online: 20-05-2025
Euh... hoe zou jij het doen dan? Niet met OpenModule?? Dat leek mij de meest waarschijnlijke optie achter docmd.

There is no beast without cruelty, Friedrich Nietzsche


Verwijderd

Je opent via knop_a op form_A, Form_B. In het open-event van Form_B vuur je de code af die staat in het clickevent van Button_B. Door of het clickevent aan te roepen of een andere functie of door sleur en pleur. en dan vraag ik Waarom gebruik je openmodule. En dan kan volgens mij niet de reden zijn omdat dit de meest logische opdracht achter docmd was. Want dan had je net zo goed docmd.RunCode kunnen doen om een functie uit te voeren in een andere module.

  • Triple
  • Registratie: Mei 2000
  • Laatst online: 20-05-2025
Euh.. DoCmd.RunCode wordt niet echt ondersteund in VBA van Aceess 97, Bij mij wordt dat iig niet herkend. Als ik dus de hele code in het on focus event gooi dan werkt het precies zoals ik wil, maar het is zo lomp! Weer 40 regels code voor de kat z'n *** en daar had ik niet zo veel trek aan

There is no beast without cruelty, Friedrich Nietzsche


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 25-08 14:38

OZ-Gump

terug van weggeweest

Da's te begrijpen. Aan de andere kant, als je een 'programmeur' bent die zijn code opbouwt door 'Te kijken wat er het beste achter de DoCmd past' ben je volgens mij niet goed bezig. Lees eens een boek en bekijk eens wat simpele samples van VB ofzo, want dit gaat helemaal nergens over. Dit werkt:
code:
1
2
3
4
5
6
7
Friend Sub Command0_Click()
  msgbox 'bladiebla'
end sub

Private Sub Command1_click
  me.command0_click
end sub

Zo ingewikkeld is het niet. Je mag ook Public gebruiken, maar dat is hier niet nodig. Ook had je (lees tig posts eerder) de code in een centrale module kunnen zetten om vervolgens de functie van daaruit aan te roepen. Dan maak je het pas echt netjes (want je gedraagt je alsof dat je beweegredenen zijn).

[ Voor 10% gewijzigd door OZ-Gump op 12-12-2002 12:21 ]

My personal website


Verwijderd

OZ_Gump: Precies zoals ik het bedoelde.

Dat van runcode was ook een beetje cynisch eigenlijk. Sorry...

  • Triple
  • Registratie: Mei 2000
  • Laatst online: 20-05-2025
Euh, ja.. het gaat er om dat het er een beetje gestructureerd uit ziet. Ik denk dat het met de code van OZ-Gump wel gaat lukken. Bedant voor de reply's!

There is no beast without cruelty, Friedrich Nietzsche

Pagina: 1