フォーム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」など、必要なコードは適宜追加して下さい)