Access2010のフォームで異なるテーブルを表示する方法を教えてください

このQ&Aのポイント
  • Access2010のフォームでレコードセレクタをクリックすると、詳細フォームを表示することはできますが、異なるテーブルを表示させる方法がわかりません。
  • 同じテーブルを表示させる方法は見つかったのですが、フォームBの場合はエラーになって動かない問題があります。
  • どうすればフォームAのレコードセレクタをクリックしてフォームBの内容を関連付けて表示することができるでしょうか?ご教示いただけると助かります。
回答を見る
  • ベストアンサー

レコードセレクタをクリックすると詳細フォームを表示

このサイトに何度か、登校しています。eternallyと言います。 さて、質問の内容というのが、ACCESS2010のレコードセレクタについてです。 【Aテーブル】 ID  会社名  ソフト名  ソフトの説明 1   AAAAA BBBBB CCCCCCCC 2 DDDDD EEEEE FFFFFFFFF 3 GGGGG HHHGH IIJIIII 【Bテーブル】 ID 金 額  所有有無 1  50,000 X 2 35,000 ○ 3  70,000  × Aテーブルの内容をそのまま、フォームAとして帳票フォームで表示しています。 ここでフォームAのレコードセレクタをクリックすると、Bテーブルを関連付けた フォームBの内容を表示したいのです。 他のサイトで調べましたが、 同じテーブルをレコードセレクタで表示させる方法は見つかったのですが、 違うテーブルを表示させる方法がみつからなかったので、このサイトで聞いてみようと思いました。 Private Sub Form_Click() Forms!フォームA.Filter = "ID=" & Me!ID Forms!!フォーム.FilterOn = True End Sub 上はフォームAのレコードセレクタをクリックすると、 詳細フォームを表示する場合のVBAです。 フォームBの場合はエラーになって、動いてもくれません。 「フォームBが見つかりません。」というエラーです。 どうぞ、よろしくお願いします。

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

  • ベストアンサー
回答No.1

下記のコードでどうぞ。 Private Sub Form_Click() Docmd.OpenForm "フォームB", , , "ID=" & Me!ID End Sub

