- 締切済み
ACCESS フォームからフォームへの連携
例えば A_テーブル(フィールド:会員NO・顧客名・連絡 先)でのA_フォーム上でコマンドボタン「B」を 作成しています。ボタンをクリックすると Docmd. OpenForm"B_フォーム" が実行されます。 実行され新しく開いた B_フォーム(フィールド:管理NO・会員NO・備考) の会員NOの中に、その時開いていたA_テーブルの会 員NOが入っている状態にすることは可能でしょう か? 乱文で大変申し訳ありません。 現在顧客管理のデータベースを作りはじめましたが なにぶん手探り状態ですので、今後ともよろしくお 願いいたします。 ( WindowsXP : Access2000)
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- yoisho
- ベストアンサー率64% (331/516)
maruru01さんのおっしゃるように、 B_フォーム に抽出条件を設定して開く方法でしたら、 A_フォーム の記述は、 DoCmd.OpenForm FormName:="B_フォーム", WhereCondition := "会員NO = " & CStr(Me!会員NO) または、 DoCmd.OpenForm "B_フォーム", , , "会員NO = " & CStr(Me!会員NO) B_フォーム で、([次のレコード]ボタン等で)他のレコードにも移動する必要があるなら、 A_フォーム で、 DoCmd.OpenForm FormName:="B_フォーム", OpenArgs:=CStr(Me!会員NO) として、 次に、Bフォームの読み込み時イベントに、以下のコードを記述してください。 Private Sub Form_Load() '会員NO のテキストボックスへフォーカスを移す Me![会員NO のテキストボックス名].SetFocus ' A_フォームで指定した 会員NO のレコードへ移動 DoCmd.FindRecord OpenArgs End Sub HELP で、OpenForm メソッド、OpenArgs プロパティ、Load イベント、FindRecord メソッド を確認してみてください。
- maruru01
- ベストアンサー率51% (1179/2272)
エラーの出た行を教えて下さい。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 B_フォームの[会員NO]は非連結で、A_フォームの会員NOの値を単に入力したいということでしょうか。 それなら、 DoCmd.OpenForm "B_フォーム", , , , , ,Me!会員NO として、B_フォームのLoadイベントで、 Me!会員NO.Value = Me.OpenArgs とすれば出来ると思います。 もし、B_フォームが何かのテーブルと連結していて、A_フォームで選択した会員NOのデータを表示したいのなら、 DoCmd.OpenForm "B_フォーム", , ,"会員NO = '" & Me!会員NO & "'" となります。
- redsky
- ベストアンサー率18% (66/360)
できますよ。 BフォームのソースレコードをAフォームのそれと同じにすれば いいのではないでしょうか? BフォームのフォームプロパティのデータタブのレコードソースをAフォーム と同じにすればOKです。
補足
早速のご回答ありがとうございます。 すぐに試して見ましたが 「コンパイルエラー 修正候補:ステートメントの最後」 と返されました。