1. 工数管理をクロス集計クエリで(ACCESS & SQL SERVER)
MS.Accessは、単体でもJetというエンジンを持つデータベース機能を持っているが、データ量が大きくなった場合や、ネットワークで複数のPCからの使用になった場合、 パフォーマンスに限界が出てくる。そこで、テーブルをSQL Serverに格納し、プログラム部分だけMDBファイルで作成して、リンクさせるという方法が必要になってくる。
この場合、MDBファイルへのリンクとは違って、ODBC接続を用いてのリンクとなる。ただし、MDB側のプログラムも、SQL Serverの機能を用いるようなプログラムにある程度、変更しなければならなくなるし、当然、SQL Serverの知識が必要になる。
依頼を受けたシステムでは、クロス集計クエリを用いる必要があったので、一番肝心のクエリは、MDBファイル側に置くかたちとなった。工数管理で、今日の日付から、3ヶ月先までの予定を毎日作り替えるという内容のシステムであるが、クロス集計クエリの結果を表示させるサブフォームのフィールド名を、今日から始まって、3ヶ月先までの90日分の日付にしなければならないために、毎日、サブフォームのコントロール名を更新させる必要がある。その上で、未来の工数を振り分けて、担当者ごとに集計させるというものなので、非常に複雑な内容になった。
また、未来の工数を、担当者に振り分けるプログラムは、ACCESS側で処理をしていたのでは、データのトラフィックに非常に時間がかかるので(1分以上)、細かなストアドプロシージャをSQL SERVER側に幾つも持たせて、それをACCESS(VBA)側から呼び出して、必要な結果を得るという方法にしなければならなかった。
結果的に、工数の振り分けの処理時間は、数秒にまで縮まり、動作としては耐えうるものになったが、この部分のプログラムの作成には苦労した。