Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

weißer Bildschirm, Formular wird nicht geöffne...

Begonnen von datekk, Oktober 18, 2015, 19:08:28

⏪ vorheriges - nächstes ⏩

datekk

Hi. Ich habe in meiner Datenbank eine Rechte-Verteilung eingebaut. Normalen Usern soll das Ribbon und das seitliche Menü mit den ganzen Formularen, Abfragen usw. verborgen bleiben. Hierfür nutze ich folgenden Code:

Option Compare Database

Private Sub Befehl24_Click()


Dim UserPass As String

UserPass = DLookup("Passwort", "Vertrieb", "ID_Vertrieb=" & Me.LogUser)

If Me.txtPass = UserPass Then

Call SetVars

DoCmd.OpenForm "Zentrale"
DoCmd.Close acForm, "Login"

Dim UserState As String

UserState = DLookup("Rolle", "Vertrieb", "ID_Vertrieb=" & p_UserloginID)

If UserState = "User" Then

    DoCmd.NavigateTo "acNavigationCategoryObjectType"
    RunCommand acCmdWindowHide
    DoCmd.ShowToolbar "Ribbon", acToolbarNo
   
    Else
   
    DoCmd.SelectObject acTable, , True
    DoCmd.ShowToolbar "Ribbon", acToolbarYes
   
End If


Else

MsgBox "Falsches Passwort!!! Eingabe wiederholen!!!"

End If


End Sub

Private Sub Form_Open(Cancel As Integer)

DoCmd.NavigateTo "acNavigationCategoryObjectType"
RunCommand acCmdWindowHide
DoCmd.ShowToolbar "Ribbon", acToolbarNo
End Sub


Ich habe nun das Problem, dass sich bei den "Usern" das Formular "Zentrale" nicht öffnet sondern diese nur einen weißen Bildschirm sehen. Wo ist im Code denn das Problem?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MaggieMay

Hi,

ich hätte dazu noch drei Fragen:
- was macht die Prozedur "SetVars"?
- was ist bzw. woher kommt "p_UserloginID"?
- was passiert im Formular "Zentrale", gibt es Code dazu?
Freundliche Grüße
MaggieMay

datekk

Hi MaggieMay,

die Prozedur "SetVars" setzt öffentliche Variablen, angepasst an den sich anmeldeten User. Also z.B. Pfadangaben für Verzeichnisse in die die Datenbank Dateien ablegen soll.

p_UserloginID ist die ID des sich anmeldeten Users. Die Variable wird ebenfalls mit SetVars festgelegt. Hierbei übergibt die Prozedur den Wert aus dem Steuerelement LogUser des Login-Formulars an diese Variable.

Zentrale ist ein einfaches Formular, welches im wesentlichen Schaltflächen enthält. Es enthält außer "Bei Klick" Anweisungen keinen weiteren Code.

Das scheint aber alles soweit ok zu sein. Wenn Userstate = User ist (also die vergebene Rolle), dann tritt das Problem auf. Ist die Rolle z.B. Admin, tritt der Fehler nicht auf und Zentrale wird geladen und angezeigt.

Der Code unterscheidet sich an der IF Abfrage. Für "User" werden die Befehle

    DoCmd.NavigateTo "acNavigationCategoryObjectType"
    RunCommand acCmdWindowHide
    DoCmd.ShowToolbar "Ribbon", acToolbarNo
   
ausgeführt um den "User" keinen Zugriff auf die Formulare, Abfragen, Berichte usw. zu geben. Einer davon scheint das öffnen oder das anzeigen von Zentrale zu verhindern..
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MaggieMay

Das überzeugt mich nicht, das Formular müsste sich doch auch ohne Ribbon öffnen lassen. Das könntest du aber doch einfach mal schrittweise im Unterbrechungsmodus austesten.
Freundliche Grüße
MaggieMay

datekk

Ich hab es umgeschrieben.. Jetzt läufts:

Option Compare Database

Private Sub Befehl24_Click()


Dim UserPass As String
Dim UserState As String

UserPass = DLookup("Passwort", "Vertrieb", "ID_Vertrieb=" & Me.LogUser)

If Me.txtPass = UserPass Then

    Call SetVars

    DoCmd.OpenForm "Zentrale"
    DoCmd.Close acForm, "Login"
    UserState = DLookup("Rolle", "Vertrieb", "ID_Vertrieb=" & p_UserloginID)

    If UserState = "Admin" Then
 
        DoCmd.SelectObject acTable, , True
        DoCmd.ShowToolbar "Ribbon", acToolbarYes
   
    End If


Else

MsgBox "Falsches Passwort!!! Eingabe wiederholen!!!"

End If


End Sub

Private Sub Form_Open(Cancel As Integer)

DoCmd.NavigateTo "acNavigationCategoryObjectType"
RunCommand acCmdWindowHide
DoCmd.ShowToolbar "Ribbon", acToolbarNo
End Sub


Warum auch immer...
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MaggieMay

Ich vermute es kommt darauf an, worauf sich dieser Befehl zum Zeitpunkt der Ausführung bezieht:
RunCommand acCmdWindowHide
denn du kannst ja nicht explizit angeben, welches Fenster du meinst.

Vielleicht fühlte sich ja das gerade geöffnete Formular angesprochen? ;-)
Freundliche Grüße
MaggieMay

datekk

Ja, so wird es wohl sein. Nach der Umstellung läuft alles gut. Dennoch vielen Dank.
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps