Avatar billede dp2001 Juniormester
31. januar 2001 - 01:03 Der er 18 kommentarer og
1 løsning

Login-formular

Enten har jeg ikke luret Access af, hvad angår login mv. og sikkerhed. Men jeg vil gerne lave en login-formular, hvor hvis det går godt (dvs. at indtastningsfelt til password = password i DB) skal gøre, at man loader en ny formular (startmenu), forkert password skal gøre, at login-formularen loades igen.

Jeg har prøvet at lave dette i VB, men da jeg ikke er en haj til dette, vil jeg høre om der er nogle, der kan kommandoen til at åbne en formular.

Jeg regnede med noget i stil med...

Private Sub password_indtastning_AfterUpdate()
If Me.password_indtastning = 1 Then
Open.Form Startmenu

Else

Open.Form Login

End If


End Sub



Nogle der har en ide?
Avatar billede dp2001 Juniormester
31. januar 2001 - 01:05 #1
Hvis man nu benyttede sig af Access halløjsa omkring brugeradgange mv., er der så en kommando, der kan sætte =user, så man kan begrænse formularer mv. udfra user-id?
Avatar billede ikuyucu Nybegynder
31. januar 2001 - 08:37 #2
Du kan åbne en formular med kommandoen DoCmd.OpenForm. Her kommer lige et eksempel:

    Dim stDocName As String
    Dim stLinkCriteria As String

    stDocName = \"startmenu\"
    DoCmd.OpenForm stDocName, , , stLinkCriteria

Denne kode skal du komme med når du checker når passwordet er korrekt.
Du lukker en formular med:
DoCmd.Close acForm, \"Formular_navn\"
Avatar billede dp2001 Juniormester
31. januar 2001 - 11:03 #3
Hvordan bygger jeg den ind i en IF-sætning?

Hér er hvad jeg tror det skal være (ved godt det er forkert)...vil gerne have at man bliver hængende på login-formularen, hvis man ikke har passwordet korrekt.

Private Sub pw_ind_AfterUpdate()
If Me.check = 1 Then

    Dim stDocName As String
    Dim stLinkCriteria As String

    stDocName = \"startmenu\"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
   
Else

    Dim stDocName As String
    Dim stLinkCriteria As String

    stDocName = \"login\"
    DoCmd.OpenForm stDocName, , , stLinkCriteria

End Sub
Avatar billede ikuyucu Nybegynder
31. januar 2001 - 11:18 #4
Du skal ikke have nogen else-sætning. Du skal også lige huske at lukke for din loginform. Jeg ved ikke hvordan du har tester, men det hele skal jo være i samme sub.

Hvorfor ikke lave en knap som hedder Login som har det hele i sig.
Avatar billede fdata Forsker
31. januar 2001 - 15:57 #5
Hvorfor vil du selv programmere login? Det ligger jo og venter på dig i arbejdsgruppe-begrebet. Opret en arbejdsgruppe, opret brugerne og  tilknyt dem. Så klarer Microsoft resten for dig. Du får endda rettigheder med i købet.
Avatar billede dp2001 Juniormester
31. januar 2001 - 17:02 #6
jeg synes bare mine erfaringer vedr. arbejdsgrupper er, at hvis jeg opretter nogle brugere mv., så ligger brugerne kun \'lokalt\' på min maskine af en eller anden årsag. Jeg skal bruge det på 4 PC\'s på arbejde, hvor det skal ligge på et fællesdrev.
Avatar billede fdata Forsker
31. januar 2001 - 17:28 #7
Det er fordi du bruger standardarbejdsgruppen, som ligger på C: (og det er i øvrigt ikke helt smart i en flerbrugersituation). Here goes:

1. Brug Arbejdsgruppeadministrator til at oprette en arbejdsgruppe, som du placerer i samme mappe som databasen - på serveren!

2. Opret brugerne i den nye arbejdsgruppe.

3. Gå rundt på de 4 arbejdsstationer og tilknyt dem den nye arbejdsgruppe.

Hokus pokus. Nu kan du styre brugere, grupper, rettigheder osv.

Avatar billede dp2001 Juniormester
31. januar 2001 - 17:42 #8
fdata...

øøøhhh....det fatter jeg ikke meget af, jeg har lavet en ny gruppe nu, men hvordan fanden styrer jeg, hvor jeg vil lægge den fysisk?
Avatar billede dp2001 Juniormester
31. januar 2001 - 17:49 #9
ikuyucu...

