Hallo Community,
bin leider erst kurz in Access unterwegs und muss(te) mir alles mit Google, YouTube und Co. zusammensuchen.
Situation wie folgt:
ich habe ein Login-Formular, das mit DLookup Benutzer und Passwort in einer Tabelle prüft und dann entsprechend ein Formular mit einem Registersteuerelement öffnet.
Aktuell habe ich es recht unelegant gelöst und für Benutzer, die nicht alle Register sehen dürfen, das Menü-Formular kopiert und die entsprechenden Register ausgeblendet. Das muss aber schöner gehen ;-)
Mit
Me.RegisterMenu.Pages(1).Visible = False auf einer Schaltfläche kann ich die Seite 1 im Register "RegisterMenu" ausblenden - kein Problem.
Füge ich diese Zeile aber nach dem Aufrufen des Menüformulars "Menu" in den Code des Login-Buttons ein, bekomme ich nur Fehlermeldungen.
Der Code des Login-Buttons ist wie folgt:
If LoginAs = "Administrator" Then
MsgBox "Anmeldung als Administrator erfolgreich", vbInformation, "Login success"
DoCmd.OpenForm "Menu"
Me.RegisterMenu.Pages(0).Visible = True
Me.RegisterMenu.Pages(1).Visible = False
ElseIf LoginAs = "Benutzer" Then
MsgBox "Anmeldung als Benutzer erfolgreich", vbInformation, "Login success"
DoCmd.OpenForm "Menu"
Me.RegisterMenu.Pages(0).Visible = False
Me.RegisterMenu.Pages(1).Visible = True
Könnt ihr mir bitte weiterhelfen?
Danke & VG
Hallo,
"ME" bezieht sich auf das aktuelle Formular, in dem der Code läuft und nicht auf das Form "Menu".
Außerdem, was soll das Einstellen der Registerseite-Sichtbarkeit (Visible) auf "True" und gleich danach auf "False"?
Hallo Franz,
Da hat beim Kopieren der Zeile nur vergessen den Index zu ändern.
gruss ekkehard
wurde gerade korrigiert wie's scheint
Hallo DF6GL,
Danke erstmal!
Zitat von: DF6GL am Juni 21, 2022, 13:47:52"ME" bezieht sich auf das aktuelle Formular, in dem der Code läuft und nicht auf das Form "Menu".
Tja, da setzt es jetzt bei mir aus... was muss da dann stehen?
Menu.RegisterMenu.Pages(0).Visible = ... hätte ich probiert, auch Fehler :-/
Zitat von: DF6GL am Juni 21, 2022, 13:47:52Außerdem, was soll das Einstellen der Registerseite-Sichtbarkeit (Visible) auf "True" und gleich danach auf "False"?
Fehler meinerseits, sorry! Hab den Code etwas "abgespeckt" damit die Bezeichnungen leichter zu verstehen sind und das beim c&p übersehen - im original Code passt's aber,a uch wenn's nicht geht ;-)
Hallo,
Zitatim original Code passt's aber,a uch wenn's nicht geht ;-
Zeige bitte den vollständigen Originalcode.
Zitatbekomme ich nur Fehlermeldungen.
Eine solche allgemeine Beschreibung hilft auch nicht.
DoCmd.OpenForm "Menu"
Forms("Menu").RegisterMenu.Pages(0).Visible = True
Forms("Menu").RegisterMenu.Pages(1).Visible = False
Zitat von: MzKlMu am Juni 21, 2022, 15:20:57Zeige bitte den vollständigen Originalcode.
Daran darf's eigentlich nicht liegen, weil ohne den Versuch des Ein-/Ausblendens funktioniert der ja. Aber hier ist er:
Private Sub ButtonAnmelden_Click()
Dim LoginAs As String
Dim LoginGroup As String
LoginAs = Me.Username
'LoginGroup = Me.Usergroup
'Prüft, ob Eingabe in Benutzer bzw. Passwort
If Nz(Me.Username, "") = "" Or Nz(Me.Password, "") = "" Then
MsgBox "Bitte geben Sie Benutzer UND Passwort ein!", vbExclamation, "Eingaben fehlerhaft"
Me.Username.SetFocus
'Username und Passwort eingegeben
Else
'Prüfung, ob Username in Tabelle "Users" existiert
If IsNull(DLookup("Username", "tblUsers", "Username='" & Me.Username & "'")) Then
MsgBox "Benutzername nicht korrekt", vbExclamation, "Benutzername eingeben"
Me.Username.SetFocus
'Prüfung, ob Passwort zum Benutzer gehört und ob es korrekt ist
ElseIf IsNull(DLookup("Password", "tblUsers", "Username='" & Me.Username & "' AND Password='" & Me.Password & "'")) Then
MsgBox "Passwort nicht korrekt", vbExclamation, "Passwort eingeben"
Me.Password.SetFocus
'Kombination Username und Password korrekt
Else
DoCmd.Close acForm, "frmLogin"
If LoginAs = "Administrator" Then
MsgBox "Anmeldung als Administrator erfolgreich", vbInformation, "Login success"
DoCmd.OpenForm "Menu"
Me.RegisterMenu.Pages(0).Visible = True
Me.RegisterMenu.Pages(1).Visible = False
ElseIf LoginAs = "Benutzer" Then
MsgBox "Anmeldung als Benutzer erfolgreich", vbInformation, "Login success"
DoCmd.OpenForm "Menu"
Me.RegisterMenu.Pages(0).Visible = False
Me.RegisterMenu.Pages(1).Visible = True
End If
End If
End If
End Sub
ZitatZitatbekomme ich nur Fehlermeldungen.
Eine solche allgemeine Beschreibung hilft auch nicht.
ja, da hätt ich selber dran denken können.
Aktuell bekomm ich den Laufzeitfehler '2467' - Verweis auf Objekt, das geschlossen oder nicht vorhanden ist; hatte auch schon den 438 und ein paar andere, wenn ich mit Varianten probiert habe. Alle hab ich nicht mehr parat...
Zitat von: Beaker s.a. am Juni 21, 2022, 18:03:25DoCmd.OpenForm "Menu"
Forms("Menu").RegisterMenu.Pages(0).Visible = True
Forms("Menu").RegisterMenu.Pages(1).Visible = False
Produziert leider den Laufzeitfehler '2465' - Anwendungs- oder objektorientierter Fehler ;-/
Zitat von: Carassius am Juni 22, 2022, 06:59:40Zitat von: Beaker s.a. am Juni 21, 2022, 18:03:25DoCmd.OpenForm "Menu"
Forms("Menu").RegisterMenu.Pages(0).Visible = True
Forms("Menu").RegisterMenu.Pages(1).Visible = False
Produziert leider den Laufzeitfehler '2465' - Anwendungs- oder objektorientierter Fehler ;-/
Manomanomanomann!!! Wenn man den Wald vor lauter Bäumen nicht sieht!!
Jetzt funzt's :-) :-)
Danke
@Beaker s.a.