Access VBA 開発はパラメータを使うと簡単で信頼性が高くなります。

お願い

似たようなページを数個作成していましたが、今後とも内容を充実するために似通ったページをまとめました。

恐れ入りますが、
Access テーブル名、変数名の付け方、1行でもウインドウを使ったマスタ参照の紹介
のサイトがまとめた最新ページです。今後はこちらのページを更新致しますので、宜しかったら移動をお願い致します。

今後とも宜しくお願い致します。

 

ソフト開発をずっと行っていると、同じ事の繰り返しが多く、一つ一つプログラミングするのが辛くなってきます。

そこで、もっと簡単に出来ないかなーと考えると、毎回同じ動作をする内容には違う値だけをパラメータとして送るといつもの処理を行ってくれるような部品をたくさん作ると楽になって行きます。

最初は上手く行かなくてもここを頑張ると、これから先の他のアプリ開発にも使えるので楽になります。

このパラメータ化した部品を作る為には、テーブル名、フィールド変数など、統一化した名前付けをしておかないと大変な事になります。宜しかったら BB の開発方法を参考にされてみませんか。

得意先マスタのテーブルのフィールド名について

TOKCODは、得意先コードをローマ字で TOKUISAKICODO と表し、赤文字分6個で名前付けします。
TOKKSMは、得意先会社名をローマ字で TOKUISAKIKAISYAMEI 
TOKKSFは、得意先会社フリガナをローマ字で TOKUISAKIKAISYAFURIGANA
というような感じで名前付をしております。

しかし、

  • 専門性のある大きなシステムになると、同じような名前の変数がたくさん必要になってきます。
  • 一つの内容に対して、前年分 MURHURG、今年の累計 KURHURG、当月分 TURHURG など
  • 一つの内容に対して、売上額 URHURGU、仕入額 URHURGS、粗利額 URHURGA、粗利率 URHURGR など

本来、メインとなる変数(上では URHURG )に6文字の最初や最後に 1文字又は、2文字を追加して、わかりやすい変数名に工夫するようにしています。

この調子で作って行くと、変数名もだいたい覚えたり、同じ名前が頭に浮かんできたりして困る事はそうありませんでした。

又、上図のように、それぞれのフィールド名の説明も残しておくと開発が終わってサポートをする場合に役立ちます。是非、説明文は入力しておいて下さい。

得意先マスタのフォーム(画面)の変数名について

BB の開発では、フォームのレコードソースに TM_TOK のテーブルを結合しない非連結型の開発で行っています。この非連結型の開発方法はプログラミングが面倒ではありますが、お客様の細かい要望に応えやすいように思います。

非連結の作り方なので、

名前:TOKCOD とし
コントロールソース:空白にします。

テーブル名とフォームのプロパティの名前を同じにすると、間違いも少なくなり開発効率も上がります。

 

 

モジュールを使う場合
 [ツール] – [オプション] – [エディター設定] で、フォント名をMSゴシック に設定し、MSゴシックにはしない方が良いと思います。

テーブルの中のフィールドの変数、フォームの中のコントロールで使用する名前も全て半角英数大文字の6文字で統一すると下記のようにキチント並び作業性が良くなりミスが少なくなります。

Me.TOKKSN = Null
Me.TOKTAN = Null
Me.TOKYBN = Null
Me.TOKAD1 = Null
Me.TOKAD2 = Null
Me.TOKTEL = Null
Me.TOKFAX = Null

Me.TOKKSN = DN01!TOKKSN
Me.TOKTAN = DN01!TOKTAN
Me.TOKYBN = DN01!TOKYBN
Me.TOKAD1 = DN01!TOKAD1
Me.TOKAD2 = DN01!TOKAD2
Me.TOKTEL = DN01!TOKTEL
Me.TOKFAX = DN01!TOKFAX

テーブルの名前付や、フォームの名前付でこのような名前付をしておくと下記動画のような事も行えるようになります。

これは、有限会社テクノデービー時代に作成した社内システム「商助」の商品コードの入力の動画です。コード検索、カナ検索が、商品コードの入力欄からカーソルを移動する事無く、その場で行えます。

商品コードのプロパティの中の更新後処理のイベントプロシージャーの中に記述しているモジュールで、入力のところは下記のたったの 1行 のパラメータのみです。(もちろん、後の処理は、それぞれのアプリによって色々記述しています。)

WINOUT = WINSB2(“0”, “F_URIHED”, “F_URISUB”, “URMSYC”, “URMSYN”, “”, Me.URMSYC, “”, “TM_SYO”, “SYOCOD”, “SYONME”, “SYOKEN”, 6, “SYOCOD”, “SYONME”, “SYOKKK”, 12, 7, 12.7, “06004040”, 2)

得意先マスタ部分の入力パラメータ
WINOUT = WINHED(“0”, “F_URIHED”, “URHSKC”, “URHSKN”, “”, Me.URHSKC, “”, “TM_TOK”, “TOKCOD”, “TOKKSM”, “TOKKSF”, Me.TOKCDKS, “TOKCOD”, “TOKKSM”, “TOKAD1”, 6.7, 6.5, 12.2, Format(Me.TOKCDKS, “00”) + “004040”, 2)

担当マスタ部分の入力パラメータ
WINOUT = WINHED(“0”, “F_URIHED”, “URHTNC”, “URHTNN”, “”, Me.URHTNC, “”, “TM_TAN”, “TANCOD”, “”, “TANKEN”, 3, “TANCOD”, “TANNME”, “TANKEN”, 12, 5, 12.2, “03002000”, 0)

部門マスタ部分の入力パラメータ
WINOUT = WINHED(“0”, “F_URIHED”, “URHBMC”, “URHBMN”, “”, Me.URHBMC, “”, “TM_BMN”, “BMNCOD”, “”, “BMNKEN”, 3, “BMNCOD”, “BMNNME”, “”, 12, 5, 12.2, “03002000”, 0)

ほとんど同じようなパラメータを送っていますよね。これだと作業効率も上がるし、バグも極端に少なくなります。

そのかわり、WINHED という部品は相当時間を掛けて作成しましたが、一度作成しておくとどのシステムでも使えるから便利です。

このように、規則正しい変数付けで、どのシステムでも使えるような便利な部品をたくさん作ると信頼性も上がり、自分も楽ができ良い事ばかりです。