Mit welchem VBA kann ich die Fehlermeldung, die kommt, wenn der User keine Berechtigung hat das BE zu lesen, individualisieren? Gibt es da was Vorbereitetes?
Carl
Hallo,
wer bzw. was gibt den welche konkrete Fehlermeldung aus?
Wer bzw. was verhindert den Zugriff auf's BE?
Das BE liegt in einem Ordner, auf den nur zugriffsberechtigte User Zugriff haben. Diese bekommen auch das FE zugeschickt.
Wenn jetzt ein zugriffsberechtigter User das FE an einen nicht-zugriffsberechtigten User weiter schicken würde, dann würde bei diesem nicht-zugriffsberechtigten User beim Öffnen des FE eine Fehlermeldung erscheinen die sagt, dass er nicht auf das BE zugreifen oder dass ein Fehler vorliegt.
Diese Fehlermeldung ist schwer verständlich und ich würde sie gern neu formatieren und vereinfachen und ersetzen. D.h. sie soll unterdrückt werden und statt dessen soll eine vorbereitete Fehlermeldung kommen, z.B. ein kleines Formular.
Wie macht man das? Gibt es dafür z.B. einen Code, den man in ein globales Modul einfügen kann?
Carl
Hallo,
die jetzige Fehlermeldung muss doch aber auch jemand programmiert haben.
Access hat von Hause aus keine Userverwaltung (mehr) und kann somit keine Berechtigungen kontrollieren.
Hallo,
du solltest im Autostart(Makro) prüfen, ob das BE existiert und gegebenfalls ob Schreibrechte existieren.
Da du vermutlich/hoffentlich mit UNC-Pfad arbeitest, kannst du das FSO-Objekt dafür nutzen.
Den Pfad zum BE kannst du fest vorgeben, aus einer Tabelle lesen oder optimal aus einer Tabellenverknüpfung ermitteln.
@Klaus:
Ich denke es geht um Windowsrechte.
Bitte lest #3 nochmal.
Wenn ein nicht auf das BE zugriffsberechtigter User das FE öffnet, generiert das FE eine normale Access-Fehlermeldung in einem grauen Access-Fehler-Meldungsfenster. Das würde ich gern durch ein selbst formatiertes Fenster ersetzen.
Grund: Das graue Access-Fehler-Meldungsfenster a la "Finde Tabelle sowieso nicht oder blah blah blah" sieht aus wie ein Programmierfehler. Statt dessen soll aber der User zurück gemeldet bekommen, dass er nicht berechtigt ist. Damit er weiß worum es geht.
Hallo,
Du solltest präziser sein und den genauen Wortlaut der Fehlermeldungen zeigen...
Vermutlich wird diese Meldung dann erzeugt, wenn ein gebundenes Formular geöffnet wird.
In diesem Fall kann die Ereignis-Eigenschaft "Bei Fehler" des Form benutzt werden, um eine user-definierte Meldung anzuzeigen und/oder entspr. zu reagieren:
Private Sub Form_Error(DataErr As Integer, Response As Integer)
If DataErr = 3024 Then
MsgBox "Keine Berechtigung"
Response= acDataErrContinue
Docmd.Close
Application.Quit
End If
End Sub
Hallo Carl,
ich habe extra geschrieben im AutoExec-Makro.
Das wird als erstes ausgeführt, bevor irgendwelche Formulare geöffnet werden. Dort hinterlegst du eine Funktion, die schaut ob das BE erreichbar ist, wenn nicht kannst du dein Fehlerformular öffnen und anschließen gleich noch die DB schließen.
okay, ich probier's