関連するQ&A

  • MS-Access レコードセレクタのイベント_2

    QNo.7816433で質問し、ご回答をいただいたのですが、新たな質問が発生してしまいました。 << ご回答 >> >Private Sub Form_DblClicj(Cancel As Integer) > Forms!フォームB.Filter = "ID=" & Me!ID > Forms!フォームB.FilterOn = True >End Sub << 新たな質問 >> この内容でイベントプロシージャを書いて、フォームAのレコードセレクタのWクリックで実行したところ、「フォームB」が見つからないエラーになってしまい、確かに「プロジェクトエクスプローラ」にはフォームBがありません。 フォームBは、対象テーブルと連結したフォームで、間違いなく存在するのですが、恥ずかしながらさっぱり理解できません。 フォームBも、フォームBを呼ぶフォームAも同じテーブルだからでしょうか? 因みにフォームAはクエリ経由であり、フォームBはテーブルそのものに連結しています。 もし、それが原因であるなら、フォームBは非連結で作るしかないのですが、 Forms!フォームB.ID = Me!ID のような記述で、全項目記述すれば良いでしょうか?

  • MS-Access レコードセレクタのイベント

    こんにちは。 MS-Access2003です。レコードセレクタをダブルクリックした時に以下のようなイベントを設定したいと思っています。 1.テーブルの全データを一覧で表示するクエリを連結した、表形式のフォーム(フォームA)が  あり、そのレコードセレクタをダブルクリックします。 2.別に、そのテーブルを連結したフォーム(フォームB)があり、1.でダブルクリックしたデータが、  その「テーブルを連結したフォーム」に表示されて欲しい。 フォームAは参照のみであり、フォームBは更新可能な設定です。 レコードセレクタのイベントはマクロで組みたいのですが、フォームBを開いた後どうすれば そのデータをフォームBでフィルターをかけたように表示できるのかが分かりません。 ご教授いただけると助かります。 よろしくお願いいたします。

  • Access:フォームをクリック!該当レコードを開くには?

    Aテーブルを参照している2つのフォームがあります。 Bフォームは、Aテーブルの全内容を表示し、 Cフォームは、特定の項目のみを表示します。 そこで!Cフォームで、詳細を見たいレコードをクリックすると、 Bフォームの該当レコード(全内容)が開かれるようにしたいのですが、 可能なのでしょうか。 VBAは初心者ですが頑張りますので、ぜひ教えてください。

  • Access2007 サブフォームの新規レコードをすぐにフォームに表示させる方法

    サブフォーム上で適当なレコード(IDと商品名)を選択して、そのレコードにある入力ボタンを押すと、フォームのコンボボックス上にその商品名が出るようなフォームがあります。 すでに入力済みのIDと商品名は表示されます。 ところが、サブフォーム上でIDと商品名を新規入力して入力ボタンを押すと、フォームのコンボボックスは空白となり、商品データが表示されません。 しかし、一旦フォームを閉じて開くと、データは表示されています。 IDと商品名を新規入力して、そのままフォームのコンボボックスに反映させたいと思います。 入力ボタンはこのようにやってみました。 Private Sub 入力_Click() DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 Forms!フォーム!ID = Me.ID End Sub または、 Private Sub 入力_Click() DoCmd.RunCommand acCmdSaveRecord Forms!フォーム!ID = Me.ID End Sub ご教授いただければ幸いです。よろしくお願いいたします。

  • Accessのレコードセレクタについて

    はじめまして、質問です。 フォーム画面にサブフォームがあり、検索するとサブフォームにワークテーブルからのレコードが出力されるのですが、ある画面では初期表示からレコードセレクタをホイールで移動でき、もう一方はできないものがあります。 レコードセレクタのデフォルトはどんな動きなのでしょうか? キーボードの方向キーで移動できるものとできないものがありのですが、何で制御しているのか? 漠然でしたら質問にはお答えしますので宜しくお願いします。

  • フォーム上でレコードの非表示

    どなたか教えて下さい。テーブルからフォームを作成したのですが、下のレコードの表示を非表示にする方法を教えて下さい。フォームヘッダー等を色々調べましたが、どうしても一番下にレコード(レコードの数、次に進むボタン等)が表示されてしまいます。よろしくお願い致します。

  • access レコードを他テーブルにコピーしたい

    教えてください 現在テーブル5つ(A,B,C,D,E)とそれぞれのレコードを表示するフォームが5つ(A1,B1,C1,D1,E1)あります。 テーブルのフィールドはそれぞれ同じです。 やりたいことはフォーム上からレコードセレクタで選択しているレコードを、 コンボボックスから選んだテーブルに新規追加(コピー)することです。 添付画像のようにフィールドが定義されており、name,addres,phoneだけをコピーしたいと思っています。 よろしくお願いします。 A.mdb =================================================== id     name     addres     phone     etc =================================================== 1     suzuki     tokyo     03333     aaa.txt 2     saito     oosaka     0638      3     tanaka     tokyo     03848     bb.jpg

  • ACCESS レコードセット

    非連結フォーム(frm_B)のOPEN時にADOレコードセットでデータを表示させ、更新ボタンを押すと、追加クエリでそのフォーム上で表示されたデータをテーブル(tbl_B)に新規登録させ、さらにその非連結フォームには別のフォームの内容を表示させるVBAを書きましたが、最後に別のフォームの内容で非連結フォームにデータをセットしたとき?にテーブルのデータも更新されてしまいます。最初にテーブルに追加したデータとは切り離したいのですがどうすればうまくいくのでしょうか。 ・フォームfrm_BをOPEN 'DAOレコードセット Dim dbDAO As DAO.Database Dim rsDAO As DAO.Recordset Dim stSQL As String stSQL = "SELECT No.,規格No.,改訂No. FROM tbl_B " _ & "WHERE 規格No. ='" & Forms![frm_A].[規格No.] & "'" _ & "AND 改訂No. =" & Forms![frm_A].[改訂No.] & "" 'DAOレコードセット Set dbDAO = CurrentDb Set rsDAO = dbDAO.OpenRecordset(stSQL) Set Me.Recordset = rsDAO Me![No.].ControlSource = "No." Me![規格No.].ControlSource = "規格No." Me![改訂No.].ControlSource = "改訂No." 'DAOレコードセットクローズ Set rsDAO = Nothing Set dbDAO = Nothing ・更新ボタンクリック Private Sub cb_kaitei_Click() Dim stDocName As String   '追加クエリ stDocName = "q_B" DoCmd.OpenQuery stDocName, acNormal, acEdit Forms![frm_B].SetFocus Me![No.] = Forms![frm_A].[No.] Me![規格No.] = Forms![frm_A].[規格No.] Me![改訂No.] = Forms![frm_A].[改訂No.] ・ このときにレコードセットで追加したレコードのほうも更新されてしまいます。これを別のレコードと判断させたいのです。よろしくお願いします。

  • ACCESS 指定レコードのレポート印刷

    OKWaveでも他の方が質問していますが、同様な対応をしても、どうも正常動作しません。 内容:1.フォーム作成完了 → 2.レポート作成完了 → 3.現在フォームに表示されているレコードを(2)で作成したレポート形式で印刷(プレビュー)をしたい。 レポート名:看板 フォーム名:管理    フォーム画面上には ID を表示させています。 テーブル名:管理TBL 管理TBLには ID というフィールドはあります。 実施内容:下記内容を印刷コマンドボタンのイベントプロシジャーに記述。 Private Sub report_Click() Dim stDocName As String   DoCmd.OpenReport "看板", acViewPreview, , "[ID]=" & [Forms]![管理]![ID] End Sub 例えば、レコード3のフォーム上で上記内容のコマンドボタンをクリックすると、IDのパラメータのポップアップが表示され3を入力後、看板のレポートプレビューが表示されますが、固定データのみ表示されているレポートで当該レコードの内容が反映されたレポートが表示されません。 レコード1のフォーム上で実施したら、IDパラメータポップに1を入れると全レコードのレポートがプレビューされます。 どうしたら、カレントレコードの内容のみを反映したレポートをプレビューさせることができるのでしょうか、ご教授下さい。また IDパラメータポップアップも表示させたくありません。

  • レコードセレクタ、移動ボタンを非表示にしたときの余白を消したい

    Access2000を使用しています。初心者です。 フォームのプロパティで、レコードセレクタや移動ボタンを「いいえ」に設定すると、(レコードセレクタや移動ボタンのスペース分)右端と下にグレーの余白が表示されてしまいます。これらは消すことはできないのでしょうか。 簡単にできるように思うのですが、ヘルプ等で設定方法が見つけられませんでした。 初歩的な質問ですが、よろしくお願いします。