Juli 02, 2022, 20:21:35

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Nach Login Formular öffnen und Seiten des Registersteuerelements ausblenden

Begonnen von Carassius, Juni 21, 2022, 13:38:09

⏪ vorheriges - nächstes ⏩

Carassius

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

DF6GL

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"?

Beaker s.a.

Hallo Franz,
Da hat beim Kopieren der Zeile nur vergessen den Index zu ändern.

gruss ekkehard

wurde gerade korrigiert wie's scheint
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

Carassius

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 ;-)

MzKlMu

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.
Gruß
Klaus

Beaker s.a.

DoCmd.OpenForm "Menu"
Forms("Menu").RegisterMenu.Pages(0).Visible = True
Forms("Menu").RegisterMenu.Pages(1).Visible = False
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

Carassius

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


Zitat
Zitatbekomme 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...



Carassius

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 ;-/

Carassius

Zitat von: Carassius am Juni 22, 2022, 06:59:40
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 ;-/

Manomanomanomann!!! Wenn man den Wald vor lauter Bäumen nicht sieht!!

Jetzt funzt's :-) :-)

Danke @Beaker s.a.