• ベストアンサー

ACCESSの初心者からの質問です

こんにちは。ACCESS初心者です。いろいろ試行錯誤しましたがうまくいかないので投稿させていただきました。 やりたいこと:フォームへの3つに階層化されたカテゴリの絞込み表示 値は、テーブルを参照する テーブル名(項目):t_l(large)     /*大項目(値)*/           t_m(middle、large) /*中項目(値、大項目)*/           t_s(small、middle) /*小項目(値、中項目)*/ フォーム名:form 項目名:f_l、f_m、f_s /*大項目、中項目、小項目の意*/ 行番号|操作  | 処理 10|f_l入力 |  t_l(large)、全リストから選択 20|f_m入力 |  t_m(middle)、大項目が10で選択したものと一致するリストが表示 30|f_s入力 |  t_s(small)、中項目が20で選択したものと一致するリストが表示 問題は20、30の処理です。 このとき、f_mとf_sのフィールドのプロパティをどう設定したらよいかわからなくなりました。 やったこと クエリをつくり、式ビルダで抽出条件を設定 が、新規入力時はうまくいきますが、大項目の値を変更したら、20、30の作業時に反映されません。 継続究明中で、要件もうまく表現し切れていませんが、ヒント、アドバイスなどいただければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

Yepesさん 今日は! 私も現役時代に、Access98で社内システムを作成しましたが当時はこの様にWebサイトも無く聞く人も居なく非常に苦労した覚えがあります。 Excelよりプログラミングは難しいですが、大量のデータ処理が出来る事等魅力も多いです。 殆どマクロで組んだのですが、質問内容の「クエリをつくり、式ビルダで抽出条件を設定」では無理かと思いますのでマクロの勉強をしてAccessの本領を発揮させた方が良いでしょう。 以下にAccessVBAのサイトを紹介させて貰いますので参考にして下さい ■Access VBAの基礎編↓ http://www.geocities.jp/cbc_vbnet/top/nyumon.html 内容:基礎編・関数編・コントロール編などの操作が解説されてます。 ■基礎から始めるaccess VBA講座↓ http://www.geocities.jp/cbc_vbnet/ 内容:VBA基礎編(VBAの基礎、関数、コントロール、DAO、S   QLなど)2.AccessTIP その他実践編なども有ります。 ■Access VBA 初心者入門講座(目次)↓ http://vba.officehp.com/ 内容:■VBAとは?が43項目、その他の講座にMicrosoft VisualBasic    初心者入門講座も参考に。 ■Access VBA サンプル集↓ http://www.friendlysw.com/knowhow/knowhow.asp 内容:アクセス(Access)のアプリケーションを開発するときに役立つ各   種サンプル(183)のソースコードを公開しています。 参考に為れば幸いです。

Yepes
質問者

お礼

ありがとうございます。現在着手中のシステムは可能な限りシンプルにし(正規化は第一まで)、しばらく勉強してから改良しようと思います。 実は上記テーブル構成は、異常な負荷がかかるのでやめたのです。 (結果的にうまくいったのですが、遅くて不安、、) 解決策: 1.テーブルをひとつにし、   組み合わせ番号、large、middle、small   という構成にする 2.絞込みはあきらめて「一覧表示」される中から検索ボックスで探す

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

もっと質問実例を判りやすく具体的に書いてください。 質問の内容が明確にならない。 テーブルのデータ実例 フィールド名+列データ フォーム実例(テキストボックスでも大、中。小の分類を指定するのかな?。 初心者向けの解説書の例題の書き方のマネをしてもらうのが良い(丁寧に書いてあるでしょう)。 >新規入力時はうまくいきますが、大項目の値を変更したら、20、30の作業時に反映されません とは。 フォームの条件入力+検索ボタンでクエリをやり直す仕組みができてないと言うことかな。 VBAのイベントの世界に入っていく。マクロのReQueryとか。

Yepes
質問者

お礼

質問がわかりづらくてお手数かけました。 それでもわざわざご返答いただいたことに感謝します。 リレーションや、クエリの概念ではを分に要求に合うものを 作るのは難しい、なので、VBA、マクロの門をたたく必要を覚えました。 また、入門者用のテキストは穴があくほどみましたが(重要箇所は丸写し) まだまだ固め方が甘いようですね。

回答No.1

フォームで入力しただけではクエリは更新されません。 フォームの各入力欄のプロパティで下の方の【変更時】を選択してイベントプロシージャでVBAを記述します。 private sub-- *** end sub *** の部分に me.refresh と記述すれば、フォーム入力時にクエリが更新されて上手くいくと思います。 クエリを基にフォームやレポートを作成する場合、必要に応じてクエリが更新される必要がありますから覚えておくと便利ですよ。 VBAヘルプのrefreshを読んでみると理解が深まると思います。

Yepes
質問者

お礼

ありがとうございます。VBAの仕掛けが必要でしたか。 貴重な情報ありがとうございます。