第2回 Accessで、「得意先マスター保守」処理画面を作成してみる。

第2回目は Accessで、「得意先マスター保守」処理画面を作成してみるです。

ポイントは、画面の項目のレイアウトは、何も難しい事ではありません、地道に、大きさやレイアウトを自分で決めてゆけば良いだけです。

注意事項>——————————————————-
本連載の「知識レベル」は、「ACCESS」の画面等をウイザードを使用して、画面や帳票が作成することができると云うレベルの方が対象です(あとボタンの取り付け方等も理解している)。
テーブルを定義して、画面のウイザードで、項目を生成できるスキルが前提です。
これ以下の操作レベルですと、「説明する内容を記載する部分が何ページあっても足りません」ので、勘弁してください。
———————————————————————

大事なのは、機能の埋め込まれた「ボタン」をクリックした時の動作ですが、自分で一からプログラムコード記述しなくても、サンプルを使えば良いだけです。

ボタンをクリックしたときに、定型的に動くオブジェクトコード(VB)をCOPYして埋め込む方法です。 動きは、共通ですので、コードを観て、修正する必要のある個所は、読み込むファイルの名前などを修正して動かせば、すぐ動くと思います。

「新規入力」時に動くコード(プログラム)、「削除」時に動くコード、など、サンプルをCOPYして使えるものを記載していますので、自分で画面を作成して、ボタンを配置して、その中にコードをCOPYして動かせば分かります。


Sponsored Links




1.サンプルプログラムの環境について

1)ACCESSのバージョン :2000形式のmdbで記載。

(2002、2003でもアプリが動きますので、2000形式で記述します)
Jetデータベース用の「DAO」を使用して記述します。

■尚、2010形式のaccdbを使用し、Jetデータベース用の「DAO」を使用する場合は、下記の記事を参照してください。

テーブルを操作するコードを記述する時の注意事項
Recordsetの前に、dao.を付加しないとエラーになりますので注意 ”dao.Recordset”

関連記事
第10回 Access2000(mdb)からAccess2010(accdb)に変換する

2.今回使用する「得意先マスター」の保守画面です。

自作のサンプル(得意先マスタ保守)を使用し、各機能別にコードを記載します。
■「新規入力」処理機能、「削除」処理機能
■登録されたデータの読み出し処理機能
■「住所検索」入力機能(第3回、第7回で説明)
■「封筒宛名印刷」処理機能
■登録済データの「一覧印刷」処理機能

t_mast01

データベース処理画面で、最初に作るのが、データエントリー(登録)画面ですね。

第2回目ですので、「新規入力」と「削除」のボタンをクリックされた時のオブジェクトコードについて説明します。

3.Accessで作成した「得意先マスタ」保守処理画面のサンプルです。

1)機能内容

■得意先の登録・削除処理機能

■顧客を名前で検索・抽出して、簡単に呼び出しマスタに表示する機能

■住所入力支援機能(住所の入力作業を省力化する機能もあります)。

■「請求書」などを郵送するための宛名「封筒印刷」処理機能。

t_mast01

2)得意先テーブル作成時のデータ情報

・使用するテーブル名  : T_得意先テーブル
・レコードキー     : 得意先ID

3)データ項目

(1)得意先ID
(2)カナ名
(3)得意先名
(4)郵便番号
(5)住所1
(6)住所2
(7)電話番号
(8)FAX番号
(9)備考
(10)敬称

4.「新規入力」ボタン押下時の処理の埋め込み

1)新規入力 ボタン

まず、「新規入力」ボタンをクリックした時の「イベントプロシージャ」を開きます。

ACCESS_iv_pro

2)「新規入力」ボタンをクリックした時の「イベントプロシージャ」コードです。

 「新規入力」ボタンを押されたときの「VBA」コード記述からはじめます。

3)「新規入力」 ボタン押下時のコードの解説

処理概要
画面上の「新規入力」ボタンが押下された時、テーブル(T_得意先)を読んで、一番大きい得意先IDに+1しておき、新規レコードを起こして、その得意先IDを新規レコードのキーとしてセットする処理です。

これで、新規レコードが1件発生(登録)されて、得意先の各データ項目を入力する状態にします。

(1)データベースを開く
  おきまりのパターンです。
オープンする「テーブル名」を書き換えるだけです。

(2)登録するレコードのキーを作成
DMax」という最大値を取得する関数を使用して、登録されている得意先IDのなかで、
一番大きい数値の得意先IDに+1加算して、新規入力されたレコードのキー(得意先ID)を作成します。

レコードのキーに付いての補足説明
パソコン1台で使用する(スタンドアロン)場合は、良いのですが、Windowsのファイル共有機能を使い、複数台でデータベースを操作する場合には、競合しますので、テーブルのキー項目になる値は、別途テーブルを作成(番号デーブルなど)して、そのから番号を取得して、レコードのキー値を「採番」する方法がベストだと思います。


‘番号テーブルに+1して、番号テーブルにセット(更新)する。
banngo = banngo+1

‘+1した番号を新規レコードの番号(得意先ID等)に設定する
Newbanngo = banngo
得意先ID = Newbanngo

(3)データベースのクローズ処理
  クローズ処理 これもおきまりの処理です(使用したメモリを解放しているだけです)。

(4)新しいレコードを新規作成(追加)する為のコード。
DoCmd.GoToRecord , , acNewRec

(5)画面の新規レコードの得意先IDに、先ほど2)で作成したIDをセットする。
最後は、得意先名にフォーカスをセットして終了です。

5.「削除」 ボタン押下時の処理の埋め込み

