• ベストアンサー

ACCESS サブ・メインフォームのリンク方法を教えてください。

ACCESS2000で、サブ・メインフォームともクエリからのデーターになります。フォーム上にサブフォームは作成できたのですが、リンクしてません。参考書には、リンク子・親フィールドに結びつける項目名を入力と書いているのですが、プロパティをひらいても、子・親フィールドの項目がありません。 素人が参考書片手に、作成しているもので、専門用語が、いまひとつよくわかりません。お手数ですが、よろしくお願いします。

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

1)メインフォームをデザインビューで開く 2)プロパティシートを開き、「データ」タブをクリック (プロパティシートは、メニューの「表示(V)」→「プロパティ(P)」か、コントロールなどの右クリックメニューから開けます) 3)サブフォームをクリック (このとき、間違ってサブフォーム内のコントロールにフォーカスを当てないように、サブフォームの輪郭をクリック) 4)「リンク子フィールド」にサブフォームのフィールドを、「リンク親フィールド」にメインフォームのフィールドかコントロールを、それぞれ指定 (双方を複数指定する場合は、「リンク子/親フィールド」のどちらかにカーソルを合わせたときに右端に表示される「・・・」(ビルダ)ボタンをクリックして、指定) サブフォーム内のテキストボックスなど、サブフォーム自体以外にフォーカスがあると、「リンク子フィールド」等は表示されませんので、ご注意を。

その他の回答 (1)

  • asuka546
  • ベストアンサー率21% (21/99)
回答No.1

サブとメインの元になっているテーブルはリレーションシップで繋がっていますか? 参考書の最初のほうにリレーショナルシップに関する記事が載っていると思うので呼んでみるといいと思います。 メニューの[ツール]から[リレーションシップ]を表示します。[表示][テーブルの表示]で元になるテーブルを読み出し。リンクしているIDなどをつなげてください。(ドラッグ) リレーショナルシップの種類を1対多にし、参照整合性、フィールドの連鎖更新、レコードの連鎖削除をチェックしましょう。 そうの上でサブフォームを作るとリンクして更新できるはずです。

関連するQ&A

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

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

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

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

  • アクセスのメインフォームのみRequeryしたい

    アクセスでフォームを作製しています。 シンプルに「メインフォームの中にサブフォームがある」形で作製し各フォームにはクエリをレコードソースとして指定しています。検索したいデータのコードを入力してそのデータを表示させる・・・という一般的なフォームなのですが、メインフォームのみRequeryさせたいのですができますか? [Forms].[メインフォーム].requery とするとサブフォームまで再計算されてしまいますが、ここでサブフォームは再計算させないで、メインフォームだけ再計算させたいのです。宜しくお願いします。

  • アクセスのサブフォームからメインフォームへキーで切り替えをする

    何度もお世話になっております。m(_ _)m アクセスのフォームで、サブフォームを作成しています。 EnterキーまたはTabキーで、フォームの中を進んでいくと、メインフォームのフィールドからサブフォームのフィールドへ進みます。 この進む順番は、タブオーダーで設定できるので問題ないのですが、 サブフォームの情報を入力し終えて、メインフォームへカーソルを飛ばしたい場合、どうすればいいのでしょうか? そのままEnterやTabを押しても、サブフォームの中の新規レコードが追加されるだけです。 自分でキーなどを設定できるのであれば、なおさら良いのですが・・・ とりあえず、基本的な操作方法として、サブフォームからメインフォームへ移るキーを教えてほしいです。 よろしくお願いします。

  • Accessのサブフォームからフォームフィルタを使ってメインフォームも含めたレコードの抽出が出来ないのは何故でしょうか?

    フォームフィルタを利用してサブフォームに入力されている値でレコードの抽出を行いたいのですが、うまくできません。 メインフォームが持っているレコード全てを持ってきます。 メインフォームに含まれているデータが100件なら、それ全てを表示してしまうということです。 私が抽出したいレコードは2件だけです。 メインフォームからフォームフィルタを利用して抽出すると正しい結果が得られます。 これはどうしてでしょうか? サブフォームへの設定が何か足りないのでしょうか? 親・子のフォームのテーブルは同一のものです。 カテゴリーで親と子にフォームを分けました。 親にはクエリはなくて、リレーションシップしたテーブル数種から直接フォームにひっぱってあります。 子は一つのテーブルからクエリを作って、そのクエリからフォームに引っ張っています。 Access2003です。 どなたかご教示いただきますようお願いいたします。

  • Access メインフォーム サブフォームにて

    お世話になります。 Accessにて メインフォームにコマンドボタンを置いて、クリックするとサブフォームのレコードが 次に行くようにしたいのですが、 コマンドボタン クリック Forms![メインフォーム]![サブフォーム名].Form!フィールド名.SetFocus DoCmd.GoToRecord , , acNext メインフォームとサブフォームのレコードが次に行ってしまいます。 サブフォームだけ次のレコードに行くには、どのようにすれば良いのでしょうか。 分かる方教えて下さい。 宜しくお願いします。

  • ACCESS2000で、サブフォームのデータを並べ替えする方法は?

    アクセス初心者+αの者です。 メインフォームを開いた時に、サブフォームにはメインとのリンク項目に該当するデータをクエリから抽出し、表示するようになっています(データによっては複数件あり)。 データ抽出は出来てますが、データの表示順がうまく出来ません。サブフォームのレコードソースSQL文にOrderBy句で指定してもダメでした。 メインフォームの並べ替えプロパティが怪しいと思ってるのですが、どのように記述すれば良いのでしょうか?(VBAでもOKです) 並び替えしたい項目は、サブフォーム内に持ってます。 情報の不足もあるかもしれませんが、よろしくお願いします。m(__)m

  • ACCESSのリンクエラー

     「商品」テーブルと「仕入」テーブルで「1対多」のリレーションを構築し、この二つのテーブルからフォームを作成したのですが、「仕入サブフォーム」に新規Dataを追加しようとすると、 「”LinkMasuterFields/リンク親フィールド”プロパティの設定でエラー’このオブジェクトには、オートメーションオブジェクト’商品’は含まれません。’が発生しました。」 と出て、新規Dataを「仕入」サブフォームに入力しても「商品」テーブルとリンクされていません。  なんとか解決したいのですが、Helpだけでは良く判りません。どなたかよろしくお願いいたします。

  • メインフォームからサブフォームの背景色を変えたい。

    メインフォームからサブフォームの背景色を変えたい。 いつもお世話になっています、度々よろしくお願いします。 メインフォームの開く時にレコード内容によりメインフォームの背景色を変えています、 同時にサブフォームの背景色も同色に変更したく(メインフォームの開く時イベント)に下記コードでやってみたのですが プロパティー、メッソッドがサポートされないとエラーが出ます、 Me!サブフォーム名.詳細.BackColor = RGB(192, 192, 192) 親フォームからサブフォームの背景色変更は出来ないのでしょうか? アドバイス宜しくお願いいたします。

  • 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”になる。          行削除しても「合計金額」は変わらず、変更前のまま。 どちらも、サブフォオームの「金額計」は正しく表示されています。 以上、よろしくお願い致します。

専門家に質問してみよう