kazpgmの日記

『プログラム自動作成@自動生成』作成の日記

TOOL更新_今週もToDoリスト・50−4.親画面から子TBLサブ画面編集を作り続けている

今週もToDoリスト「http://d.hatena.ne.jp/kazpgm/20090403」・「50−4.親画面から子TBLサブ画面編集」を作り続けている
「定義EXCEL]http://kazpgm.ddo.jp/kaz01u/upload/doc/dif.zip(zip圧縮771Kb)に新たに追加した「FOREIGN KEY設定」列から各テーブルの親子関係を調べるロジックを作った。これを「PHP作成◎自動生成お助けTOOL」の自動作成◎自動生成ロジック(VBA)に追加する予定。
  <=自分用メモ。たぶん、自分以外の人が見ても”何がしたいのかな”っていうようなもの。・・・でも自分的にはFOREIGN KEYをシンプルに解決したと思っている。<=2009/10/14(水)未完了があるがここでVer0.1をFIX。よって次期バージョンで開発予定。

Public Const contFKEY_TBL略名 = 74    'BV列
Public Const contFKEY_項目日本語 = 75    'BW列
Public Const contFKEY_項目名 = 76    'BX列
Public Const contFKEY_入力サポート = 77    'BY列

dim tbl略名S(100) '作成するTBL略名たち
dim tbl名S(100) '作成するTBL名たち
dim tblキー順S(100, 20) '作成するTBLのPKeyたち
dim tblキー順の親S(100, 20) '作成するTBLのPKeyの親たち
dim tbl親略名S(100) '作成するTBLのPKeyの親たち
dim tblシート名S(100) '作成するTBLのシート名たち

'==========================================================================
'  「定義EXCEL」の各シートの親子関係を調査しWORKに設定する。
'==========================================================================

'--------------------------------------------------------------------------
' 略名S | 名S        | キー順S                     | 親略名S | シート名S 
'       |            | キー順の親S                 |         |          
'==========================================================================
'  テA  | テーブルA  | キー1,キー2                 |         | シートA  
'       |            |                             |         |          
'--------------------------------------------------------------------------
'  テB  | テーブルB  | キー1,キー2,キー3           | テA     | シートB  
'       |            | テA  ,テA                   |         |          
'--------------------------------------------------------------------------
'  テC  | テーブルC  | キー1,キー2,キー3,キー4     | テB     | シートC  
'       |            | テB  ,テB  ,テB             |         |          
'--------------------------------------------------------------------------
'  テD  | テーブルD  | キー1,キー2,キー5           | テA     | シートD  
'       |            | テA  ,テA                   |         |          
'--------------------------------------------------------------------------
'
'1.「略名S」
' ・「テーブル略名」(F1カラム)を設定する。
'
'2.「名S」
' ・「テーブル名」(D2カラム)を設定する。
'
'3.「キー順S」,「キー順の親S」,「親略名S」設定
' ・「PK」(F列)に入っている順番で「キー順列S」(n,1〜)にいれる。
' ・PK項目の「FKEY_TBL略名」(BV列)に設定されているTBL略名を「キー順の親S」(n,1〜)に設定する。
'  「親略名S」にも設定する。
' ・エラーのときはエラーを表示して読み飛ばし。
'  ・PKのすべてに「キー順の親S」(n,1〜)が設定されている場合(1:1のテーブル関係)エラー
'    ”テーブル1:1の関係は1つずつPGMを作った物を手作業で1つのPGMにしてください。
'    当FKEYは読み飛ばします。”
'  ・「キー順の親S」(n,1〜)に入っているTBL略名の種類が1つでない場合エラー
'    ”FOREIGNKEYは同一テーブルを指定してください。
'    当FKEYは読み飛ばします。”
'
'4.「シート名S 」
' ・シート名を設定する。
'
'5.「略名S」、「親略名S」により自テーブルの親子関係がわかる。
' 例)
'   ・テーブルA
'    ・親は「親略名S」=””(親はない)
'    ・子は「略名S」=”テA”が「親略名S」に入っているものなので
'     「親略名S」=”テA”のテーブルBとテーブルDの2個
'   ・テーブルB
'    ・親は「親略名S」=”テA”
'    ・子は「略名S」=”テB”が「親略名S」に入っているものなので
'     「親略名S」=”テB”のテーブルC
'   ・テーブルC
'    ・親は「親略名S」=”テB”
'    ・「略名S」=”テC”が「親略名S」に入っていないので子はない
'   ・テーブルD
'    ・親は「親略名S」=”テA”
'    ・「略名S」=”テD”が「親略名S」に入っていないので子はない
'

'==========================================================================
'  親子関係のために用意するPGMパターン 
'==========================================================================
'1.親なし子ありのPGMパターン
'  このPGMは親子関係のルーツとなるもの
'2.親あり子ありのPGMパターン
'  このPGMは親あり子なしのPGMパターンも含む。
'
'

■サイト:http://kazpgm.ddo.jp/