2 gebruikers 1 backend database met een identificatie wie er gemuteerd heeft

Status
Niet open voor verdere reacties.

bikerron

Gebruiker
Lid geworden
9 mei 2009
Berichten
229
Hoi,
Ben even een tijdje niet meer bezig geweest met "ingewikkelde" formulieren en scripts en ben er nog niet achter hoe ik het volgend kan oplossen.

Ik heb 2 Frontend databases (formulieren en daarbij ook de Query's en Macro's) en 1 Backend database, uitsluitend de tabellen.
Bij de tabellen heb ik een veld gemaakt: Mutator, verplicht en default waarde "Onbekend"
(aangezien de beide gebruikers over alle functionaliteit kunnen beschikken wil ik wel vastleggen WIE er een mutatie heeft uitgevoerd)

De vraag is dan ook: Hoe kan ik er voor zorgen dat ik de "Constante" Gebruiker01 of Gebruiker02 laat opslaan bij een mutatie op een record.

Ik kan voor elk formulier wel een vba waarde in het veld me.mutator = "Gebruiker01" (of "Gebruiker02") definiëren maar dat lijkt me een "slordige" oplossen en ik dacht aan het volgende:
Ik werk met een startformulier, en daarin definieer ik een constante Gebruiker01 voor frontend 1 en Gebruiker02 voor frontend 2.
Als ik nu via de Gebeurtenis Gewijzigd deze constanten kan ophalen en opnemen in de tabel dan dacht ik dat ik er was.
Maar hoe zorg ik er voor dat ik de constante vanuit het Startformulier bereikbaar is in de overige formulieren?

Ron
 
Door het startformulier bij het openen de database te openen in een verborgen modus. Zo blijven de gegevens van het formulier altijd beschikbaar. Dit kun je realiseren in een macro met de naam autoexec.
 
Hallo gast0224,
Bedankt voor je reactie. Deze klinkt logisch en ben er dus mee aan de gang gegaan maar....

In de bijgevoegde bijlage heb ik een Macro gedefinieerd maar in de geboden opties zie ik niet een "verborgen modus"
Toen dacht ik dat bij het opstarten van de database je zou kunnen opgeven dat je met een macro kunt starten maar bij deze optie zie ik allen een mogelijkheid voor formulieren.
Wat zie ik over het hoofd?

Is er soms ook een optie om een variabele in een module op te slaan o.i.d? Modules zijn volgens mij altijd te raadplegen maar.... Hoe stel je zoiets dan weer in.
(ik ben echt geen VBA kenner)

Ron

Start.JPG
Macro.JPG
 
Als je versie 2010 hebt, moet er bij Venstermodus een optie verborgen staan. Als je de macro autoexec noemt, dan start hij automatisch op, tenminste in Access 2003 is dat zo. Ik zal het eens testen in 2010.

Edit:
Net getest. Het werkt ook in 2010.
 
Laatst bewerkt:
gast0224,
Ik werk inderdaad met Access 2010.
Je geeft aan:
moet er bij Venstermodus een optie verborgen staan
Waar kan ik dit vinden en welke optie bedoel je?

Ron
 
Kijk eens bij je eigen Macro.jpg plaatje die je hierboven hebt geplaatst. Daar staat de venstermodus op standaard, boven nieuwe actie toevoegen.
 
gast0224,
Ik heb het begrepen én ingesteld.
Maar dan het volgende:
Blijkbaar zorgt deze macro er dan voor dat ALLE aanwezige formulieren worden "doorlopen" en er komt een boodschap dat macro's 19 maal kunnen worden aangeroepen.
(zie bijlage) Macromelding.JPG

Ik heb inderdaad 19 formulieren maar ik wil er dus maar 1.
Nu dacht ik dat opgelost te hebben door het invullen van de where clause maar dat geeft geen soelaas.

Nog suggesties?

Ron
 
Ik begrijp niet dat alle formulieren worden aangeroepen. Je vult in de macro toch maar 1 formuliernaam in. Deze ervaring heb ik niet in de 2003 versie.

Zet even een voorbeeld bestand hier (kan in 2010). Dan kijk ik er even naar.
 
gast0224,

Ik waardeer zeer je inspanningen om mij te helpen.:thumb:

De database (access 2007/2010) bevat lege tabellen, het gaat er dus om waarom de macro niet doet wat ik (we) denken dat hij moet doen.

Nog even een toelichting:

De waarde van Ident, zoals gedefinieerd bij het startformulier, moet door middel van een mutatie (uitgevoerd door één van de onderhoudsformulieren) worden weggeschreven in tabel veld : Mutator
Geprobeerd de bijlagen te verwijderen, blijkbaar kan dat niet meer.
 

Bijlagen

  • test.part01.rar
    100 KB · Weergaven: 18
  • test.part02.rar
    100 KB · Weergaven: 15
  • test.part03.rar
    100 KB · Weergaven: 16
  • test.part04.rar
    24,1 KB · Weergaven: 19
Laatst bewerkt:
Je moet de macro starten opdracht in de macro verwijderen.

Andere methode is om het via code de ingelogde gebruiker in een formulier te tonen, of je maak een functie aan in een module. Zie bijlages. De environ.rar via code in formulier. Database1.rar via functie in de module. In dit voorbeeld wordt de functie aangeroepen bij het openen van het formulier. De functie kun je ook aanroepen in de eigenschap "Besturingselementbron" van het tekstveld. Je zet dan in de eigenschap =MyUser().
 

Bijlagen

  • Database1.rar
    17 KB · Weergaven: 21
  • Environ.rar
    16,1 KB · Weergaven: 26
Laatst bewerkt:
gast0224,:thumb:

Zeer bedankt.
Ik heb gekozen voor het gebruik van een Module.

Ron
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan