• 締切済み

メインフォームとサブフォーム2つを選択クエリで統合

メインフォームとサブフォーム2つを選択クエリで統合 Access2003、Win7 初めまして、初心者です。 選択クエリで困っています。よろしくお願いいたします。 メインフォーム--------------- 受付ID 部門 依頼者 サブフォーム1(帳票)--------------- 受付ID 商品1 個数 単価 商品ID(オートナンバー) サブフォーム2(帳票)----------------- 受付ID 作業1 個数 単価 作業ID(オートナンバー) となっています。問題となっているのは、選択クエリにて、受付IDにて紐付けて すべてを統合したいと思っています。 たとえば、サブ1のレコードが1 サブ2のレコードが3だとすると 選択クエリ上では、 1メイン受付ID 部門 依頼者 サブ1商品1 個数 単価 商品ID サブ2作業1 個数 単価 作業ID 2メイン受付ID 部門 依頼者 サブ1商品1 個数 単価 商品ID サブ2作業1 個数 単価 作業ID 3メイン受付ID 部門 依頼者 サブ1商品1 個数 単価 商品ID サブ2作業1 個数 単価 作業ID 先頭の番号はレコード数です。 メインの情報は同じで、サブ1の情報がサブ2のレコード数に引っ張られて、コピーされてしまいます。 1メイン受付ID 部門 依頼者 サブ1商品1 個数 単価 商品ID サブ2作業1 個数 単価 作業ID 2メイン受付ID 部門 依頼者 (空欄)             サブ2作業1 個数 単価 作業ID 3メイン受付ID 部門 依頼者 (空欄)             サブ2作業1 個数 単価 作業ID 上記の様なイメージになるのが理想なのですが、これは仕様なのでしょうか? わかりにくいとは思いますが、よろしくお願いいたします。

みんなの回答

  • layy
  • ベストアンサー率23% (292/1222)
回答No.1

メインが1、サブ1が2、サブ2が3の関係のとき6つ出来上がりませんか?。 クエリのデザインで、各テーブル間の結合関係がどうなっているか見直し。 例えば、 メインとサブ1で一致するもののみ、と結合したらサブ2の2番目3番目が紐付かない、そんな感じで今の状態になかったかと思われます。 3つのテーブルを1つのクエリで結合等すると便利でしょうが、複雑なためそれだけ見直し箇所は多くなります。 1つ目のクエリでメインとサブ1の結合をしてその結果から2つ目クエリを作成しサブ2と結合してはどうですか。最初は機能分割したこれのがわかりやすいかと思います。

