1

私はAccess Projectに取り組んでいますが、この質問にはAccessに固有のものは何もないと思います.

私はフォームを持っていますが、認証されたユーザーのテーブルにいる場合にのみ開くことができます (そして、私は彼の Windows ユーザー名でユーザーを認証します) - 私はそれが不十分な認証であることを知っています.

フォームのオープンイベントに入れたコードは次のとおりです。

Private Sub Form_Open(Cancel As Integer)

If DCount("User_Id", "Users", "[username]='" & (Environ$("Username")) & "'") Then

Else
    MsgBox "Access Denied!"
    DoCmd.Quit

End If

End Sub 

私が達成したいのは、MsgBox "Access Denied!"が表示されたときに、[OK]ボタンをクリックする前に特定の単語(パスワードなど)を入力すると、それDoCmd.Quitが実行されないことです。何も表示したくありません。パスワードを入力するだけです。

必死に必要というわけではなく、ただ楽しく作りたいだけです。それがVBAでできたらすごいなと思います。

4

2 に答える 2

0

以下は機能するはずですが、パスワードをより適切なものに設定したり、複数のパスワードが必要な場合は、変更することをお勧めします。コードの読み方を知っている人なら誰でもパスワードを見つけることができるので、データベースのどこかに置いた方がよいのではないでしょうか?

Const sPassword As String = "PASSWORD"
Const sMESSAGE As String = "Please enter your password"
Const sTITLE As String = "Enter Password"
Dim sInput As String

sInput = InputBox(sMESSAGE, sTITLE)

If sInput <> Password Then
    MsgBox "Access Denied!"
    DoCmd.Quit
End If
于 2013-08-18T21:14:33.320 に答える