- 締切済み
ACCESSでパスワード設定
ファームで作ったオープニング画面のなかで、ボタンをクリックすることで次画面(設定してあるフォーム)が立ち上がるのですが、このボタンクリック時にパスワードで次画面に行ける人を管理したいのですが、マクロではできないようなので、VABでのやり方をどなたか教えてください
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17070)
>パスワード テキストボックスをフォームに貼り付け、そのテキストボックスの、「データ」タブの「定型入力」で「パスワード」というのを選べばできませんか。パスワードキャラの***で表示される。 >マクロではできないようなので・・ マクロで、フォームを開くーフォーム名(パスワード入力のテキストボックスのアルフォーム)を作っておく(マクロ4という名とする) コマンドボタンのクリックイベントで「クリック時」の行で▼をクリックして、「マクロ4」をクリックすれば、設定できると思う。 ーー ここでパスワードをチェックしてあわない人はどうするのですか。 喩えで言えば、家の中には入れて部屋の奥の部屋のドアに暗証番号を要求して合わない人はお帰りいただくのか、別の部屋で何かさせるのか。初めから家の中に入れない仕組みにしないのですか。 ーー ただしパスワード入力後は、ユーザーがチェックしなければならず、VBAなどによるチェックになるのかな(注)と思う。すると判る人は仕組みを見破る恐れは無いですか。 (注)マクロでも条件分岐は出来そう。エラーの場合は、ある決ったフォームを表示するとか。 http://www.accessclub.jp/actips/tips_63.htm 参考 http://www.accessclub.jp/urawaza/61.html
- toshihiko_104
- ベストアンサー率61% (8/13)
「ユーザーIDとパスワードを入力する」という形で・・・ 前提として以下もものがあるとして簡単なVBAを記述しておきます 適宜読み替えてください。 [テーブル] ユーザーマスタ [フィールド] ユーザーID(テキスト型) パスワード(テキスト型) [フォーム] Login ※オープニング画面にあたるもの [コントロール] user(テキストボックス) user(テキストボックス) ログイン(ボタン) Menu ※次画面にあたるもの 以下はフォーム「Login」のボタン「ログイン」のクリック時のイベントプロシージャになります Private Sub ログイン_Click() Dim wkPass As String '**************************************** 'ユーザーIDの存在チェック '**************************************** 'ユーザーマスタに(画面上の)Userに入力されたデータが登録されているかチェック If 0 = DCount("*", "ユーザーマスタ", "ユーザーID = '" & Me.user & "'") Then '登録されていないため終了する MsgBox "ユーザーが登録されていません。" Exit Sub End If '**************************************** 'パスワードのチェック '**************************************** 'ユーザーマスタから(画面上の)Userに入力されたデータのパスワードを取得する wkPass = DLookup("パスワード", "ユーザーマスタ", "ユーザーID = '" & Me.user & "'") '(画面上の)Passと(上記で取得した)ユーザーマスタのパスワードをバイナリモードで比較する '※とりあえずNz関数でNull対策を行っておく If StrComp(Nz(wkPass, ""), Nz(Me.pass, ""), vbBinaryCompare) <> 0 Then 'パスワードが間違っているためエラーを表示する MsgBox "権限がありません。" Else 'パスワードが正しいため自画面を閉じ、次画面を表示する DoCmd.Close acForm, "Login" DoCmd.OpenForm "Menu" End If End Sub
お礼
ありがとうございます。 早速、試してみます。 ありがとうございます。
お礼
ありがとうございます。 早速試してみます。