Ich versuche, eines meiner Formulare mit einem Kennwort zu schützen, aber beim Starten des Formulars wird ein Fehler angezeigt. HierKennwort, das ein Formular schützt
ist der Fehler, den ich erhalten:
Der Ausdruck auf Öffnen Sie als die Ereigniseinstellung von Eigenschaft den folgenden Fehler erzeugte: Prozedur-Deklaration nicht viel Beschreibung des Ereignisses oder Prozedur mit dem gleichen Namen.
Hier ist mein Code:
Option Compare Database
Public Sub Form_Open()
Cancel = (InputBox("Password?") <> "Cen")
End Sub
Private Sub cmdImport_Click()
On Error GoTo Click_Err
If Nz(txtReportDate, "") = "" Then
MsgBox "NOTICE! Please enter the Report Month you wish to Import."
Else
' Dim rs As Recordset
'Dim sql As String
'Loop through recordset of all Contracts and import files
' sql = "SELECT DISTINCT FROM AAABBC_CE"
' Set rs = CurrentDb.OpenRecordset(sql)
' rs.MoveLast
' rs.MoveFirst
' If rs.RecordCount > 0 Then
' Do While rs.EOF = False
' ImportFile rs!DISTINCT
' rs.MoveNext
' Loop
' End If
DoCmd.Hourglass True
DoCmd.SetWarnings False
DoCmd.Hourglass False
DoCmd.SetWarnings True
MsgBox "Finished Importing!"
DoCmd.OpenQuery "query_Files_Loaded_CE", acViewNormal, acReadOnly
click_Exit:
DoCmd.Hourglass False
DoCmd.SetWarnings True
Exit Sub
Click_Err:
DoCmd.Hourglass False
MsgBox "Error Detected: " & Err.Number & " - " & Err.Description, vbCritical, "Error"
Resume click_Exit
Exit Sub
Ich fand heraus, wie man es schützen kann, aber ich nehme an, dass dies den Benutzer nicht daran hindert, den VB-Code tatsächlich zu bearbeiten. – KKP
Anstatt ein Kennwort im VBA-Code fest zu codieren, können Sie Active Directory abfragen und feststellen, ob der aktuelle authentifizierte Benutzer (Sie befinden sich in einem Netzwerk?) In einer Benutzergruppe ist, die ihm Zugriff auf die Funktionalität gewährt. Auf diese Weise wird zumindest nirgends ein Passwort im Klartext angezeigt ... aber Ihr Benutzer kann die Ausführung jederzeit unterbrechen und die Prozedur überspringen. Passwort-Schutz der VBA-Code selbst würde das lindern, aber es ist nicht unmöglich, entweder zu knacken. –
Wenn das Abfragen von AD zu umständlich ist, testen Sie einfach, ob der Benutzer auf einen Ordner zugreifen kann, der von AD gesteuert wird, als * Proxy * für die Abfrage von AD. – ThunderFrame