• ベストアンサー

access 絞込みフォーム

初心者です、よろしくお願いします。 仕様環境 WinXP access2002 請求管理のフォームを作っているのですが、壁に当たっています。 メインとサブのフォームがあってメインは顧客情報を 乗せています。サブにその顧客の簡単な請求履歴をのせています。 更に詳しくみるために別に「請求明細フォーム」というものを設けています。 これは請求書の内訳がのっています。 さてサブフォームの話ですが、このようになっています↓(簡単に書いてます)        請求番号   「詳細ボタン」 A0001   「詳細ボタン」 A0002      「詳細ボタン」を押すことにより、該当する請求番号の請求明細フォームに 飛ぶようにしたいのですが、うまくいきません。 パラメータを使えばできたのですが、パラメータを使わず、 ボタンを押すと該当する請求明細フォームに飛びたいのです。 請求番号に該当する情報だけ載せた請求明細フォームに飛ぶにはどうすれば よいのでしょうか?ちなみに請求明細フォームはクエリを返しています。 誰かお知恵をおかしください!

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

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.4

>主キーは「請求番号」フィールドになります。 これはメインのほうのソースの主キーですね サブで選んだレコードを表示するにはサブの主キーを渡す必要があります 主キーが請求番号と枝番の2つならその2つを渡します >上記の式はどこに入力すればよいのでしょうか? >クエリや詳細ボタン内のコードに記述したのですが、うまくいきません。 パラメータクエリは分かるのですよね Forms!顧客請求!顧客請求サブ!請求番号 Forms!顧客請求!顧客請求サブ!枝番 もパラメータです クエリの該当フィールドの抽出条件欄に書きます ボタンでクエリをソースにしたフォームを開いてやります

23tomo-u
質問者

補足

CHRONOS_0 様 できました! ありがとうございます! 該当するクエリの「請求番号」の抽出条件に以下を入力したら できました! [Forms]![顧客請求フォーム]![顧客請求サブフォーム]![請求番号] 最後にもしよろしければ、この文章は何を言っているのか教えてください! 特によくでてくる「!」がわかりません。 またこれはSQLの構文なんでしょうか?VBAなんでしょうか? SQLだと思うんですが・・ 私の持っているaccessの本は入門書とVBAやマクロの高度なテクニックが乗っている本があるのですが、 「こういう風に書く」というだけで構文の持っている意味がわかりません。 初心者の質問ですいません・・。

その他の回答 (5)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.6

>[Forms]![顧客請求フォーム]![顧客請求サブフォーム]![請求番号] >最後にもしよろしければ、この文章は何を言っているのか教えてください! フォームコレクションの顧客請求フォームのメンバーである顧客請求サブフォームの請求番号 コントロールの値 >またこれはSQLの構文なんでしょうか?VBAなんでしょうか? SQLを実際に走らせるのはデータベースエンジンJETですが Forms!・・・を解釈するのはJETのインタフェースである狭義のAccessでしょう AccessというのはデータベースエンジンJET、それのインタフェースであるデータベースウィンドウのもろもろを管理している狭義のAccess、もう一つのインタフェースVBAなどのプログラムの集合です

23tomo-u
質問者

お礼

CHRONOS_0様 回答ありがとうございます! うーん、難しいですね。 理解するにはまだまだ時間がかかりそうです・・。 >フォームコレクションの顧客請求フォームのメンバーである顧客請求サブフォームの請求番号 上記はなんとなくわかりました。 少しずつ理解を深めたいと思います。 ありがとうございました!

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.5

う~ん・・・パラメータは判ります? そもそも、 > 同じようにA0003やA0004、はたまたB0006などもあり、 > 一つ一つの詳細ボタンに、「"[請求番号] =A0001"」とか、 > 「"[請求番号] =A0002"」は後々増えていくことを > 考えると設定できません。 と、設定することは出来ません 要は、そう言う文章になるように作成すると言う話 フォーム名、サブフォームコントロール名、フィールド名、データの型が、判らないところでは何ともしようが無いです 例えばで言えば・・・ "[請求番号] = '" & [サブフォームの請求書番号のフィールド] & "'" と、いうような感じで生成してくると言う話 [請求番号]が、テキストと言う前提で例は提示してありますよ

23tomo-u
質問者

お礼

Dxak様 できました! 他の方の回答ですが、該当するクエリの「請求番号」の抽出条件に 以下を入力したらできました! [Forms]![顧客請求フォーム]![顧客請求サブフォーム]![請求番号] 私のつたない説明の中、ご理解頂きまして本当にありがとうございました!

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.3

