Avatar billede danethan Nybegynder
21. maj 2001 - 12:35 Der er 4 kommentarer og
1 løsning

Logon USER NAME og Form kontrol

Jeg bruger Access 2000 og vil gerne kunne sammenligne logon USER NAME med indtastede navne i en records.
Herefter må logon user\'en kun kunne rette / oprette records (i en form) hvor logon USER NAME og det indtastede navn matcher hinanden.

Er der nogen som har en løsning på dette ( Kode eller hints)

MVH / DE
21. maj 2001 - 12:47 #1
Du får brugernavn ved at sprøge på: Currentuser (hvis du altså benytter Access\' egen sikkerhed!)
Hvis du selv har lavet din egen Logon-form, hvor brugeren logger på, så må du gemme brugernavnet et sted, hvor du kan fange den til hver en tid. Det kan f.eks. være i en public variabel.

På din data-formular, hvor du ønsker at styre rettighederne, kan du på \"Ved Aktuel\"-hændelsen (On Current) sammenligne om brugeren er den samme som står i posten.
F.eks. således:

Private sub Form_Current()
  If Me!UserID = CurrentUser then
      Me.Allowedit = true
  else
      me.Allowedit = false
  end if
end sub

På formens \"indlæsning\"-hændelse kan du så sætte UserID\'s standardværdi til at være CurrentUser, således at nye poster altid bliver registreret som oprettet af den aktuelle bruger.

Private Sub Form_Load()
  Me!UserID.DefaultValue = Currentuser
end sub

Just an idea...

mvh Thomas
Avatar billede danethan Nybegynder
21. maj 2001 - 22:56 #2
Hej Thomas

Det er lidt af det rigtige som du er inde på, da jeg bruger Acceses egen Logon, men jeg skal også bruge de andre oplysninger som jeg har sammen med UserNavn.

F.eks jeg har allerede indtastet følgende i en form1 som bliver til følgende tabel design
UserID  (autonummer)
UserName (Text)
FirstName (Text)
LastName (Text)
osv.

i en anden f.eks form2 vil jeg så have at en Combo Box, List Box eller Text Box skal SELECT UserName udfra CurrentUser (UserName skal være lig CurrentUser), herefter skal tilhørende FirstName, LastName osv. recordes sammen i en ny tabel.

P.S Jeg forstår ikke helt din \"indlæsning\"-hændelse og \"Ved Aktuel\"-hændelsen (On Current)
Jeg har en engelsk version af Access 2000 og kan ikke finde noget som hedder \"On Current\" (kun \"On Click\", \"on DblClick\" etc. hvor jeg kan lave en [Event Procedure].
Som du nok har regnet ud befinder jeg mig inde i Combo Box\'ens Propertiers - måske leder jeg et helt forkert sted ?

Mvh DE
22. maj 2001 - 07:58 #3
Hej DE,

OnCurrent- og OnLoad- (indlæsning) hændelserne finder du hvis du kigger på egenskaberne for hele formularen, og ikke kun et kontrolobjekt.

/Thomas
Avatar billede danethan Nybegynder
22. maj 2001 - 09:03 #4
Hej Thomas

Tak for tippet :-)
Det lysner så her er lidt point, jeg kan dog ikke helt få det til at virke da den ikke kan finde UserID of ikke accepterer Allowedit
22. maj 2001 - 13:53 #5
Har du lavet UserID til en global (public) variabel? Den skal ligge i starten af et modul og skrives således:

Public UserID as Long

Mht AllowEdit, så hedder den Me.AllowEdits (med S på) - sorry. Man er blevet så vandt til at Access selv udfylder kommandoerne mens man skriver, at man ikke længere kan huske hvad de hedder, når man skal skrive dem uden for VBA-editoren :-(

/Thomas
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester