- ベストアンサー
ACCESS2000のフォームの表示について
ACCESS2000の初心者です。AとBの2つのフォームがあり、それぞれテーブルが別ですが、ID名が同じにしてあります。 例えば、Aフォームを開いて、ID番号100を閲覧しているとき、Bフォームを開くと、BフォームのID番号100のデータを閲覧できる方法はどうすればよろしいのでしょうか。いろんな参考書をみてみたりしましたが、いまいちピンポイントな回答がありません。よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
NO1です 追加説明です 新規(選択クエリー)クエリーを作成します 元のテーブルはBフォームに使用しているテーブルです テーブルの全項目をフイールド横方向に展開(出力指示) フイールドのところに当然、ID番号とあるはずなので ここのところで、下部の「抽出条件」のところへ [FORMS]![Aフォーム名]![AフォームのなかでのID番号につけている名前] を入力すると そのときのAフォームに表示されている ID番号の値と同じレコードを選択しなさい という意味になります Bを開くマクロ命令の時にフイルター指定でこのクエリー名を入れます
その他の回答 (2)
- O_cyan
- ベストアンサー率59% (745/1260)
>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 これが簡単。
お礼
Access2000のVBAでまだ作製したことがなく、エクセルでしかVBAを使用したことがありませんでしたが、この方法でも試してみようと思います。非常に丁寧な回答ありがとうございました。わかりやすかったです。
- oka123
- ベストアンサー率31% (69/219)
いろんな方法があります 1.BをAのサブフォームにする Aの中のどこかにBを表示させるサブフォームエリアを作る AとBとのリンク用項目は ID番号 を指定 2.Aを見ていて必要なときにだけBを表示させる方法 Bをポップアップフォームにする Bの使用クエリーには選択クエリーを指定する その選択クエリーにはAで見ている(カーソルされている) ID番号のデーターのみを得るために クエリーの選択条件として [forms]![Aのフォーム名]![ID番号] というようなかたちで指定をする このポップ画面方式でする場合には Bフォームを開くためのマクロ用ボタンを Aフォームの中に作っておく必要があります
補足
早急な回答ありがとうございます。1.の方法はやってみて理解できましたが、2.の方法で、「クエリーの選択条件として[forms]![Aのフォーム名]![ID番号]というようなかたちで指定をする」とはクエリーのデザインビューのどこに指定すればよいのでしょうか。もしかしてずれた質問かもしれませんが、やり方がよくわかりませんということです。お願いします。
お礼
丁寧な回答ありがとうございました。これでなんとか悩んでいたことが解決できそうです。助かりました。