たとえば、Aという表形式のフォームがあります。
項目名は、氏名、生年月日、年齢です。
そのフォームのレコードごとの右端にはコマンドボタンがあります。
そのコマンドボタンをクリックすると、Bというフォームが開きAで選択したデータの詳細(氏名、生年月日、年齢、住所、電話番号等々)が表示されるようにしたいのですが、そのやり方をどなたか教えていただけないでしょうか。
VBA初心者ですが、簡単なものならわかるのでVBAを使用したものでもOKです。
どうぞよろしくお願いいたします。

A 回答 (2件)

私も初心者なので詳しいことは言えないのですが、氏名、生年月日、


年齢とBの(氏名、生年月日、年齢、住所、電話番号等など)は同じ
テーブルなのでしょうか?

もし同じテーブルであれば
Dim lngID As Long
lngID = Me.id.Value 'フォームのidフィールドの値を変数に格納
DoCmd.Close’Aのフォームを閉じます。
DoCmd.OpenForm "テストB", acNormal, , "id=" & lngID
 'OpenFormの第4引数に抽出条件をセットします。
私の少ない経験上このような感じでした。解説するとidというテキスト
Boxを付けてあげてキーとします。
それを元に同じ内容のBのFormを開くことが出来ます。

そうではなくて検索の場合は

Dim dte As String
Dim strSQL As String

If IsNull(Me.txt3) = True Then
MsgBox "抽出条件が入力されていません!(^o^;)"
Exit Sub
End If    ’txt3というTextBoxに抽出条件が入っていない場合はErr

dte = Me.txt3.Value
strSQL = "SQNO='" & dte & "'"
'SQL文のWhereの中味を抽出条件として入れる。
'(フィルタプロパティの性質でWhereの中味のみ条件設定が出来る)
With Me.subList.Form
'メインフォームの中のサブフォームを指定
.Filter = strSQL
.FilterOn = True

End With
上記のような検索方法もあります。
上記はサブフォームの一覧を検索するため私が作ったものなので
あまりお役には立てないのかもしれません。
    • good
    • 0
この回答へのお礼

早速のアドバイスありがとうございます。
テーブルは同じですので、早速使わせていただきます。
また、大変勉強になりましたありがとうございます。

お礼日時:2001/08/07 16:02

AとBの表示元のレコードが同じだとして。



(1)Aフォームにはレコードの全フィールド(表示・非表示問わず)を持つ。
(2)Bフォームを開いたら、Aの各フィールドの値をBの各表示フィールドに代入。
この場合、データの編集はできません。

編集させるなら
(1)Aのフォームには表示させたい項目と主キー(非表示可)を持つ。
(2)Bフォームを開く前に、選択レコードの主キーでもってBフォームのレコードソースのクエリ(テーブルですか?フィルタとかだっけ?忘れた)のSQLを編集する。
(3)Bフォーム開く

あーアバウトっ。
あまりに途方にくれたらまたレス付けてください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
早速試してみます。
もし、うまくいかないようでしたらまた、よろしくお願いいたします。
ありがとうございました。

お礼日時:2001/08/07 16:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す


人気Q&Aランキング

おすすめ情報