#1です OpenForm メソッド - MSDN http://msdn.microsoft.com/ja-jp/library/cc346827.aspx と、言う話で・・・ WhereCondition で、「"[フィールド名] = xxxxx"」を渡してやればOK パラメータクエリが判るなら、このあたりの条件は判るとして・・・省略

23tomo-u
質問者

補足

Dxak様 回答ありがとうございます! 試してみましたが、おしいところまできています。 私の説明不足が大きいでしょう。 実際は・・        請求番号(主キー)   「詳細ボタン」 A0001  はA0001に関しての詳細を出したいと思います。  「詳細ボタン」 A0002    はA0002に関しての詳細を出したいと思います。 同じようにA0003やA0004、はたまたB0006などもあり、 一つ一つの詳細ボタンに、「"[請求番号] =A0001"」とか、 「"[請求番号] =A0002"」は後々増えていくことを 考えると設定できません。 良いサイトを教えて頂きありがとうございます。 差し支えなければ良い方法を教えてください。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

サブフォームの主キーをパラメータとして渡してやればいいじゃないですか =Forms!フォーム名!サブフォーム名!主キーフィールド名 ボタンを押したときにそのレコードがカレントになりますから フィールド名だけでボタンが押されたレコードの主キーを渡せます

23tomo-u
質問者

補足

CHRONOS_0様 回答ありがとうございます! 主キーは「請求番号」フィールドになります。 上記の式はどこに入力すればよいのでしょうか? クエリや詳細ボタン内のコードに記述したのですが、うまくいきません。 ちなみに フォームはメインが顧客請求フォーム、サブが顧客請求サブフォーム。 飛ばしたいフォームがメインは請求明細フォーム、サブが明細サブフォームです。 請求番号でつなげて1対多のリレーションをしています。 トンチンカンなことを言っていたらごめんなさい。 「ボタンを押したときにそのレコードがカレントになりますから」 ↑この通りにしたいです。 差し支えなければご教授お願いします!

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.1

パラメータを使用せずって?クエリ上の話? DoCmd.OpenForm で、フォームを開く時に、フィルタ条件使って、フォームを開く ので、十分だと思うけど?

23tomo-u
質問者

補足

Dxak様 回答ありがとうございます。 DXak様のご想像通りだと思います。 しかし・・ 当方初心者なのでVBAやフィルタ条件がわかりません。 今まで何かとあるとパラメータクエリでかわしてきました。 よろしければフィルタ条件の構文やマクロを記述頂ければ と思います。 よろしくお願いします。

