<Access Formを隠す Me.Visible = False (Closeとの違い)>
こんにちは、三流プログラマーKen3です。 前回から、 Access で ユーザーのローカル管理 ・ユーザー選択画面 ・データ入力 ・データ印刷 を書いてます。 サンプルファイルは、 http://www.ken3.org/vba/lzh/vba067.lzh にdb067-97.mdbが保存されています。 (Access97形式、2000の人は変換してね) マスターテーブルにデータを追加して、遊んでみてください。/* * 1.今回の目的 */
メインテーマの 誰が入力したデータか? ~~~~~~~~~~~~~~~~~~~~~~ を知りたい。 これを実現するために、前回Loginフォームの処理を作りました。 さてと、入力のチェックは終わったけど、この値を使用したいよね。 そんな時、どうしようかなぁ・・・と考える。 グローバル変数に保存する方法にしようか迷ったが、 今回は、フォームを非表示して、コントロールの値を参照する方法にします。 そんなたいした説明じゃないので、ご安心を。/* * 2.フォームの非表示 */
フォームの非表示って簡単で、 フォームオブジェクトの.Visible を False に設定するだけです。
Private Sub btnLOGIN_Click() 'パスワードが合っているかチェックする If Me![PASS] <> Me![USER_ID].Column(2) Then 'コンボボックスの3列目 MsgBox "パスワードが違います、確認して下さい" Me![PASS] = "" '元の文字を消す Me![PASS].SetFocus 'フォーカスを移動する Exit Sub '途中で処理を抜ける End If 'ログインのフォームを見えなくする Me.Visible = False 'Visible = False '管理者とオペレータを判断してフォームを開く Dim stLinkCriteria As String If Me![USER_ID].Column(3) = True Then 'コンボボックスの4列目 DoCmd.OpenForm "F_MENU_K" '管理者用 Else DoCmd.OpenForm "F_MENU_OP" 'オペレータ用 End If End Sub |
Private Sub Form_Open(Cancel As Integer) Dim strMSG As String 'メッセージ作成用 strMSG = Forms![F_LOGIN]![USER_ID].Column(1) '名前を代入 MsgBox strMSG & "さん、落ち着いてがんばってね" 'メッセージの表示 End Sub |
Private Sub btnEND_Click() Dim strMSG As String 'メッセージ作成用 strMSG = Forms![F_LOGIN]![USER_ID].Column(1) '名前を代入 If MsgBox(strMSG & "さんお疲れ様、終了します", vbYesNo) = vbYes Then DoCmd.Close acForm, "F_MENU_OP" 'F_MENU_OPフォームを閉じます Forms![F_LOGIN]![USER_ID] = "" 'ユーザーIDをクリア Forms![F_LOGIN]![PASS] = "" 'パスワードをクリア Forms![F_LOGIN].Visible = True '表示する Forms![F_LOGIN]![USER_ID].SetFocus 'フォーカスをID選択へ End If End Sub |
ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、
気になったジャンル↓を選択してください。 人気記事(来場者が多いTOP3): Excel関係: Access関係: その他:VBAの共通関数やテキストファイルの操作など 開発時の操作: [F1を押してHELPを見る]/ [Debug.Print と イミディエイトウインドウ]/ [実行時エラーでデバッグ]/ [ウォッチ式とSTOP]/ [参照設定を行う] 仕様書(設計書?) XXXX書類: [基本設計書や要求仕様書]/ [テスト仕様書 テストデータ]/ [バグ票]/ [関数仕様書]/ [流れは 入力・処理・出力] ※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。 |
Blogとリンク:[三流君の作業日記]/
[VBAやASPのサンプルコード]/
広告-[通販人気商品の足跡]