独自に作成した「検索フォーム」に氏名の一部を入力して、それに該当する人の一覧を「お客様一覧」というフォームで表示させています。
この一覧の各行にコマンドボタンを設け(といってもデザインビューの”詳細”欄に配置するだけですが)、何行目かのボタンを押すとその行の詳細な情報が別フォームで表示されるようにしたいのです。
コマンドボタンのクリック時のイベントプロシージャにDoCmd.OpenFormを使用したいと思ってつまづいてしまいました。どのように記述すれば良いのでしょうか。よろしくお願いいたします。
http://www.mahoutsukaino.com/ac/ac2002/ac2002/kihon2/010.htm
http://www.moug.net/tech/acopr/0040014.htm
まず,クエリを作って該当するレコードを選択します。「お客様番号」が主キーと想定します。
このとき,クエリの「お客様番号」フィールドの抽出条件に以下のように入力すれば,「お客様一覧」フォームで選択中のレコードのみを抽出できます。
[Forms]![お客様一覧]![お客様番号]
このクエリをもとに,詳細表示フォームを作ればいいです。
そのフォームが「お客様詳細」という名前なら,ボタンには以下のように記述することになります。
DoCmd.OpenForm "お客様詳細"
フォームの「詳細」欄に主キーが表示されるテキストボックスを配置し、不可視にしておきます。
テキストボックス名は例えば「お客様番号」(数値型とします。)としておきます。
そしてコマンドボタンの「クリック時」に
DoCmd.OpenForm "フォーム名", acNormal, , "お客様番号=" & me![お客様番号]
(主キーがテキスト型の場合は
"お客様番号='" & me![お客様番号] & "'")
とします。
me! は、[Forms]![現在のフォーム名]! と同じ意味ですが、帳票フォームの詳細行に配置されたテキストボックスは、
クリックしたボタンの行のものが選択されますので、上記条件式の「me!お客様番号」には、
ちゃんとクリックした行の[お客様番号]が入ります。
コメント(0件)