ACCESSでの抽出
工事の進捗を管理するにあたってのことでの質問でございます。
まず工事受注(契約)をします。すると、契約時の着工と完工日というのが契約書に書かれます。よって、当初はこの契約書をもとに最終代金の回収日を把握致します。しかし、工事額が大きい現場に関しては、契約後に着工予定日、完工予定日(契約工期)が変更になるケースが度々ございます。よって、社内では、施主様と『着工面談』(着工前最終打合せ)を行った際に施主様と締結する『着工議事録』に記載された工期を最終的な工期として予定を把握することに致しております。
そこで、アクセスで下記のようなテーブルを2つ作りました。
(1)TB_受注 (2)TB_正式工程
・受注NO ・正式工程NO
・契約日 ・受注NO
・施主名 ・着工日
・工事場所 ・完工日
・受注金額
・着工予定日
・完工予定日
受注時点では、TB_受注の工程を採用しますが、工程が確定するとTB_正式工程の工期を採用するので、下記のようなクエリーをつくりました。(部分省略します)
着工予定日 完工予定日 着工日 完工日
TB_受注 TB_受注 TB_正式工程 TB_正式工程
着工採用 完工採用
追加フィールド(1) 追加フィールド(2)
追加フィールド(1)には、
IIF(ISNULL([着工日]),[着工予定日],[着工日])
追加フィールド(2)には、
IIF(ISNULL([完工日]),[完工予定日],[完工日])
とし、クエリーを実行すると「着工採用」「完工採用」には自分が思い描くとおりの日付が表示してくれました。
これをフォーム上でこんなことをしたいのです。
上のクエリーをフォームの表で一覧にすることは可能でした。
そのフォームから、○月の引渡、もしくは○月の着工だけを抽出して一覧にすることがいまいち上手くいかないのです。
フォーム名を「工程管理」とし、・「着工自」・「着工至」・「引渡自」・「引渡至」というテキストボックスを用意し、そこに入力された日付の範囲をフォーム上で抽出したいのです。
クエリーのフィールどに、抽出(1)と追加して、フォームの「着工自」から「着工至」の間の範囲の着工日付の現場を抽出するようにと下記のような式を入力しました。
抽出(1): IIf([forms]![工程管理]![着工自] Is Null,
True,[着工採用]>=[forms]![工程管理]![自])
And IIf([forms]![工程管理]![着工至] Is Null,
True,[着工採用]<=[forms]![工程管理]![着工至])
この抽出条件を「True」と入れました。
引渡も抽出(2)として同じようにするつもりだったのですが、この(1)の結果が思わしくないので後回しにしてます。
フォームの「着工自」、「着工至」テキストボックスのイベントで、更新後処理をイベントプロシージャーで、ME.REQUERYとして日付が入力されたら更新するようにもしたのです。
それなのに、フォームを開こうとするとパラメーターの入力ダイアログ”着工採用”がポップされ、OKを押してフォームに出てくるデーターは、「着工自」、「着工至」に入力した範囲の工程ではなく全データーが表示されます。自分としては指定した期間の抽出が可能ではないかと思ったのですが、これはいったいどこをどう直したらよいのかアドバイスいただけませんでしょうか。よろしくお願い致します。
お礼
ありがとうございます。とても参考になります。