テーブルには、
フィールド1
------------------
エクセルaaa
aaaエクセルaaa
aaaエクセル
------------------
というレコードが入っていて、
------------------------------------------------------
UPDATE テーブル1 SET テーブル1.フィールド1 = "Excel"
WHERE (((テーブル1.フィールド1) Like "*エクセル*"));
------------------------------------------------------
という更新クエリ作り、実行すると、テーブルのデータが
フィールド1
------------------
Excel
Excel
Excel
------------------
になってしまいます。
やりたい事は、
フィールド1
------------------
Excelaaa
aaaExcelaaa
aaaExcel
------------------
にしたいのですが、更新クエリじゃ無理なのでしょうか?
手動でテーブルで検索ダイアログを開いてフィールドの一部分のみ置換するしかないのですか?
最終的には、
------------------------------------------------------
Sub 更新クエリ()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim 置換前 As String
Dim 置換後 As String
Dim SQL As String
cn.Open "Provider = Microsoft.ACE.OLEDB.12.0;" & "Data Source= " & CurrentProject.FullName
rs.Open "T置換", cn, adOpenKeyset, adLockOptimistic
For i = 1 To rs.RecordCount
置換前 = rs("置換前") 'エクセル
置換後 = rs("置換後") 'Excel
SQL = "UPDATE テーブル1 SET テーブル1.フィールド1 = ""Excel"" WHERE (((テーブル1.フィールド1) Like ""*エクセル*""));"
DoCmd.RunSQL SQL
rs.MoveNext
Next
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub
------------------------------------------------------
のようにして、置換用テーブルのレコードを一つ一つ取得して、
テーブル1の値を置換していきたいのです。
何か対策があればご回答よろしくお願いします。
お礼
replaceの事忘れてました! SQL = "UPDATE テーブル1 SET テーブル1.フィールド1 = Replace([テーブル1]![フィールド1],""" & 置換前 & """,""" & 置換後 & """) " & _ WHERE (((テーブル1.フィールド1) Like "* & 置換前 & "*""));" DoCmd.RunSQL SQL でうまく行きました!ありがとうございました。