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


テーブルtbl_kankyoの活用について:休暇申請管理ソフト



フォームの作成に進む前に、tbl_kankyoテーブルの使い方についてお話します。 一般的なテーブルは、データを次々格納していくものですが、このテーブルはチョット違います。

  1. 1フィールドに格納するデータは必ず1つだけです。
  2. 必要があれば、フィールド数を増やしていきます。

私はこのようなテーブルを「環境設定テーブル」と命名しています。

環境設定テーブル

このテーブルの目的は、システム全体に幅を持たせるためです。皆さんも積極的に取り入れてみて下さい。

運用方法の実例としては、下記のようなテーブル構成を考えます。

IDフィールドの値

このテーブルには、1レコードだけのデータを格納します。つまり、オートナンバーIDフィールドの値を 1 に限定します。これはとても大事なことなんです。IDフィールドに 2 は絶対にありません。いえ、 レコードが存在してはいけないのです。

任意の名称を利用できること

監督者フィールドの既定値として、営業課長を設定していますが、会社によって庶務課長だとか監督者が異なります 。このような状況を想定して、このテーブルフィールドの値を変更することで汎用的に利用できるシステム作りを目指しています。機能としては、Windowsのレジストリに近い働きを考えています(そんなにすごいものではありませんが‥)。

一例

このテーブルの使用方法の一例としては、監督者が営業課長である職場の場合、下記のようにメッセージボックを表示させることができます。

式の中にある strkantoku は変数です。Dlookup関数で「ID=1」を条件として「tbl_kankyo」テーブルの「監督者」フィールドから"営業課長"を引っ張り出します。すると下記のように表示 させることができます。

Function TEST()

    Dim strkantoku As String  '変数を宣言します。
    Dim strmsg As String '変数を宣言します。
    
    'Dlookup関数でデータをテーブルから引っ張り出します。
    strkantoku = DLookup("[監督者]", "[tbl_kankyo]", "[ID]=1")
    strmsg = "登録されていない職員コードです。" & _
                                            strkantoku & "まで連絡して下さい。"
    
    MsgBox strmsg, 16, strkantoku

End Function

みなさん、上記の"Dim"ってなんじゃろかいとお思いでしょね。「初心者講座」と言いながら何も説明しないのも おかしいので簡単に説明しておきます。

Dim ステートメント

DimとはDimステートメントのことです。Accessヘルプを見ますと、変数を宣言し、メモリ領域を割り当てます と記載されています。

  1. ここで記述した strkantoku の言葉自体には何の意味もありません(例えば a と記述しても構いません)。
  2. "メモリ領域を割り当てます"とは、ここではデータ型を String(文字列)と定義していますので、約 63KB までの長さの固定長文字列、約 2GB (20 億文字) までの可変長文字列を格納できます。つまり、変数strkantoku に代入できる量の制限のことです。String型以外にもInteger型(整数)などいろいとあります。
  3. 変数を定義すれば必ず"入れ物"を指定します。また、入れ物の万能型として Variant型 があります。最初は何でもこのデータ型にすれば問題ありません。 但し、Variant型はメモリを消費しパフォーマンスを低下させる欠点があることは覚えて置いて下さい。
True/False形式で区分する

True/False形式では、アクションの実行の可否に関する場合に使用しています。

一例

下記プロシージャをご覧下さい。

これは、Dlookup関数でID=1を条件として「tbl_kankyo」テーブルから「Network」フィールドの 値(True、またはFalse)を導き出します。Networkフィールドの値がTrueであれば、Call関数を利用してFunction関数の"入力者識別"プロシージャを呼び出す仕掛けになっています。

    '環境設定でネットワーク機能がオンの場合、バスワードを求めます。
    If DLookup("Network", "tbl_Kankyo", "ID=1") = True Then  Call Users識別

まとめ

このように「tbl_kankyo」テーブルを利用して、各種の条件分岐を作成時から構成しておけば、ユーザーからのいろいろな要求を実現できますし、多数のユーザー が利用し易いソフトに仕上げるのが容易になります。(万全ではないですが…)。

是非とも、ご自分のソフトにも活用して下さいね。実際にこれから作成していくこのソフトにも多用しています。

  • 上の IF 関数には End If がありませんが、間違いではありません。 Thenに続けて1行で記述していますから省略できるんです。

 

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

 


テーブルtbl_kankyoの活用について:休暇申請管理ソフト


 

-Microsoft Access Club-