08/02/09 21:35:57
>>418
どうも発想がデータベース的ではないような気がしますね。
次はあくまでも個人的発想方法だということで読んでください。
1.フォームで入力用テーブルに入力する。
2.SQLで入力用テーブルから出力用テーブルを作る。
3.レポートで出力用テーブルを印刷する。
もちろん例外もあるのだけど、基本的にはこの発想でやると単純化できます。
Accessは自由度が高いだけに自分なりのパターンをもたないと収拾がつかなくなります。
ここで1と3は問題ないだろうけど、2のSQLで処理するというのに引っかかる人がいると思う。
もちろん、1レコードづつループしながらVBAで処理していく方法もあるけれど、
Accessのレコード移動は遅いようで結局時間がかかります。
結局SQL(クエリー)を使うほうが一般的に早いようです。それも桁違いにです。
かなりのデータ数でも「もう終わったの?」というスピードで処理します。
一見複雑でSQLでは処理できなさそうな処理でも途中でワークテーブルを使ってやればできます。
余計なワークテーブルを使うと遅くなりそうだけど、SQLが高速なせいでそうはなりません。
ワークテーブルを作るのがいやで、複雑なSQL文を書いてもかえって遅くなるだけです。
とまあ、アドバイスになるか反面教師になるかは知らないが、こんな考え方もあるということで・・・