IPアドレスのテーブルにデータを一括して追加・削除

IPアドレスのテーブルにデータを一括して追加するフォームを作成しました。今回、思い付きで作成したので、改善の余地ありです。

まずは、メニューの「作成」から「空白のフォーム」をクリックし、メニューの「デザイン」をクリックし、空白のフォームにラベルやテキストボックスを張り付けました。 IPアドレスのデータを入力するテキストボックスのフォントのサイズは、24ポイントにしています。

「T_IPアドレス」のテーブルの「IPアドレスコード」の最大値は、SQLで抽出しています。データが全くない場合に、IPアドレスコードが初期値の”0001”になるように、SQLの抽出結果がNULL値の場合は、適切に処理できるようにしました。

IPアドレス一括削除の方は、追加と比べると比較的簡単にできました。

データは、SQLを使って削除するようにしました。

カテゴリーマスターの更新・追加フォームの作成

これからマスターテーブルの中で一番単純と思われるカテゴリーのデータの更新・追加・削除機能を持つフォームを作成します。

まずは、「フォームウィザード」を使ってカテゴリーマスターのフォームを作成します。「フォームウィザード」は、メニューの中の「作成」をクリックし、「フォームウィザード」をクリックすれば開きます。

カテゴリーの全リストが一覧で表示できるようにするため、「表形式」を選択します。

フォーム名は、「F_カテゴリー」とし、「フォームのデザインを編集する」を選択します。

タイトルの文字を「カテゴリー編集」に書き換え、位置を調整します。また、「詳細」の「カテゴリーコード」と「カテゴリー名」の左に「削除」ボタンを設けるために、それらのデータ表示位置を右にずらします。

これで「レイアウトビュー」を表示させると、このようになります。「カテゴリーコード」と「カテゴリー名」のデータの右側に余計な表示領域があるので、「ポップアップ表示」にしたいと思います。

プロパティシートの「すべて」のタブをクリックし、「ポップアップ」のリストボックスで「はい」を選択します。

このように「ポップアップ表示」ができるようになります。

メニューの「デザイン」をクリックし、「コントロール」のボタンのアイコンをクリックし、「詳細」の「カテゴリーコード」の左に[削除]ボタンを設けます。

コマンドボタンウィザードの画面が表示されますが、「キャンセル」をクリックして閉じてください。

プロパティシートの「名前」を「cmd_削除」、「標題」を削除とします。「標題」はボタン上に表示される文字列に反映されます。

[削除]ボタンを右クリックし、「イベントのビルダ」をクリックします。

次に、「コードビルダー」を選択して、「OK」をクリックします。

今回は、SQLを使って削除します。SQLは、「DoCmd.RunSQL」というコマンドで実行できます。SQLを実行する際に、SQLの実行の許可を問い合わせる確認の画面が表示されないように、「DoCmd.SetWarnings False」というコマンドを実行させます。いきなり削除するのではなく、確認のためのポップアップ表示が出るように、「MsgBox」を使って問い合わせます。

データを追加するためのフォームを開くための「追加」ボタンを作成します。

このフォームを閉じるための「閉じる」ボタンを作成します。

「F_カテゴリー追加」という新しいフォームを作成します。「F_カテゴリー追加」は「単票形式」とし、「キャンセル」と「登録」のボタンを作成します。

「F_カテゴリー追加」というフォームの「キャンセル」と「登録」のボタンのコードはこのようになります。

「F_カテゴリー追加」というフォームができたら、「F_カテゴリー」というフォームの「追加」ボタンのコードをこのようにします。

これで、カテゴリーマスターの更新・追加・削除機能をフォームに持たせることができました。

Accessを使ってIT資産管理ツールの作成(テーブル設計)

会社のIT機器を管理するために、Excelを使ってリスト化、またはAccessを使ってデータベース化していることが多いと思います。また、市販されているLanScopeのCatSKYSEAのClient Viewなどの有名なアプリケーションを利用されている会社も多いでしょう。

今回、MicrosoftのAccessを使って管理するために、まずは、必要となるデータを整理し、テーブル設計をしてみました。

会社には、LANにつながった様々な機器が設置されています。大きく分けると、以下のようなものがあります。

パソコン、サーバ、ルータ、複合機(コピー機)、プリンターなどです。加えて、タッチパネル、無線LANルータ、UPS(無停電電源装置)といったものもあります。

その他に、LANに直接つながっていませんが、パソコンにつながっているモニター、プリンター、外付けハードディスクなどもあります。