関連するQ&A

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

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

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

    Accessにてメインフォーム(単票形式)+サブフォーム(帳票形式)を使って進捗管理をするデータベースを作っており、新規にメインフォームで入力し、サブフォームで入力したデータを表示させてます。 サブフォームで更新したいレコードをクリックしたときにメインフォームでそのレコードを表示させるにはどのようにすればよろしいのでしょうか?

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

    質問させていただきます。 フォーム/サブフォーム形式で画面を作っています。サブフォームは帳票形式で、複数のレコードを表示しており、各行の左にコマンドボタンを用意し、それをクリックすると、更新クエリー、削除クエリーが動くようにしています。 しかし、更新、削除クエリーとも ”0件のレコード”で処理が正しく動作しません。 ちなみに、両クエリの抽出条件は・・・ [Forms]![メインフォーム]![サブフォーム]![商品コード] しかし、フォームを使わずクエリーから実行する(パラメータに条件を手入力する)と正しく動作します。 記述ミスがないか何度も見返したのですが・・・。 「サブフォームの目的の行の商品コードと一致するデータを処理する」としたいのですが・・・。

  • サブフォーム内の再クエリー

    メインフォームに仕入先コードのコントロールを配置し、サブフォームに商品コードがあります。 メインフォームの仕入先コード(コンボボックス)を選択した時に、サブフォームの商品コード (コンボボックス)に表示される商品を指定した仕入れ先の商品のみ抽出する為に 仕入先コードの更新後処理に再クエリを実行しているのですがサブフォーム内の商品コードが 更新されません。 再クエリのコントロールとして、サブフォームを指定してみましたが、やはり駄目でした。 どのように指定すれば、意図した動きになるのか、お分かりになる方がいましたら、 ご教授の程、お願いします。

  • メインフォームとサブフォームのレコードを複製

    (昨日同じ質問をあげましたがカテゴリが間違っていたのでこちらにあげなおしました) メインフォーム「MAIN」にサブフォーム「REN」を埋め込んでいます。 【メインフォームMAIN】 テーブル名:JIK ID:事件ID 【サブフォームREN】 テーブル名:REN ID:連絡先ID(・事件ID) ボタンをクリックすると、メインフォームで表示させているレコードを複製させたいです。 以下を参考に、そのとおり(のつもり)に作ってみたのですが (メインフォーム「MAIN」に「txtCopy事件ID」という名前のテキストボックスも作成しました) 「コマンドまたはアクション”追加貼り付け”は無効です。」 とエラーメッセージが出てしまいます。 どのように修正すればよいでしょうか? http://www.accessclub.jp/bbs3/0103/superbeg36719 … ちなみに追加クエリだけを実行すると 表示させているメインフォーム「MAIN」のレコードに、 サブフォーム「REN」のレコードが追加され、 サブフォーム「REN」のレコードが2倍になりました。 以下追加クエリとコードです。 【追加クエリ】 INSERT INTO REN ( 事件ID, 氏名, フリガナ, ・・・ ) SELECT [Forms]![MAIN]![事件ID] AS 式1, REN.氏名, REN.[フリガナ], REN.報告書, ・・・ FROM REN WHERE (((REN.事件ID)=[Forms]![MAIN]![txtCopy事件ID])); 【VBA】 Private Sub 明細コピー_Click() On Error GoTo Err_明細コピー_Click Me!txtCopy事件ID = Me!事件ID DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append Dim stDocName As String DoCmd.SetWarnings False ' システムメッセージ非表示 stDocName = "追加クエリ" DoCmd.OpenQuery stDocName, acNormal, acEdit DoCmd.SetWarnings True ' システムメッセージ表示 ' サブフォーム再クエリ Me!REN.Requery Exit_明細コピー_Click: Exit Sub Err_明細コピー_Click: MsgBox Err.Description Resume Exit_明細コピー_Click End Sub よろしくお願いいたします!

  • サブフォーム形式にすると選択クエリがうまくいきません

    アクセスで物件管理のメインフォームとサブフォームを作りました。 サブフォームの中で選択クエリを使い、地区を選択すると、その地区内の営業マンのみが選択できるコンボボックスを作ったのですが、 メインフォームの中に組み込んだ状態にするとパラメーターの入力を求められうまくいきません。 クエリの設定(営業コンボボックスで[Forms]![サブフォーム]![地区])が間違っているのでしょうか? 初歩的な質問ですがよろしくお願いします。

  • Accessでサブフォームの合計をメインフォームに

    Access2007で開発しています。 メインフォームにサブフォームを貼り付けており、 サブフォームに入力した「数量」「単価」から「金額」を計算して表示し、 その合計金額をメインフォームのテキストボックス(非連結)に表示しようと しています。 サブフォームは行単位で追加、削除が可能です。 サブフォームの更新結果が正しくメインフォームに表示されずに困っています。 おわかりの方、おられましたらお教え頂きたく、よろしくお願い致します。 【サブフォーム】   ・レコードソース:T_明細   ・[詳細]項目:数量・・・レコードソース=T_明細・数量        単価・・・    〃    =T_明細・単価        金額・・・数量および単価のAfterUpdateで計算して表示。    [フォームフッター]項目:金額計・・・コントロールソース=Sum([金額])   ・Vbaコード:   Private Sub Form_AfterUpdate()   Forms![メインフォーム].合計計算   End Sub   Private Sub Form_Delete(Cancel As Integer)   Forms![メインフォーム].合計計算   End Sub 【メインフォーム】  ・テキストボックス:「合計金額」(非連結) Public Sub 合計計算()    Me.サブフォーム.Requery   方法1: Me!合計金額 =DSum("金額", "T_明細", (キー項目指定 記述省略))   方法2: Me!合計金額 = Me![サブフォーム].[Form].[金額計] End Sub ここで、 方法1の場合:数量、単価の変更入力及び行追加は正しく動作するが、          行削除の後、メインフォームの「合計金額」が再計算されず、変更前のまま。 方法2の場合:数量、単価の変更入力及び行追加すると、「合計金額」が”0”になる。          行削除しても「合計金額」は変わらず、変更前のまま。 どちらも、サブフォオームの「金額計」は正しく表示されています。 以上、よろしくお願い致します。

  • クエリ式でDcount の代わりは?

    クエリでわからないことがあります。 添付図のように、商品IDに対する部門IDの個数(または有無)を調べたいと思って、 部門1: DCount("[部門ID]","[T_部門]","[商品ID]=" & [T_商品情報].[商品ID] & "and [部門ID]=1") 部門2: DCount("[部門ID]","[T_部門]","[商品ID]=" & [T_商品情報].[商品ID] & "and [部門ID]=2") と、[Q_発注管理]のクエリ式に入れてカウントはできたのですが、重くなってしましました。 このような場合、簡単に下記のような結果を得られるような方法はないでしょうか? ※ 今のところ、[Q_発注管理]は、選択クエリです。、 ※ [T_商品情報]と[Q_発注管理]のレコード数(6万くらい)は同じになります。 ※ 部門1(部門2)は、個数でなく、有無(True,False)でもいいです。

  • サブフォームからメインフォームのフィールドにエンターキーで移動したい

    ACCESS2000です。 フォームの中にサブフォームを作っています。 入力される都合で、フォームの中途にサブフォームがあります。このサブフォームのレコードの数は固定しています。(今は19です) サブフォームは帳票形式です。 サブフォームの最後のレコードでエンターキーやTABキーが押された時、メインフォームの指定するフィールドに移動するには、どうすれば良いでしょう。 使用者に特殊なキー操作を強要したくないので、VBAで記述したいのですが。

  • サブフォームからメインフォームの絞込をしたい

    サブフォームの項目からメインフォームの絞込をおこないたいのですが、うまくいきません やりたいこととデータベースの状況は以下のとおりです メインフォームに「会社名」があり、サブフォームにその会社の「ブランド名」(一社に対し複数存在する)とその「業種」(1つのブランドにつき1つ)がある。 メインフォーム----会社名(テキスト) サブフォーム--ブランド名(テキスト)----業種(コンボボックス) 【やりたい事】 サブフォームにある業種をメインフォーム上のフィルタ用コンボボックスで選択し、選択した 業種を持つ会社名のみ表示したい(たとえばケーキを扱うA社とD社、Z社のみメインフォームで表示するようにする) 【コード】 現在以下のようなコードを作成しています。 テキスト欄に「業種」を打ち込み、コマンドボタンを押して絞り込む ※本当はコンボボックスで選択したいのですが・・・ Private Sub コマンドボタン名_Click() Me![サブフォームのパーツ名].Form.Filter = "[コンボボタン-業種] Like '*" & Me.テキスト欄 & "*'" Me![サブフォームのパーツ名].Form.FilterOn = True Exit_コマンドボタン名_Click: Exit Sub End Sub 作成しましたが、レコードを移動するたびにパラメータ入力のポップアップがでてきます フィルターもかからず、絞込が全くできていません どなたか詳しい方ご教授よろしくお願いいたします

専門家に質問してみよう