Avatar billede 49jensen Nybegynder
16. oktober 2009 - 22:07 Der er 8 kommentarer og
1 løsning

Åbne en formular udfra kreterier i et LogIn modul.

Jeg har følgende LogIn module som virker ok, men jeg ønsker at ændre det, så jeg kan vælge hvem der skal have
adgang til forskellige dele af datebasen, ved at åbne forskellige formularer.
Det jeg efterlyser er en stump kode som jeg kan lægge ind i det eksisterende Login module.

        Private Sub Kommandoknap1_Click()
If Password.Value = Nz(DLookup
("SignCode", "TblClearedStaffInfo", "Initials='" & Username.Value & "'"), "") Then
DoCmd.Close
DoCmd.OpenForm "FrmX"
End If
End Sub

I tabellen "TblClearedStaffInfo" har jeg har jeg et felt "Clearing"som indeholder formularnavne.
Når der logges ind med Initialerne "PEN" (Username) og SignCode "000000" (Password) skal formularen som er
nævnt i feltet "Clearing" åbnes ("FrmLogIn")  Hvis der logges ind med f.eks. "HAN" og "111111" skal formularen
"FrmWorkshopDocumentation" åbnes.

Alle felter er af datatypen "tekst".
Avatar billede mugs Novice
16. oktober 2009 - 22:17 #1
Du må kunne lave en form for Select Case struktur der måler på adgangskoden i stil med dette:

Dim VARa as string
VARa = Din DLookUp
Select case VARa
Case Is = "Et eller andet"
docmd.openform "Form1"
Case is = "noget andet"
docmd.openform "Form2"
'o.s.v.
end select
Avatar billede 49jensen Nybegynder
17. oktober 2009 - 14:18 #2
Det kan jeg ikke få til at virke.
Min kode ser nu således ud, men der sker intet.

Private Sub Kommandoknap1_Click()
Dim VARa As String
If Password.Value = Nz(DLookup("SignCode", "TblClearedStaffInfo", "Initials='" & Username.Value & "'"), "") Then

VARa = DLookup("Clearing", "TblClearedStaffInfo", "Initials=Username.Value")

Select Case VARa
Case Is = "FrmPilotLogIn"
DoCmd.OpenForm "FrmPilotLogIn"

Case Is = "FrmWorkshopDocumentation"
DoCmd.OpenForm "FrmWorkshopDocumentation"

End Select

End If

End Sub
Avatar billede mugs Novice
17. oktober 2009 - 15:08 #3
Du måler jo på en form. Case skal måle på en adgangdkode eller bruger, og hvis denne er et eller andet, så skal der åbnes en bestemt form, hvis Case er noget andet sker der også noget andet.

I dit eksempel måler du jo et formularnavn.

Case Is = "FrmPilotLogIn"
DoCmd.OpenForm "FrmPilotLogIn"

Case Is = "FrmWorkshopDocumentation"
DoCmd.OpenForm "FrmWorkshopDocumentation
Avatar billede 49jensen Nybegynder
17. oktober 2009 - 16:43 #4
I Case Is = "FrmPilotLogin" er "FrmPilotLogIn" det der står i feltet "Clearing" i TblClearedStaffInfo , hvor "Password" og "Username" stemmer overens. Feltværdien er "FrmPilotLogIn"

Nedennævnte kode virker tildels, når jeg indtaster Username og Password der svarer til "FrmWorkshopDocumentation" åbnes formularen "FrmWorkshopDocumentation" og LogIn formularen lukkes
men hvis jeg indtaster værdier som svarer til "FrmPilotLogIn" åbnes "FrmPilotLogIn" ikke, men LogIn formularen lukkes.
Så noget tyder på at der ikke søges i hele tabellen "TblClearedStaffInfo"

Private Sub Kommandoknap1_Click()

If Password.Value = Nz(DLookup("SignCode", "TblClearedStaffInfo", "Initials='" & Username.Value & "'"), "") Then

Dim VARa As String
VARa = DLookup("Clearing", "TblClearedStaffInfo", "Initials = Username.Value")
DoCmd.Close

Select Case VARa
Case Is = "FrmPilotLogIn"
DoCmd.OpenForm "FrmPilotLogIn"

Case Is = "FrmWorkshopDocumentation"
DoCmd.OpenForm "FrmWorkshopDocumentation"

End Select

DoCmd.Close , "FrmLogInMain", acNormal
End If

End Sub
Avatar billede mugs Novice
17. oktober 2009 - 16:50 #5
Prøv at undlade din Close lige efter definitionen af VARa.
Avatar billede 49jensen Nybegynder
17. oktober 2009 - 17:10 #6
Når jeg undlader Close lukkes LogIn formularen ikke men jeg får stadig kun "FrmWorkshopDocumentation" åbnet, ikke "FrmPilotLogIn" formularen.
Avatar billede 49jensen Nybegynder
17. oktober 2009 - 17:20 #7
Det virker nu, det var fejl 40. Forkert formularnavn.Perfekt.
Mange tak. Så mangler jeg bare at give dig point, og det er hermed gjort.
Avatar billede mugs Novice
17. oktober 2009 - 17:25 #8
Tak for point :o)
Avatar billede Slettet bruger
17. oktober 2009 - 21:55 #9
docmd.openform DLookup("Clearing", "TblClearedStaffInfo", "Initials = Username.Value")
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