• ベストアンサー

【ACCESS2000】 サブフォームのフィルタ方法

親フォーム メインメニュー 子フォーム1 売上ヘッダ 子フォーム2 売上明細 上記のようなフォームがあります。 親フォームには、主キーで伝票番号が振られています。 売上ヘッダの各行を選択するごとにその明細が下に出てくるという仕組みのフォームを作ろうとしています。 そこで質問があります。 基本的なことですが、子フォーム1にある伝票番号をキーとして、サブフォームのフィルタリングするにはどうすればよいでしょうか。

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

  • ベストアンサー
  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.2

> 親フォームは、メインメニューとなっているので、データベースをもちません。 Access2000 ヘルプより引用。 --------------------------------------------------------- "LinkChildFields/リンク子フィールド"、"LinkMasterFields/リンク親フィールド" プロパティ メモ リンクに使用するフィールドは、メイン オブジェクトや子オブジェクトに含まれる フィールドでなくてもかまいません。それらのオブジェクトの基になるテーブルや クエリに含まれているフィールドであれば、リンク フィールドとして使用することが できます。 --------------------------------------------------------- 表示はしなくても、レコードソースとしておけば、使えそうですけどね (^^ゞ > 仕方なくフィルタで解決したいと考えております。 フィルタの場合、どこのイベントで使うかによりますね。 親フォームからなら、VBAで Me!サブフォームコントロール名.Form.Filter = "条件" Me!サブフォームコントロール名.Form.FilterOn = True のようにすればいいと思います。

7_11shop
質問者

お礼

ご解答ありがとうございます。 親子リンクは、やはりうまくいきませんでした。 親・・・単票形式 子・・・帳票形式 ならばうまくいきますが、親も帳票形式だとうまくリンクしません。 フィルタのほうはサブフォームやフィルタの参照方法に苦労しましたが、うまくいきました。 ありがとうございました。

その他の回答 (1)

  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.1

サブフォームの  リンク親フィールド  リンク子フィールド を使ってみてください。

7_11shop
質問者

補足

ACCESSは、それほど詳しくないので、まちがったことを 行っているかもしれませんが、親フォームは、メインメニューとなっているので、データベースをもちません。 両方とも子フォームなので、子フォーム(サブフォーム)同士をリンクすることがができず、仕方なくフィルタで解決したいと考えております。 なにか良い方法はありませんでしょうか。

関連するQ&A

  • 【ACCESS2000】 サブフォーム同士の値のチェックを行いたい。

    ・メインフォーム 合計チェックボタン ・サブフォーム1 伝票番号,売上金額合計 ・サブフォーム2 伝票番号,明細行,売上金額 上記のような構成になっており、合計チェックボタンを 押したときに伝票ごとのサブフォーム1の売上金額合計がサブフォーム2の伝票番号でまとめた売上金額合計より、下回っているものがある場合はエラーメッセージを出したいと思っています。(できればその伝票番号もだしたい。) どのようにすればよいでしょうか。

  • Accessのサブフォーム内で連続番号を振りたい

    Accessのサブフォーム内で連続番号を振りたい メインフォームで受付番号親(オートナンバー型) サブフォームで受付番号子(数値) でサブフォームで連続番号を振りたい場合の方法が見つかりません。 例: メインフォーム 受付番号親1 サブフォーム 受付番号親1 子1 商品~~~ サブフォーム 受付番号親1 子2 商品~~~  メインフォーム 受付番号親2 サブフォーム 受付番号親2 子1 商品~~~ サブフォーム 受付番号親2 子2 商品~~~ てな具合なんですけど。

  • Access2000フォーム/サブフォームにつおて

    Access2000でフォーム/サブフォーム(売上伝票)を作っています。 フォーム(売上伝票メイン)には伝票番号、売上先などを入力・・・ サブフォーム(売上伝票サブ)は商品、数量、金額などを入力します。 そこで質問ですが、サブフォームの商品は商品コード(コンボボックス)を入力すると該当する商品名、単価などを商品台帳から引いてくる、としたいと思い、商品コードの「更新処理後」に以下のコードを記述しました。   Me![商品名] = DLookup("[商品名]", "[商品台帳]","[商品コード]= Forms![売上伝票メイン]![売上伝票サブ]![商品コード]")     サブフォーム上の商品名に商品台帳の商品名を入力するとしたつもりなのですが、何も表示されません。  単価も単位も同様です。  この方法ではだめなのでしょうか?  

  • メイン・サブフォームの内容を更新クエリで更新したい

    お世話になります。 現在、 tb受注日報(親)、tb受注伝票(子)で、受注伝票をサブフォームという形で組み込んだ【受注日報フォーム】と tb作業表(親)、tb作業表明細(子)で、作業表明細をサブフォームという形で組み込んだ【作業表フォーム】 があります。 【受注日報フォーム】上にあるコマンドボタンのマクロに、親同士、子同士での追加クエリを設定し、ボタンを押せば【受注日報フォーム】に入力した内容を【作業表フォーム】に反映させられるようにしています。 この要領でコマンドボタンを押せば以前に入力した【受注日報フォーム】の更新内容を【作業表フォーム】に反映させられるようにしたいと考えています。 そこで、親同士、子同士で更新クエリを作ってみた結果、親同士の更新は大丈夫でしたが、子同士の更新が一番目のレコードしか更新されませんでした。 更新クエリの抽出条件 親 フィールド 「識別番号」(オートナンバーです)   テーブル 「作業表」   抽出条件 [forms]![受注日報]![識別番号] 子 フィールド 「受注伝票番号」   テーブル 「作業表明細」   抽出条件 [forms]![受注日報]![受注伝票Sub].[form]![受注伝票番号] ちなみに親同士の追加クエリの抽出条件に使用した主キーは「識別番号」とは別の番号で、オートナンバーではなく、最大値に+1するやり方で振っている番号を使用していて、子同士の主キーは追加クエリも更新クエリもおなじ[受注伝票番号]を使用しています。 抽出条件かこの主キーの設定が問題なのかなあと思いますが、わからないのでどなたかご回答宜しくお願い致します。

  • Access2003 サブフォームについて

    サブフォームを持つ画面で 親子テーブルを共に更新しようとしていて挫折しかかっています。 そこで皆様の知恵を借りれれば幸いです。 <<画面表示>> メインフォーム…受注  ┗サブフォーム…受注明細 <<更新条件>> ・メインフォームは変更可能 ・サブフォームは追加、変更、削除可能 ・サブフォームのデータ変更時  →受注明細テーブルを更新しない ・メインフォームのデータ更新時  →受注テーブルを更新しない ・メインフォームの更新ボタン押下時  →受注テーブル、受注明細テーブルを更新 <<質問>> 1.サブフォームの値をテーブルへ  自動更新(項目変更時に付随更新)せずに  任意更新(ボタン押下時など)出来ますか?  [サブフォームに主キー項目を設置せず行追加すると Not Null制約で怒られます。] 2.VBで言うところのFlexGridの様にサブフォームを  制御出来ますか?  RecordSourceを使うのではなく、  VBA内で持っている値を各セルに設定する 3.そもそも同一画面内で親子テーブル共に更新することは  有り得ないことなんでしょうか?

  • access2007 サブフォームのエクスポート

    担当営業・売上月度別のデータを抽出用フォームを作成しました。 メインフォームでは担当を選択するためのコンボボックスと 売上月度を選択するためのコンボボックスを配置しています。 サブフォームはメインフォームで選択された条件の明細が 表示される設定となっています。 このサブフォームに表示された内容をエクセルにエクスポート させたいのですが、メインフォームにボタンを配置しても メインフォームの担当と売上月度の日付のみが エクスポートされるだけでサブフォームの内容がなに一つ エクスポートされません。 担当・。売上月度で抽出されたサブフォームの内容を エクスポートするにはどうすれば良いでしょうか? ご指導の程、宜しくお願い致します。

  • ACCESSのメインフォームとサブフォームについて

    ACCESSで、受注伝票のようなものを作成したいと思っています。受注伝票フォームに受注明細のサブフォームを埋め込んだようなフォームを作ろうとしています。その際、受注伝票と明細に受注コードのフィールドを設け関連づけたいのですが、メインフォームに受注コードを入力したらサブにも同じコードが自動的に振られるようなことはできるのでしょうか。 出来ないのであれば、どのように作ればよいのでしょうか。

  • Access2000でメインサブフォーム

    テーブル1 商品ID 数値型(主キー) 商品名 テキスト型 ------------------ テーブル2 売上ID  数値型(主キー) 商品ID  数値型 月日   日付型 売上個数 数値型 --------------------- 以上のようなテーブルがあり、テーブル1を「メイン」テーブル2を「サブ」のメインサブフォームを作成しました。 しかし、「サブ」のデータが多いため、さらに、サブフォームの日付フィールドを使い、抽出をしたいのですが、方法がわかりません。(例えば、9/1以上9/10以下のような抽出) いろいろやってみは見たのですが、思うようにできません。メインサブフォームでさらにサブフォームのデータを抽出するということは無理なのでしょうか?

  • access2003

    2000種ほどの商品を扱っています。商品コードひとつにつき、仕入先・取引先が1箇所ずつ決まっていて、値段の変化もあまりありません。伝票を見ながら、フォームから直接売上入力を行い、請求処理と売上分析に利用したく思います。 ◆親)売上入力フォーム:売上管理番号/日付/取引先/取引先伝票番号/売上合計金額 ◆子)売上明細フォーム:商品コード/商品名/単価/数量/明細金額 ◆売上入力テーブル:売上管理番号/取引先/日付/取引先伝票番号 ◆売上明細テーブル:明細番号/売上管理番号/商品コード/数量/明細単価 入力の効率化を図るため、1部品1取引先であることを利用して、親フォームで取引先を選択することで商品を絞り込み、子フォームの商品選択コンボボックスにはその取引先の商品だけが表示させるようにしたいと思います。どのような方法が考えれるでしょうか? クエリを使うのだと思いますが、いろいろ試しても失敗してしまいます。 また、その上でさらなる絞込みとして、明細の各行で各商品を選択する際に、商品コードの一部を入れたり、仕入先名を入れると部品が絞り込めるようにできないでしょうか? アドバイス、参考資料、なんでもお寄せください! どうぞよろしくお願いいたします。

  • 他のテーブルの抽出条件で更新したい。

    ・売上ヘッダ  伝票NO,売上金額合計 ・売上明細  伝票NO,明細NO,商品番号,売上金額 上記のようなテーブル構成の2つのテーブルがあります。 売上ヘッダの主キーは、伝票NOで売上明細の主キーは、伝票NOと明細NOです。 ここで、商品番号1の、売上金額に500円の差額があるため、、修正をしたいと考え、売上ヘッダと売上明細にある売上額を変更したいのですが、売上ヘッダの売上金額合計を更新する方法がわかりません。 ご教授いただけないでしょうか。