Microsoft Access Club >初心者講座 >休暇申請管理ソフト >このページ >次頁 - 前項  サイト内検索


入力フォーム_オプショングループと非表示について:休暇申請管理ソフト--補



オプショングループのセールスポイントは、オプション値(整数型)なんです。

例えば、有休をクリックすると、このオプショングループ(名前は 「選択」 と命名しています)は、整数型の 1 の値を返します。と、云うより 1 を返すようにオプション値を設定しています。

文字列(例、有休)をクリックすることで、数値(例、1)がAccessへ返されます。このように数値でデータを管理することがたやすく可能になります。データの数値管理はデータベースの基本 ですね。

空白の トグルボタン

トグルボタンの名称を空白にした理由は、会社単位で休暇の名称が変わるからです。慰労という名の休暇を付与する会社もあるでしょうから・・・。

専用テーブルの活用

このような場合など、ソフトを利用する会社に合わせた休暇の名称が必要です。よって、多数の会社が利用できるように専用テーブル (tbl_kankyo)を作成しおいて、そのテーブルフィールドに入っている値をトグルボタンの名称として利用できるようなシステム作りを行っています。

テーブルtbl_kankyoの活用について:休暇申請管理ソフト03  も参考にして下さい。

フォームの開くイベントプロシージャの作成

に下記のように記述します。

Private Sub Form_Open(Cancel As Integer)

    Me.トグルボタン_1.Caption = ChoiceSelect(1)
    Me.トグルボタン_2.Caption = ChoiceSelect(2)
    Me.トグルボタン_3.Caption = ChoiceSelect(3)
    Me.トグルボタン_4.Caption = ChoiceSelect(4)

    DoCmd.GoToRecord , "", acNewRec

End Sub

事前に、tbl_kankyoテーブルの休暇種別_1フィールド(以下、休暇種別_4まで)に適宜名称を入力し ます。不要なら、半角の空白を入力しておいて下さい。

標準プロシージャの作成
'環境設定から値を引き出します。サブルーチン関数です。
Function ChoiceSelect(intCount As Integer)

    Select Case intCount
        Case 1
            ChoiceSelect = DLookup("[休暇種別_1]", "[tbl_kankyo]", "[ID]=1")
        Case 2
            ChoiceSelect = DLookup("[休暇種別_2]", "[tbl_kankyo]", "[ID]=1")
        Case 3
            ChoiceSelect = DLookup("[休暇種別_3]", "[tbl_kankyo]", "[ID]=1")
        Case 4
            ChoiceSelect = DLookup("[休暇種別_4]", "[tbl_kankyo]", "[ID]=1")
        Case Else
            MsgBox "誤った処理です"
        End Select

End Function
解説
  1. Dlookup関数を用いて、テーブルフィールドから値を取得しています。

隠しテキストボックス

フォームのデザインモードのみ表示されるテキストボックスです。何も特殊な技術はいりませんよ。テキストボックスのプロパティで「可視」を"いいえ"に設定して下さい、これだけです。

今回の入力のメインフォームでは、下記のように3個の隠しファイルを使用します。

一般的に、このテクニックを利用することでシステム作りが簡潔になる傾向があります。上級者の方は余り好まれませんが、初心者の皆さん方は積極的に利用しても良いんじゃないでしょうか?

利用する事由
  1. 直接データを渡すことが困難な場合
  2. データを保持する必要がある場合
  3. システムの構造が簡易になる場合
  4. データの自動入力のみである場合

などがあります。

具体的な説明

具体的にちょっと説明を加えますと、

  1. 左から1番目のテキストボックス(非連結と表示されています)は、tbl_有給MテーブルにあるCKフィールドの値をチェック済みとします。
    社員ナンバーを入力すると、更新後処理でチェックオン( Me.CK = True )となります。 このようにすることで同一のIDでフォームを再度開くことができないようにしています。
    #申請の修正、取り消しは新規IDで行なうような仕様に仕上げています。

当然、チェックオフ(初期値)のみ開けるように、フォームのレコードソースのクエリ内で下記のように抽出条件を設定します。

このような場合、あえてテキストボックスを表示させる必要がありません。上記分類では 4 に該当します。

  1. 左から2番目のテキストボックス(CKと表示されています)は、申請者が社員IDを入力するテキストボックス(これは非連結です)から 入力データを受け取ります。このようにすることで、リレーションのチェック機能の影響を受けることがなくなります。

具体的に言いますと、独自の更新前処理イベントを使えるメリットが生まれます。上記分類では 3 あたりです。

  1. 左から3番目のテキストボックス(職員IDと表示されています)は、カレンダーコントロールの年月日を一時的に格納します。上記分類では 2 あたりです。

 

ページの先頭へ 前ページへ戻る

 


入力フォーム_オプショングループと非表示について:休暇申請管理ソフト--補


 

-Microsoft Access Club-