Alles hangt natuurlijk af van in welke omgeving er gewerkt wordt. Netwerk? Standalone-pc's?
Dit is in ieder geval de functie :
Function userid() As String
userid = UCase(Environ("USERNAME"))
End Function
Hierbij is 'USERNAME' een systeemparameter. Als de pc's in een netwerk staan waar er ingelogd moet worden zal er wel ergens een parameter te vinden zijn die iedere user identificeert. 'k Weet niet of er ook zo'n unieke parameter is voor standalone pc's. Je zou eens moeten checken op verschillende pc's door het volgende te vergelijken :
START - RUN - "CMD" intypen + enter (naar DOS gaan dus) en dan het dos-commando "SET" ingeven.
Hiermee krijg je alle environment-parameters. Misschien dat er een parameter is die de pc uniek identificeert en op iedere pc voorkomt.
Indien er niets geschikt is hiervoor, kan je misschien zelf in de autoexec.bat een parameter definieren ( SET gebruikersID=Geert) ofzo.
Hierbij kan je dan userid = UCase(Environ("gebruikersID")) gebruiken in je functie.
't Word natuurlijk moeilijker als er verschillende users op dezelfde pc zijn.
Dan vrees ik dat de enige oplossing is dat je met een gebruikersnaam en een paswoord zal moeten werken bij de opstart van je programma. 'k Weet het, weer een gebruikersnaam en een paswoord, maar 't is een noodzakelijk kwaad. ('t Is zelfs trendy de dag van vandaag. 't Geeft ook een meerwaardegevoel voor de gebruikers van je programma hehehe) De voordelen zijn hiermee dan wel oneindig qua controle over het "wie of wat doen".
Dan moet je ook een tabel aanleggen met de toegangsniveaus voor iedere soort gebruiker. Die gebruikersnaam kan je laten controleren via dezelfde tabel.
vb. NAAM - PASWOORD - RECHTEN
De 'rechten' kan je opslaan in een public variable vb 'rechten' door in een module (onder modules, niet bij de code van een form) gewoon 'public rechten as string' toe te voegen bij het declareren van variabelen in de hoofding. Dit is enkel als je een duidelijke lijn kan trekken tussen wat ze mogen of niet mogen.
Zo kan je de 'ingelogde user' mee opslaan in de tabel waar de datum en de naam van de gebruiker die de wijzigingen aanbracht.
Zou deze uitleg je al een stuk verder kunnen helpen?
Ik denk van wel. Je zal natuurlijk niet alles in deze uitleg kunnen overnemen, maar zo weet je hoe eraan te beginnen.
De beste oplossing om de namen op te vragen is door alle gebruikers in een tabel te zetten en zelf een formpje te maken waar ze individueel moeten inloggen.
Dan heb je al de naam van de gebruikers als object en kan je dat in de tabel zetten. Indien ze een verkeerde of geen naam invullen moet Access afgesloten worden.
Dit kan via code na de controle van de naam.
groeten,
Geert B.