関連するQ&A

  • access2000でのフォームの詳細ボタンについて

    access2000を使用して、顧客のカナを入力すると該当する顧客が抽出される一覧を作成いたしました。 作り方は、 メインフォームに顧客一覧のサブフォームを置きました。 検索カナ入力用のテキストボックスを置き、その横に検索ボタンを置いています。 ここまでは順調でしたが、サブフォームに置いた詳細ボタン(指定した顧客の詳細の単票フォーム)が作動しなくなりました。 サブフォームだけで実行すると表示されます。 メインフォームでボタンを押しても作動しません。 行き詰っています。どなたかご教授下さい。。 お願いします。

  • access フォーム間で情報が引き継がれない

    初心者です、よろしくお願いします。 仕様環境 WinXP Access2002 請求管理のシステムを作っています。 テーブルには 顧客マスタ(主キーは顧客番号でテキスト型 例:0001等) 請求マスタ(主キーは請求番号でテキスト型 例:A0001等) 明細マスタ(主キーは明細番号でオートナンバー ダミーみたいな感じで使っています。) そしてリレーションシップで顧客マスタ(1)→(多)請求マスタ(1)→(多)明細マスタになっています。 顧客マスタを元にしたフォーム(顧客入力フォーム)に顧客情報を入れて、 「請求書作成ボタン」を作り、そのボタンを押すと別のフォーム(請求書作成フォーム)に 飛ぶようにしているのですが、その際に顧客入力フォームに入力した情報を 引っ張っていくようにしたいのですが、うまくいきません。 ちなみに顧客マスタと請求マスタのリレーションは”顧客番号”でつなげています。 請求書作成フォームは請求書作成クエリから成り、 その中で顧客番号(テーブル:顧客マスタ)の抽出条件に[Forms]![顧客入力フォーム]![顧客番号]と 入れて”顧客番号つながり”で飛ぶようにしているのですが、 請求書作成フォームは開くのですけど、項目はすべて空白です。 またいろいろレコードを追加している内に、請求番号が既にあるものに対しては顧客情報も引き継がれることが判明しました。 構文が間違っているのでしょうか? 混乱しています、お助けください。

  • メインフォームから他フォームへの移動について

    Access2007を使用して、営業部内の顧客情報共有DBを作成しようとしています。 フォームは大きく分けて2つに分けており、 1)メインフォーム(担当営業選択及び該当顧客一覧表示) 2)顧客詳細情報の入力フォーム としています。 メインフォームはコンボボックスにて営業の選択を行い、選択後 同一フォーム内に作成したサブフォームにて担当顧客一覧が表示 される様にしています。 顧客一覧の顧客コードの部分をダッブルクリックするとその顧客の 詳細情報入力フォームへ移動sる様に設定したいのですが、 詳細情報入力フォームの先頭顧客番号へ移動するだけで、ダブルクリックした 顧客の詳細情報入力フォームへ移動できません。 恐らくどこかにリンク等の設定が必要ではないかと思いますが、それを どこでどの様に設定してよいのかがわかりません。 まだ勉強中の身で、色々検索しながら情報を入手したりマニュアルや参考図書 を読みながら奮闘しております。 この様な設定をされた事がある方がいらっしゃれば是非ともご教授頂ければ 幸いです。 宜しくお願い致します。

  • access2007 情報入力フォームの作成につい

    メインメニューのレイアウトで、情報入力ボタンと印刷ボタンを設定してあります。 情報入力ボタンをクリックすると「担当・顧客選択メニュー」に移ります。 「担当・顧客選択メニュー」の構成は 担当営業の選択 → コンボボックス 顧客情報(概要) → サブフォーム(担当営業コードで連結) となっており、担当営業を選択すると担当顧客がサブフォームに表示される 様になっています。 サブフォーム上の顧客番号をダブルクリックすると 「顧客情報入力フォーム」の同一顧客番号の情報へと移動し、顧客情報の 追加や編集がでいる様になっています。 今まで、直接「顧客情報入力フォーム」をあけると、画面下のレコード移動ボタンが 1/XXXXとなり、全顧客数と表示されている顧客が何番目の顧客であるかが 表示されていました。 今回、「担当・顧客選択メニュー」から上記の方法で「顧客情報入力フォーム」を 開けるとレコード移動ボタンの表示が1/1となり、その右にフィルタ適用と表示 されます。これの理屈は理解できるのですが、レコード移動ボタンを押すと 2/2となり、真白なブランクフォームが表示されてしまいます。 また、「担当・顧客選択メニュー」からダブルクリックで「顧客情報入力フォーム」へ 移動すると、同一顧客番号で移動しているはずが顧客番号がブランクの画面が 表示されてしまいます。「戻る」ボタンで再度同じ事をやると、今度はちゃんと 表示されます。 これがなぜそうなってしまうのか全くわかりません。 フィルタがかかっている状態で2/2となるのはなぜなのか、 ダブルクリックで同一顧客番号へ移動するはずが顧客番号なしのブランクフォームが 表示されるのはなぜなのか? お心当たりのある方、改善策のヒントを頂ければと思っております。 宜しくお願い致します。

  • アクセスで・・

    メインフォーム(ID)、サブフォーム(サブID、IDとIDのリレーション)があります。 それとサブフォームの内訳を入力するサブサブフォームが展開し、これはサブフォーム上のコマンドボタンクリックで、サブIDとリレーションされた形でデータを入力する。 という風にしたいのですが、コマンドボタンクリックのところのコードがわかりません・・ どなたかご教授願えませんでしょうか?

  • サブフォームを複数持つフォームを、一つのキーワード取得用フォームから印

    サブフォームを複数持つフォームを、一つのキーワード取得用フォームから印刷できますか。 印刷用フォームを作成しました。 その中には、基本情報とサブ情報1、サブ情報2…というような複数のサブフォームがあります。 基本テーブルは、 商品番号、商品名 内容 というようなフィールドがあります。   サブ1テーブルは、 商品番号、日付A サブ2テーブルは、 商品番号、日付B キーワード取得用フォームに、商品番号と日付を入れてコマンドボタンを押すと、サブフォームを複数持つフォームに、 (1)基本テーブルの内容と、 (2)それぞれのサブフォームには取得した日付の日付情報(複数レコードもあり) を入れて印刷したいのです。 こんなことは可能でしょうか。 コマンドボタンにクリック時のイベントを書けばいいような気もするのですが、方法がわかりません。 教えてください。よろしくお願いいたします。

  • ACCESSについてご質問です。

    バイト勤務管理表を作成しようとしています。メインフォームを「f_支給明細」,サブフォームを「f_支給明細サブ」としています(※メインフォームは,支給明細番号を1つのレコードとしています。)。 行いたいのは,サブフォームの「日付」の最新レコード(最新行)と,次候補最新の「日付」の値をピックアップしてメインフォームに表示させようとしています。 現在は,サブフォームのレコードソースを「t_支給明細サブ」として,「t_支給明細サブ」のフィールドに「日付」があり,メインフォームのコントロール名とコントロールソースをそれぞれ, 最新日付改 = Dmax("日付","t_支給明細サブ") 直前最新日付 = Dmax("日付","t_支給明細サブ","日付 < #" & 最新期日改 & "#") としています(※期日フィールドは,日付型)。 以上により,メインフォーム上に,日付を表示させることができたのですが,支給明細番号のレコードに関係なく,「t_支給明細サブ」の最新日付とその直前最新日付が表示されます(※例えば,支給明細レコードが「001」であっても「002」であっても,表示される日付は「2011/02/10」,「2011/02/18」であり同じ。)。 今回,教えたいただきたいのは,メインフォーム「f_支給明細」の支給明細番号ごとに,その画面上に表示されているサブフォームの最新日付等を表示させる方法です(※例えば,支給明細レコード「001」であれば,「2011/01/05」と「2011/02/10」,「002」であれば,「2011/02/05」と「2011/02/18」など。)。 知識不足のためにうまく説明ができてないかと思いますが,どなたか教えていただければ幸いです。

  • Access2000 単票フォーム上のボタンを押すと、同じIDを持つフォームが開くよういしたい

    Accessの初心者です。 本当に超がつく初心者ですので、解説もしてくださるととても嬉しいです。 宜しくお願いします。 請求書番号連番を取得するフォーム(テーブルも)があります。 請求書番号は特殊な為、現時点ではじか打ちで作成しています。 それとは別に、顧客ごとに請求データを入力するフォーム(テーブルも)があります。 その二つは、請求書番号でひもづけています。 <請求書番号連番取得フォーム/帳票> ・請求書番号 ・請求日 ・顧客ID <請求データの入力フォーム_A社/単票> ※これがB社、C社と複数存在します。 ・顧客ID ・請求書番号 ・商品CD <請求書番号連番取得フォーム/帳票>上にボタンをつくり、そのボタンを押すと、 同じ顧客IDを持つ<請求データの入力フォーム/単票>が開けたらな・・・と思っているのですが、 わかりますでしょうか・・・・。 どうか、宜しくお願い致します。 <請求書番号連番取得フォーム/帳票> _________________________________________________________________ 請求書番号|請求日 |顧客ID|  _________________________________________________________________ 09BB87ZZ1|2009/04/01|0001 |■(ボタン) -------------------------------------------- 09BS87AA2|2009/04/10|0003 |■(ボタン) -------------------------------------------- ↑この1行目の■(ボタン)を押すと、顧客ID「0001」の請求書番号「09BB87ZZ1」の単票フォームが開き、 (請求書番号欄に「09BB87ZZ1」が入っている。) 2行目の■(ボタン)を押すと、顧客ID「0003」のフォームを開く・・・というような動きです。 説明が下手で申しわけありません。 お願いします。

  • ACCESSで、メインフォームとサブフォームがあるとき・・・

    Accessで、メインフォームとサブフォームがあり、メ インフォームのテキストボックスで期間を指定し、再 クエリを行うマクロボタンでサブフォーム上に期間指 定したデータのみが表示されるようにしています。 また、Access起動時に開くフォームがあり、そのフォ ームに、先ほど上述したメインフォームが開くマクロ ボタンを作成したところ、パラメータの入力画面が出 てきてしまいました。 恐らく、サブフォームの抽出用のクエリに設定してあ るものだと思いますが、これが表示されないようにす ることは出来ないのでしょうか?

  • ACCESSの絞込み操作

    説明不足になると思いますが その場合補足します、のでよろしくお願いします フォームのコンボを設け、ここに分類コードを 入れると該当データが表示されました これをサブフォームを利用するように変更しました ロジック的には このサブフォームはクエリで分類コードによって より分けています つまり、抽出条件に [forms]![フォーム名]![コンボ2] と入れています。 これは見ると、きちんとパラメータがわたされて データを選択されています さて、 サブフォームに分割しない前はコンボの プロパティで更新後の処理に DoCmd.requryを入れています サブフォームにした場合、これに変わる処理 として、何を実行していいか、教えてください