• ベストアンサー

ACCESS2000のフォームの表示について

ACCESS2000の初心者です。AとBの2つのフォームがあり、それぞれテーブルが別ですが、ID名が同じにしてあります。 例えば、Aフォームを開いて、ID番号100を閲覧しているとき、Bフォームを開くと、BフォームのID番号100のデータを閲覧できる方法はどうすればよろしいのでしょうか。いろんな参考書をみてみたりしましたが、いまいちピンポイントな回答がありません。よろしくお願いいたします。

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

  • ベストアンサー
  • oka123
  • ベストアンサー率31% (69/219)
回答No.3

NO1です 追加説明です 新規(選択クエリー)クエリーを作成します 元のテーブルはBフォームに使用しているテーブルです テーブルの全項目をフイールド横方向に展開(出力指示) フイールドのところに当然、ID番号とあるはずなので ここのところで、下部の「抽出条件」のところへ [FORMS]![Aフォーム名]![AフォームのなかでのID番号につけている名前] を入力すると そのときのAフォームに表示されている ID番号の値と同じレコードを選択しなさい という意味になります Bを開くマクロ命令の時にフイルター指定でこのクエリー名を入れます

spooker
質問者

お礼

丁寧な回答ありがとうございました。これでなんとか悩んでいたことが解決できそうです。助かりました。

その他の回答 (2)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

>Aフォームを開いて、ID番号100を閲覧しているとき、Bフォームを開くと、BフォームのID番号100のデータを閲覧できる方法 一番簡単な方法はAにBを開くボタンを作りBを開く時にフィルタを指定する方法です。ボタンを配置するとウィザードが開くのでボタンの動作をフォームの操作でフォームを開くにします。次にBを選択し特定のレコードを表示するにします。AとBのIDを関連付けて結合します。後は順次進めて完了させればできます。 VBではBを開くボタンの名前をCmd1とすると下記になります。Bを開く時に開くコマンドに因数でIDの抽出を指定します。 Private Sub Cmd1_Click() On Error GoTo Err_Cmd1_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "B" stLinkCriteria = "[ID]=" & "'" & Me![ID] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Cmd1_Click: Exit Sub Err_Cmd1_Click: MsgBox Err.Description Resume Exit_Cmd1_Click End Sub これが簡単。

spooker
質問者

お礼

Access2000のVBAでまだ作製したことがなく、エクセルでしかVBAを使用したことがありませんでしたが、この方法でも試してみようと思います。非常に丁寧な回答ありがとうございました。わかりやすかったです。

  • oka123
  • ベストアンサー率31% (69/219)
回答No.1

いろんな方法があります 1.BをAのサブフォームにする   Aの中のどこかにBを表示させるサブフォームエリアを作る   AとBとのリンク用項目は ID番号 を指定 2.Aを見ていて必要なときにだけBを表示させる方法   Bをポップアップフォームにする   Bの使用クエリーには選択クエリーを指定する   その選択クエリーにはAで見ている(カーソルされている)   ID番号のデーターのみを得るために   クエリーの選択条件として   [forms]![Aのフォーム名]![ID番号] というようなかたちで指定をする   このポップ画面方式でする場合には    Bフォームを開くためのマクロ用ボタンを   Aフォームの中に作っておく必要があります 

spooker
質問者

補足

早急な回答ありがとうございます。1.の方法はやってみて理解できましたが、2.の方法で、「クエリーの選択条件として[forms]![Aのフォーム名]![ID番号]というようなかたちで指定をする」とはクエリーのデザインビューのどこに指定すればよいのでしょうか。もしかしてずれた質問かもしれませんが、やり方がよくわかりませんということです。お願いします。

関連するQ&A