重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

お世話になります。

Accessで、あるフォームから管理者専用フォームへのリンクするボタンを作ろうと思っています。

イメージは、ボタンを押した時にパスワードを入力するInputBoxを出し、予め設定された
正しいパスワードが入力されたら管理画面フォームを表示。間違っていたら、パスワードが
違う旨を伝えるメッセージを表示するといった感じにしたいのですが、この様なフォームを
作成するにはどのようなVBAを記述したら宜しいでしょうか。


どなた様か良い方法をご存知の方がいらっしゃいましたらご指導をお願い致します。
(初心者のため出来るだけ詳しく教えて頂けたら幸いです)

A 回答 (2件)

パスワードを記述するテキストボックスの定型入力にパスワードを設定します。

このようにすることで入力データが****で表示されます。IMEモードをオフにします。

パスワードを入力するテキストボックスの更新後処理イベントにプロシージャを記述します。
記述の順序は・・
定数でパスワードを設定します。
Setステートメントで変数にオブジェクトを代入します。
Ifステートメントでパスワードのチェックを行います。
パスワードを入力するフォーム名をpass_フォーム
パスワードを入力するフィールド名をtextPassとすると

Private Sub txtPass_AfterUpdate()

Dim TextBoxA As TextBox

Const CountPass = "1234" '定数でパスワードを設定。仮に1234とした場合

Set TextBoxA = Me.textPass 'Setステートメントで変数にオブジェクトを代入。

'Ifステートメントでパスワードのチェックをして合致する場合は管理画面フォームを開きpass_フォームを閉じる。合致しなければメッセージを出しpass_フォームを閉じる。
If TextBoxA = CountPass Then
DoCmd.OpenForm "管理画面フォーム"
DoCmd.Close , "pass_フォーム"
Else
MsgBox "パスワードが異なります。", vbOKOnly + vbCritical
DoCmd.Close , "pass_フォーム"
End If

End Sub
こんな感じです。

この回答への補足

お世話になります。

先ほどのpass_フォームが自動で閉じない質問の件ですが

パスワード一致時:

DoCmd.Close
DoCmd.OpenForm "管理画面フォーム"

パスワード不一致時:
MsgBox "パスワードが違います", vbOKOnly + vbCritical
DoCmd.Close

とすることで解決出来ました。
お騒がせして申し訳ございません。
この度はお忙しい中ご対応頂き誠にありがとうございました。

補足日時:2005/01/31 15:30
    • good
    • 0
この回答へのお礼

ありがとうございます。

教えて頂きましたソースを早速入力しフォームを作成してみました。
結果、希望通りの動作を作成できて満足しております。

しかし、正しいパスワードを入力後、エンターを押すと
「管理画面フォーム」が開くのですが、自動で「pass_フォーム」が閉じてくれません。
パスワード不一致時も同じく自動では閉じませんでした。

ソース中の注釈文から自動で閉じてくれるのかなと
思ったのですが、これで正常な動作なのでしょうか?

お礼日時:2005/01/31 15:20

パスワードが****で表示でなくて良いならですが...


PASSの所を実際のパスワードにしてください。

Private Sub コマンド0_Click()
On Error GoTo Err_コマンド0_Click

Dim stDocName As String
Dim stLinkCriteria As String
Dim PWord As String

Input_コマンド0_Click:
PWord = InputBox("パスワードを入力してください。", "管理者専用フォーム", "", 1, 1)
If PWord = "PASS" Then
stDocName = "管理者専用フォーム"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Else
If MsgBox("パスワードが違います。", vbOKCancel, "管理者専用フォーム") = vbOK Then GoTo Input_コマンド0_Click
End If

Exit_コマンド0_Click:
Exit Sub

Err_コマンド0_Click:
MsgBox Err.Description
Resume Exit_コマンド0_Click

End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
早速作成してみたのですが、やはりパスワード入力時に
入力文字が見えてしまうと情報漏洩の恐れがあるため
アスタリスクで表示される方法を選びたいと思います。
しかし、この様な方法もあるのだと勉強になりました。
ありがとうございました。

お礼日時:2005/01/31 15:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!