16. oktober 2009 - 22:07Der 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.
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
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"
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
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"
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.