- ベストアンサー
IDとパスワード入力間違い時のエラーメッセージ
- データベースにログオンする際のパスワード設定ですが、ID「テキストID」の入力が間違った時、ID「テキストID」が合致でパスワード「テキストPW」が間違った時、それぞれを包括したエラーメッセージを表示する方法に付いて、アドバイスをお願いできませんでしょうか。
- Access2007のアプリケーションで、データベースにログオンする際のIDとパスワードの入力間違い時に、エラーメッセージを表示する方法について教えてください。
- IDとパスワードの入力間違い時に、適切なエラーメッセージを表示する方法についてアドバイスをお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
> コマンドボタン(名前:コマンド9)をクリックしてみましたが「エラーアラート」は表示されない様です。 コマンドボタン(名前:コマンド9)のマクロに「マクロの中止」か「プロシージャの実行」のマクロを追加しましたか?
その他の回答 (4)
- kkkkkm
- ベストアンサー率66% (1719/2589)
> ※コマンドボタン「コマンド11」の役割はログオンせずに終了させるボタンです。 Private Sub コマンド11_Click() から End Sub までのブロックで「終了させる」コードは完結しています。そのブロック外に記載するコードはコマンド11_Clickに関わりあうことはなく(そのようにコードを書かない限りですが)、コマンド11が存在するフォーム全体に関連するコードになりますので、そちらにコードを記載してください。
補足
ありがとうございます。取り急ぎ報告させて頂きます。「遅くなって申し訳ございません。実は午前中に補足コメントをお送りしたつもりでしたが、先程確認したところ遅れてませんでした。遅くなりました。」 IDとパスワードに呉入力「(ID)だけ・(IDとパスワード)の両方・(パスワード)だけ」し、コマンドボタン(名前:コマンド9)をクリックしてみましたが「エラーアラート」は表示されない様です。コマンドボタン(名前:コマンド11)をクリックするとフォームは閉じて、ACCESSのデータベースは起動しません。 [Form_PWフォームの(コードの表示)の内容です] Option Compare Database Option Explicit -------------------------------------------------------------------- Private Sub コマンド11_Click() On Error GoTo Err_コマンド11_Click DoCmd.Quit Exit_コマンド11_Click: Exit Sub Err_コマンド11_Click: MsgBox Err.Description Resume Exit_コマンド11_Click End Sub -------------------------------------------------------------------- Function IDPWCheck() As Boolean If (IsNull(DLookup("パスワード", "PASSWORDテーブル", "ID=Forms![PWフォーム]![テキストID]"))) Then MsgBox "登録されていないIDです。", vbCritical, "" IDPWCheck = False ElseIf (Nz(Forms!PWフォーム![テキストPW], "") <> DLookup("パスワード", "PASSWORDテーブル", "ID=Forms![PWフォーム]![テキストID]")) Then MsgBox "パスワードが違います。", vbCritical, "" IDPWCheck = False Else IDPWCheck = True End If End Function 以上ですが、ご査収お願いいたします。
- kkkkkm
- ベストアンサー率66% (1719/2589)
https://okwave.jp/qa/q9688894.html この時に標準モジュールに記載したと思った(私の方は標準モジュールに記載してたので)のですが、eokwaveさんはフォームのVBAに記載していた感じに見えます。どうやら私の勘違いみたいです、すみません。 今回も Private Sub コマンド11_Click() から End Sub と同じところにその下にでも Function IDPWCheck() As Boolean から End Function を記載してみてください。
補足
大変申し訳ございません。記載内容がテレコ状態でした。すいません。実際は以下の通りでございます。申し訳ございません。 ●コマンドボタンの名前:コマンド9「設定が:マクロ」 アクション-マクロの中止:条件;nz([Forms]![PWフォーム]![テキストID],"")="" アクション-マクロの中止:条件;nz([Forms]![PWフォーム]![テキストPW],"")="" アクション-閉じる:条件;nz([Forms]![PWフォーム]![テキストPW],"")=DLookUp("パスワード","PASSWORDテーブル","ID= Forms![PWフォーム]![テキストID]") ※コマンドボタン「コマンド9」の役割はIDとパスワード入力後の「ログオン」ボタンです。 ●コマンドボタンの名前:コマンド11「設定が:プロシージャ」 Private Sub コマンド11_Click() On Error GoTo Err_コマンド11_Click DoCmd.Quit Exit_コマンド11_Click: Exit Sub Err_コマンド11_Click: MsgBox Err.Description Resume Exit_コマンド11_Click End Sub ※コマンドボタン「コマンド11」の役割はログオンせずに終了させるボタンです。 すいません。宜しくお願いします。
- kkkkkm
- ベストアンサー率66% (1719/2589)
No1でうまくいかなかった場合 マクロの最後で プロシージャの実行 プロシージャ名:IDPWCheck() としてみてください。
お礼
ありがとうございます。貴方の落胆を少しだけでも軽減したく、考えるフリだけでもしたいと思います。パソコンは知識集約的な要素「順序だった知識」を要求されますので、途中参加「VBAなど・・・」で要領良くやろうとの姑息な考えは、直ぐに見破られてしまいますね。今回もご面倒をおかけしていますが、宜しくお願いします。ただ、前向き「妥協せずに・・・もっと良いDBに・・・」に考えている事に対してだでも、ご理解願えれば嬉しいと考えます。
- kkkkkm
- ベストアンサー率66% (1719/2589)
2007がないのでできるかどうかわからないのですが 標準モジュール(以前VBAコードを記載したことがあると思います)に以下のコードを記載してください。 その後マクロをせ設定しているボタンのマクロの「アクション-閉じる」の前に アクション-マクロの中止:IDPWCheck()=False としてみてください。 Function IDPWCheck() As Boolean If (IsNull(DLookup("パスワード", "PASSWORDテーブル", "ID=Forms![PWフォーム]![テキストID]"))) Then MsgBox "登録されていないIDです。", vbCritical, "" IDPWCheck = False ElseIf (Nz(Forms!PWフォーム![テキストPW], "") <> DLookup("パスワード", "PASSWORDテーブル", "ID=Forms![PWフォーム]![テキストID]")) Then MsgBox "パスワードが違います。", vbCritical, "" IDPWCheck = False Else IDPWCheck = True End If End Function
お礼
ありがとうございます。早速、アドバイスを頂きまして感謝致します。実は、「標準モジュール(以前VBAコードを記載したことがあると思います)に以下のコードを記載してください。」との文言に直ぐに反応できず、さかのぼり履歴を見ているところでございます。即反応できないレベルの学習効果しか残っていませんでした。結果の如何「記憶から引っ張り出せないかも・・・」に関わらず少し考えます。すいません。
お礼
ありがとうございました。アドバイスひとつひとつに対して、感謝の気持ちが足りなかった様です。質問「=」完結の気の入れ様と取られても仕方がない姿勢でした。申し訳ございません。気「取り組む(己)気・相手(親切)の気」を大切に致します。ありがとうございました。
補足
ありがとうございます。NO1でアドバイスを頂いておりました。お恥ずかしい限りです。お手数をおかけして申し訳なく思っております。アドバイス通りに設定にてパーフェクトに動作しております。ありがとうございました。