Recordsetでレコードを更新する方法|EditとUpdate - Access VBA入門
Recordsetを更新するには、Editメソッドで準備後、Updateメソッドで保存します。更新した後で、元に戻すことはできません。
Home VBA入門
ここでは商品入荷一覧表フォームに、VBAで文字列の置換えを行う機能を追加します。
「焼きそば」を指定した文字列に置き換えます。
実行はFilterのLikeであいまい検索し、その結果抽出されたレコードのデータを、Replaceで指定した文字に置換え更新します。
Recordsetでレコードを修正するも参照してください。
|
下のような商品入荷一覧表のフォームを作成しました。
「焼きそば」の文字を、次に更新のテキストボックスに入力された文字列に置換え保存します。
Recordsetでレコードを更新する
Filterであいまい検索し、文字列を置換え保存するVBAです。
・フォームのレコードソースのテーブルでRecordsetを作成します。
・FilterとLikeであいまい検索し、商品名に「焼きそば」が含まれるレコードを抽出します。
・Do Loopのループで順に更新します。
・Editで更新の準備を行います。
・Replaceで、「焼きそば」をテキストボックスに入力された文字列に置換えます。
・置換えた結果を代入します。
・Updateで更新します。
Private Sub コマンド15_Click()
Dim rs As Recordset
Dim rsf As Recordset
Dim s1 As String
Set rs = CurrentDb.OpenRecordset("T-商品入荷一覧表 のコピー", dbOpenDynaset)
rs.Filter = "商品名 Like
'*" & "焼きそば" & "*'"
Set rsf = rs.OpenRecordset
If rsf.RecordCount = 0 Then
MsgBox "該当するレコードが見つかりませんでした。2"
Else
Do Until rsf.EOF
rsf.Edit
s1 = rsf!商品名
s1 = Replace(s1, "焼きそば", Me!テキスト11, vbTextCompare)
rsf!商品名 = s1
rsf.Update
rsf.MoveNext
Loop
End If
rsf.Close
Set rsf = Nothing
rs.Close
Set rs = Nothing
Me.Requery
End Sub