- ベストアンサー
Access2000でメインサブフォーム
テーブル1 商品ID 数値型(主キー) 商品名 テキスト型 ------------------ テーブル2 売上ID 数値型(主キー) 商品ID 数値型 月日 日付型 売上個数 数値型 --------------------- 以上のようなテーブルがあり、テーブル1を「メイン」テーブル2を「サブ」のメインサブフォームを作成しました。 しかし、「サブ」のデータが多いため、さらに、サブフォームの日付フィールドを使い、抽出をしたいのですが、方法がわかりません。(例えば、9/1以上9/10以下のような抽出) いろいろやってみは見たのですが、思うようにできません。メインサブフォームでさらにサブフォームのデータを抽出するということは無理なのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
簡単なのはサブフォームにSOLスタートメントで月日のフィールドに抽出条件をつければフォームを起動するときに条件を聞いてきますので日付を入力すれば大丈夫です。 日付フィールドの抽出条件に Between [開始日] And [終了日] と設定すれば開始日と終了日を聞いてきます。 [開始日]に2004/10/1 [終了日]に2004/10/10 と入力すれば10/1から10/10までのレコードを抽出して表示してくれます。 またはサブフォームのプロパティのレコードソースに SELECT テーブル2.月日 FROM Test WHERE (((テーブル2.月日) Between [開始日] And [終了日])); で同じ結果になります。 これが簡単です。
その他の回答 (1)
- H-black
- ベストアンサー率35% (26/73)
似たようなのを作ったことがあります。 日付の検索ではありませんでしたが。 まずメインフォームに日付を入れるテキストボックスを二つと「検索ボタン」を作ります。 テキストボックスは「日付始」と「日付終」としましょう。 次にクエリを作ります。「日付クエリ」とでも。 クエリの検索条件に Between [forms]![メイン]![日付始] And [forms]![メイン]![日付終] と入れます。 そしてサブフォームをもう一つ作ります。名前は「サブ2」で。 この「サブ2」のレコードソースに「日付クエリ」を指定します。 そして最初に作った「検索ボタン」に、クリックしたらサブフォームの場所に「サブ2」を呼び出す命令を書き込みます。 私の場合はVBAで書きました。その場合はこうなります。 Forms![メイン]![サブフォーム名].SourceObject = "サブ2" ちなみに「戻るボタン」を作っておいて、上記の記述のように元の「サブ」を呼び出せるようにしておけば便利です。 これで出来ると思うのですが、どうでしょうか?
お礼
ありがとうございます。 パラメータクエリを使うことが使用上できなかったので、メインのほうに日付を入れる非連結のテキストボックスを作成し、サブフォームのレコードソースに、抽出条件を入れ、再クエリを実行するマクロを作成し実行するとできました。 回答がヒントになりました。ありがとうございます。
お礼
ありがとうございます。 パラメータクエリを使うことが使用上できなかったので、メインのほうに日付を入れる非連結のテキストボックスを作成し、サブフォームのレコードソースに、抽出条件を入れ、再クエリを実行するマクロを作成し実行するとできました。 回答がヒントになりました。ありがとうございます。