T_masta02

1)「削除」ボタンをクリックした時の「イベントプロシージャ」コード。

2)「削除」 ボタンをクリックした時のコードの解説

(1)’削除処理を実施する前に、「確認メッセージ」画面を表示して、「Yes/No」を選択させる。

削除処理は、ほとんどこのパターンで、COPYして貼り付ければ、完成します。

「はい(Y)」のボタンを押下したときに、表示中のレコードを削除する。

ほぼ、定型のコードですので、COPYして、そのまま使えるでしょう。

6.「得意先呼出」ボタン押下時の処理の埋め込み

せっかく、たくさん登録された「得意先データ」を、すぐに探し出せないと、意味がありませんよね。 そこで、エントリーしたデータを素早く、検索、表示する為の処理方法です。

「得意先マスタ」画面の「得意先呼出」ボタンをクリックすると「得意先検索」画面を表示する。

下記の画面では、抽出条件が「得意先名」1つですが、複数の条件を設置することも可能です。尚、「フォーム」の作成に関しては、自分でACCESSのウイザードを使用して簡単に作成してください。

toku21

1)処理機能の説明

(1)「得意先検索」画面の呼出
「得意先マスタ」画面で、「得意先呼出」のボタンを押されたときに、「得意先検索」画面を表示します。

(2)「得意先検索」画面での機能内容
①「得意先名」入力欄に入力する。
この抽出処理は、あいまい検索可能にしてありますので、名前の途中の文字(連続している文字列であれば可能)でも、該当すれば表示することが可能です。

②「抽出」ボタンを押すと、該当の得意先名を一覧表示する。

③データ選択後の処理
表示中のデータの中から、該当の得意先名を選択クリックすると、「得意先検索」画面を閉じて、「得意先マスタ画面」に該当データを表示する。

こうすることにより、大量に登録された得意先を「あいまい検索」で呼び出し、素早く選択、表示することが可能になります。

2)「得意先呼出」のボタンを押されたときに、「得意先検索」画面を表示するコードです。

解説:
呼び出すフォーム名を書き換えて、そっくりそのままコピーすればできあがりです。

「On Error GoTo~」のコードは、エラー処理の定番で、エラーメッセージを表示して処理を終了させる。

3)「得意先検索」画面で、「抽出」ボタンを押すと、該当の得意先名を一覧表示するコード。

解説:

検索用の項目名          : 得意先名検索
得意先テーブルの項目名 : 得意先名
——————————————————-
(1)[顧客名検索]が空の文字列ではないとき、変数に条件を格納
・”得意先名検索”が空白でなければ、「stCri」に入力された抽出条件を設定する。
ここの部分のコードも、「あいまい」検索機能を持った「定番」のコードですのでCOPYすればOK。

(2)抽出処理:
そして、フィルターにセットして、フィルターをオンにすると抽出されて一覧に表示されます。

補足
抽出後のデータを印刷したい場合、印刷処理ボタンを配置して一覧印刷処理を追加することもできます。

4)「得意先検索」画面で、表示中のデータの中から、該当の得意先名を選択クリックすると、「得意先検索」画面を閉じて、「得意先マスタ画面」に該当データを表示する。

*************************************************************

*************************************************************

(1)解説
得意先名をクリックされたとき、関数 Find_Recordに得意先IDをセットして渡す。
すると、「得意先マスタ」画面に該当データが表示されます。

検索画面を閉じて終了します。

(2)解説
「得意先マスタ」画面のイベントプロシージア内に埋め込む

「得意先マスタ」画面に埋め込む、自作関数コード
——————————————————–

———————————-

データのエントリー画面処理には、なくてはならない処理ですね。
このパターンを覚えると、色々な場所で役に立つと思いますので、トライしてみてください。

■AccessのVBAを習得するには、上記の参考書がお勧めです。

  

Accessデータベース作成講座 関連記事
第1回 マイクロソフト ACCESSでデータベースを作成するには
第3回 Accessで、「得意先マスター保守」処理画面を作成してみる。
第4回 マイクロソフト ACCESS(アクセス)でデータベースを作成 検索・抽出処理
第5回 Access2010でパスワード管理データベースを作成してみよう。
第6回 EXCELで作成した住所録をAccess2010に取り込んではがき宛名印刷をしてみる。
第7回 郵便局の郵便番号簿データをダウンロードして、郵便番号・住所検索用のアプリをAccessで作成してみる。
第8回 マイクロソフト ACCESSでデータベースを作成する時のプログラムソースのコーディングについて

Accessについて 関連記事
Access 2013 の新機能とAccess 2013 で廃止、変更された機能とバージョンアップの必要性について
マイクロソフト、「Access」の便利な機能を使って、業務アプリケーションを作成して活用する。

第1回 ACCESS(アクセス)データベース作成ソフトについて
第2回 ACCESS(アクセス)データベース作成ソフトについて
第3回 ACCESS 2007の情報
第4回 ACCESS トラブル対処の情報1「mdbが壊れてしまった時」
第5回 ACCESSを「ファイル共有」で使用する場合の注意事項
第6回 ACCESS トラブル対処の情報2 「メモリ不足」エラーについて
第7回 ACCESSで Jet 4.0 データベースの動作環境を最適に保つ方法
第8回 Access 2000とMSDEを利用してクライアント/サーバーシステムを構築する
第9回 ACCESS 2010の情報
第10回 Access2000(mdb)からAccess2010(accdb)に変換する

Sponsored Links




シェアする

  • このエントリーをはてなブックマークに追加

フォローする