• ベストアンサー

テキストボックスへの入力

アクセス97にてソフト開発をしております フォームAの「合計」テキストボックスに表示されている数字を、フォームAを閉じたときにフォームBの「金額」テキストボックスに入力できるようにしたいのですが、 どの様にすればいいのでしょうか この二つのテキストボックスはODBCリンクテーブルと連結しています

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

フォームAを閉じたときは常に、でよろしいですか? それでよければ、以下のようにすればできると思います: 1)フォームをデザインビューで開く 2)何もないところをダブルクリックするなどしてフォームのプロパティシートを表示させる 3)「イベント」タブの「閉じる時」にフォーカスを合わせる 4)右端に表示される「...」(ビルドボタン)をクリックして、「コードビルダ」を選択 5)下記のコードを貼り付け、VBE画面を閉じる 6)フォームを保存して閉じる Private Sub Form_Close()    '←上記の手順を行うと自動で記録される行(重複は無用) On Error Goto エラー処理    '←以下、「End Sub」の前の行までをCopy&Paste   Dim Frm As Form, Cntl As Control   '本フォーム(フォームA)の「金額」の値を、フォームBの「合計」に代入   Set Frm = Forms!フォームB   Set Cntl = Frm!金額   Cntl = Me!合計   'フォームBのレコードを保存(不要なら、下の3行は削除)   Me.Visible = False   Frm.SetFocus   DoCmd.RunCommand acCmdSaveRecord 終了処理:   Set Frm = Nothing   Set Cntl = Nothing   Exit Sub エラー処理:   MsgBox Err & ":" & Error$, , Me.Name & " Close"   Resume 終了処理 End Sub   '←一行目と同様、自動で記録される行(重複無用) レコードソースさえ設定されているなら、フォーム上のやりとりなので、ローカルテーブルか リンクテーブルかに関係なく、動作すると思います。 なお、フォームAに「OK」と「キャンセル」のコマンドボタンを設置し、「OK」ボタンを押したとき だけフォームBに転記、とする場合は、フォームではなく「OK」ボタンのプロパティシートの 「クリック時」のところでビルダボタンをクリックし、上記コードの中身(=「On Error Goto エラー 処理」の行から「Resume 終了処理」の行まで)を貼り付けます。 (「DoCmd.Close」など、必要なコードは適宜追加して下さい)

関連するQ&A