vi bliver nødt til at tage den fra start af igen..

jeg har en tabel bruger, hvori jeg har tre kolonner user, navn og pw

jeg har så lavet en formular uden postkilde, hvor jeg har to tekstfelter user_ind og pw_ind, man kan skrive i. Et hvor man skal angive user og et hvor man skal angive password.

jeg har yderligere en skjult tekstboks (check), der skal (bemærk skal, jeg kan ikke få det til at virke) slå op i user tabellen og finde en tilsvarende record som den der er angivet i user_ind tekstboksen.

jeg har så endeligt en button, der har en hændelsesprocedure der siger, at hvis pw_ind = check, så skal man loade startmenu formularen.

er det sådan nogenlunde rigtigt, det jeg forsøger at gøre, eller er det skønne spildte kræfter?

en anden ting...kan jeg godt både lukke en formular og åbne en anden i samme Sub? Hvis ja, kan du så også give et eksempel på dette.
Avatar billede fdata Forsker
31. januar 2001 - 18:10 #10
1. Starter Arbejdsgruppeadministratoren
2. Klik Opret
3. Indtast de tre sæt oplysninger
4. Klik OK
5. Her foreslår programmet standardstien og navn. RET DET! (skriv f.eks. F:\\Database\\MinGrp.mdw)
6. Godkend og afslut

Tilslut brugerne via Arbejdsgruppeadministratoren og knappen Tilslut, peg på den nye .mdw fil på serveren.

Thats all
Avatar billede dp2001 Juniormester
31. januar 2001 - 18:57 #11
så langt, så godt...

jeg har tilsluttet mig selv, og får at vide, at jeg er tilsluttet, men under hvilket id er jeg registreret og skal jeg ikke lave en form for tilkobling i Access?!?

hvorfor bliver jeg ikke promptet for et login-id når jeg starter Access. Jeg har defineret tre forskellige login-id\'s.
Avatar billede fdata Forsker
01. februar 2001 - 00:06 #12
Hvis du har oprettet arbejdsgruppen og tilsluttet dig den, burde du ikke kunne starte en .mdb fil uden at Access prompter dig for et login.

Selve login er et traditionelt: Indtast brugernavn og adgangskode.
Avatar billede ikuyucu Nybegynder
01. februar 2001 - 08:19 #13
dp2001: Du skal bruge en knap til at logge ind. Når denne knap bliver trykket kan du bruge record-set og SQL til at slå op i din tabel og derefter sammenligne. Jeg ved ikke om det er hurtigere at jeg laver det for dig i så fald har jeg først tid næste uge. Du kan også bruge access\' hjælp, den er rimelig god hvad recordset angår.
Avatar billede dp2001 Juniormester
01. februar 2001 - 20:06 #14
må indrømme, at jeg er mest hooked på fdata\'s løsning, så den vil jeg prøve mig frem med.

hvad er syntaksen, hvis man vil logge et bestemt user-id (f.eks. hvis man vil skrive user-id\'en ned i en tabel, så man senere kan differentiere poster udfra user-id), eller bruge et bestemt user-id som kriterie....er der en løsning a-la =User() oder was?
Avatar billede fdata Forsker
02. februar 2001 - 00:14 #15
Jada: CurrentUser()

Den kan bruges direkte: if CurrentUser()=\"nn\" then ...

Fik du login til at virke ?
Avatar billede dp2001 Juniormester
02. februar 2001 - 07:49 #16
har ikke fået login til at virke endnu...sidder hérhjemme og leger lige nu, men skal på arbejde i dag og prøve at \'rulle det ud\'.

jeg forstår måske bare stadig ikke, hvordan sammenhængen mellem access-databasen og arbejdsgruppefilen er? Når man laver arbejdsgruppefilen, peger man den jo ikke op imod access-databasen - så det er lidt uklart for mig!?!? er det blot fordi, den ligger i samme dir?

Avatar billede ikuyucu Nybegynder
02. februar 2001 - 09:08 #17
fdata\'s metode er faktisk den bedste, da den bl.a. krypterer passwords osv.
Avatar billede dp2001 Juniormester
02. februar 2001 - 14:27 #18
Så er det vist på tide, at fdata får hans VELFORTJENTE point! Det hele fungerer sgu bare! Kan det også virke over en web-server, så man helt kan undgå ASP?
Avatar billede fdata Forsker
02. februar 2001 - 17:56 #19
Så heldig er du vist ikke. Happy programming :o)
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