一覧で表示したい場合に、どの品目をまとめることができるかを考え、そのまとまりをカテゴリーとしました。それで次のようなテーブルができます。

T_カテゴリー(カテゴリーコード、カテゴリー名)

T_品目(品目コード、品目名、カテゴリーコード)

T_カテゴリーのカテゴリーコードとT_品目の品目コードは、主キーとなり、T_品目のカテゴリーコードは、外部キーとなります。

カテゴリーコードと品目コードは3文字、カテゴリー名と品目名は20文字もあれば十分でしょう。

次に、それらの機器の利用者(管理者)を考えてみましょう。

パソコンなどは、そのパソコンを使っている人になります。しかし、サーバや複合機などは、特定の人が管理するものではなく、システム課など特定のグループで管理する場合があります。その場合は、「システム管理者」などとして、一人のユーザーとして扱えると思います。

一覧を表示する際に、部署順、役職順に表示する場合があることを考え、以下のようなテーブルにしたいと思います。

T_部署(部署コード、部署名、部署名フリガナ、表示順、削除フラグ)

T_役職(役職コード、役職名、役職名フリガナ、表示順、削除フラグ)

T_ユーザー(ユーザーID、氏名、氏名フリガナ、ログインユーザー名、ログインパスワード、Emailアドレス、Emailアカウント、Emailパスワード、セキュリティカードID、勤怠管理ユーザーID、勤怠管理パスワード、削除フラグ)

T_ユーザー所属(ユーザーID、部署コード、役職コード)

部署名、役職、ユーザーについては、部署の廃止やユーザーの退職などの場合が考えられるので、削除フラグを設けて、論理的に削除できるようにしました。過去の履歴を閲覧する際には、パソコンを以前利用していた人を知ることができるようにするためです。

会社のユーザー(社員)は、毎朝パソコンを起動するとその人のユーザー名が表示され、パスワードを打ち込む必要があります。また、複合機から印刷する場合や特定のフロアへの入退出の際に必要なセキュリティカードを使っている会社もあると思います。その場合、そのセキュリティカードが持っているIDを利用しなければならないケースもあります。さらに、勤怠管理システムなどの社内システムを利用する際に使うユーザー名とパスワードが必要な場合もあります。それらも「T_ユーザー」というテーブルに含めました。

そして、ユーザーがどの部署、どの役職なのかを特定するために、「T_ユーザー所属」という連関エンティティを設けました。これは、ユーザーの併任などを考慮してのことです。

では、本題の機器についてのテーブルについて考えてみましょう。

まずは、機器についてのマスターテーブルです。

T_OS(OSコード、OS名、エディション、販売形態、削除フラグ)

T_メーカー(メーカーコード、メーカー名、メーカーフリガナ、品目コード)

T_コンピュータ(コンピュータコード、製品名、メーカーコード、プロセッサ、動作周波数、メインメモリ、ハードディスク容量、SSD容量、光学ドライブ、モニターサイズ、削除フラグ)

T_IPアドレス(IPアドレスコード、IPアドレス)

T_ソフトウェア(ソフトウェアコード、ソフトウェア名、メーカー名、販売形態、ライセンス数、削除フラグ)

T_モニター(モニターコード、製品名、メーカー名、モニターサイズ、解像度(横)、解像度(縦)、ピクセルピッチ、最大輝度、最大表示色、コントラスト比、視野角(水平)、視野角(垂直)、応答速度、最大消費電力、標準消費電力、重量、入力端子、その他、削除フラグ)

T_ルーター(ルーターコード、商品名、メーカーコード、スループット、消費電力、削除フラグ)

次は、トランザクションテーブルです。

機器が持っている共通要素は、品目、利用者、価格、購入年月日、廃棄年月日などです。

T_機器(機器コード、品目コード、ユーザーID、購入価格、購入年月日、廃棄年月日、廃棄フラグ、保管フラグ、MACアドレス、型式、製造番号、備考)

「T_機器」をスーパータイプとすると、サブタイプは以下のようになります。

T_機器コンピュータ(機器コード、コンピュータコード、OSコード、コンピュータ名、部署コード[設置場所])

T_機器印刷機(機器コード、印刷機コード、共有名、設置場所)

T_機器ルータ(機器コード、ルーターコード、設置場所)

T_機器その他(機器コード、機器名、メーカーコード、設置場所)

T_機器IPアドレス(機器コード、IPアドレスコード)

T_機器ソフトウェア(機器コード、ソフトウェアコード)

T_モニター利用機器(機器コード、機器コード[モニター])

テーブルの設計は以上です。