[Access]Macro voor meerdere formulieren gebruiken

Pagina: 1
Acties:

  • RvL
  • Registratie: Maart 2002
  • Laatst online: 23:04
Hallo allemaal,

ik heb een macro, heel simpel, die na een druk op de knop de huidige datum in een tekstveld zet (de mutatiedatum) en hiermee de vorige mutatiedatum in dat veld en de tabel vervangt.

Nu heet dat veld in ieder formulier hetzelfde: txtMutdat. De macro heb ik nu zo dat hij alleen het veld txtMutdat in het form frmAlgGeg veranderd. Aangezien het veld overal hetzelfde heet lijkt het me mogelijk om deze macro voor alle velden txtMutdat voor alle formulier die open staan te laten werken. Ik onderstreep die 3 woorden omdat dat van zeer zeker van belang is voor de consistentie van de database.

Heeft iemand een oplossing voor deze macro? Of wellicht een compleet andere oplossing (altijd welkom ;) )

Liefde maakt een smal bed breed!
Nu de dekens nog...


  • KingRichard
  • Registratie: September 2002
  • Laatst online: 21-03-2025

KingRichard

former Duke of Gloucester

Klik in de objectbrowser op Macro's, maak een nieuwe macro ZetDatumNu, zet daarin de opdracht SetValue met de volgende parameters: Item=[txtDatum], Expression=Now().
Maak in een elk relevant formulier een CommandButton die de macro ZetDatumNu start. Klaar! :)

a horse! a horse! my kingdom for a horse! (exeunt)
[got.profile] | [t.net.profile] | [specs]


  • RvL
  • Registratie: Maart 2002
  • Laatst online: 23:04
Dat werkt inderdaad voor het formulier waar de knop in zit. Het probleem is echter dat ik in een aantal formulieren subformulieren aanroep, waar ook een veld txtMutDat in staat. Deze zou ik gelijktijdig mee willen veranderen.

Nu kan ik daar natuurlijk heel simpel een knop inzetten, maar dat zal de gebruikersvriendelijkheid niet ten goede komen. En het programma moet min of meer monkeyproof zijn.

offtopic:
Waarom moest mn voorganger dit nou perse helemaal in Access/VBA maken... was toch in Java begonnen....

Liefde maakt een smal bed breed!
Nu de dekens nog...


  • Boss
  • Registratie: September 1999
  • Laatst online: 23:16

Boss

+1 Overgewaardeerd

Dit gaat heel lastig via een macro, je zal toch aan de VBA moeten.

Je kan uitozken of een formulier een subformulier is, en dan in de code naar het subformulier verwijzen ipv naar het formulier.
Ik geloof dat bijvoorbeeld Me.Name en Me.Parent.Name hetzelfde zijn als je in een gewoon form zit, en verschillend als je in een subform zit.

Daarna kan je (afhankelijk van hoofd of subform) de datum in het veld instellen.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


  • KingRichard
  • Registratie: September 2002
  • Laatst online: 21-03-2025

KingRichard

former Duke of Gloucester

Ik had je startpost verkeerd begrepen. :P
Met VBA moet dit niet zo moeilijk zijn. Uit mijn hoofd (ik heb even geen Acces bij de hand):
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub ZetMutDat(datInput as Date)

    Dim frmOpenForm as Form

    On Error Resume Next  ' Als MutDat niet in het formulier zit, gewoon doorgaan...
    
    For Each frmOpenForm in Forms

        frmOpenForm.MutDat.Value=datInput

    Next frmOpenForm

End Sub
Bij het Click-event van de knop(pen) zet je ZetMutDat(me.MutDat.Value). Ik kan niet checken of het werkt, maar ik hoop dat je hiermee verder kunt. :)
edit:
Voor de volledigheid, de collectie Forms bevat alleen formulieren die op dat moment open staan. Als je MutDat wilt vullen op het moment dat de gebruiker een subformulier opent, zul je het event Form_Load moeten gebruiken.

[ Voor 20% gewijzigd door KingRichard op 04-03-2004 17:44 ]

a horse! a horse! my kingdom for a horse! (exeunt)
[got.profile] | [t.net.profile] | [specs]


  • RvL
  • Registratie: Maart 2002
  • Laatst online: 23:04
Kijk, daar kan ik wat mee! Hartstikke bedankt, ga het morgen eens uitproberen!

Liefde maakt een smal bed breed!
Nu de dekens nog...


  • Boss
  • Registratie: September 1999
  • Laatst online: 23:16

Boss

+1 Overgewaardeerd

Ook lekker als je meerdere formulieren open hebt staan, maar slechts op eentje een mutatie hebt gedaan.....

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.

Pagina: 1