hatena
hatena
2024/10/11 (金) 16:02:24
2つの案が考えられます。
第一案
フォームのレコードセットを操作して更新する。
フィールド名は F1, F2, F3, F4 と仮定してます。
Sub Sample1()
Dim rs As DAO.Recordset
Set rs = Me.Recordset.Clone
rs.MoveFirst
Do Until rs.EOF
rs.Edit
rs!F1 = rs!F2 & rs!F3 & rs!F4
rs.Update
rs.MoveNext
Loop
Me.Recalc
rs.Close: Set rs = Nothing
End Sub
フォーのレコードセットの扱いについては下記をご参考に。
フォームの Recordset, RecorsetClone, RecordSet.Clone の違いとは? - hatena chips
第2案
フォームのFilterプロパティで抽出条件を取得して、それを利用して更新クエリを実行する。
フォームのレコードソースのテーブル名はTbl1と仮定
Sub Sample2()
Dim stSQL As String
stSQL = "UPDATE Tbl1 SET F1 = F2 & F3 & F4"
If Me.FilterOn And Me.Filter <> "" Then
stSQL = stSQL & " WHERE " & Me.Filter
End If
CurrentDb.Execute stSQL
Me.Requery
End Sub
通報 ...