【发布时间】:2013-11-29 08:43:07
【问题描述】:
我需要你的帮助。我想将一个字符更改为另一个字符,但在所有数据库中,我有几个表和字段。所以我在 VB 中构建了一个函数,但是没有任何改变,我也没有错误。我认为我的情况是错误的,但我不知道如何纠正它:/
Public Sub updateField()
Dim db As DAO.Database, td As DAO.TableDef, field As DAO.field
Dim rs As DAO.Recordset, sSQL As String, sData As String
Set db = CurrentDb
Change = "\"""
replaced = """"
'each table in db
For Each tbd In db.TableDefs
'each field in table
For Each fld In tbd.Fields
'check if String Data have my character
If InStr(1, fld.Name, Change) Then
sSQL = "UPDATE " & tbd.Name & " SET " & fld.Name & " = replace([" & fld.Name & "], " & Change & ", " & replaced & ")"
db.Execute sSQL
End If
Next
Next
End Sub
编辑: 我终于找到了问题所在。如果有人感兴趣:
Set db = CurrentDb
Change = "\"""
replaced = """"
'each table in db
For Each tbd In db.TableDefs
'each field in table
For Each fld In tbd.Fields
If Left(tbd.Name, 4) <> "MSys" And Left(tbd.Name, 4) <> "~TMP" Then
If fld.Type = dbText Or fld.Type = dbMemo Then
sSQL = "UPDATE " & tbd.Name & " SET " & fld.Name & " = replace([" & fld.Name & "],'" & Chr(92) + Chr(34) & "','" & Chr(34) & "')"
db.Execute sSQL
'Debug.Print (sSQL)
End If
End If
Next
Next
谢谢你们的帮助;)
【问题讨论】:
-
Ick,旧的 DAO 对象。读到这里我觉得很脏。
-
所以您想更改数据库中字段的名称?或存储在这些字段中的数据值?您的逻辑似乎试图替换字段名称,而不是值。
-
是的,我正在尝试更改字段 ^^ 中的值,但我不知道这是怎么做到的:/ Thx
-
所以您尝试用
\"替换"对吗? -
是的,我正在尝试将值字段中的 \" 替换为 "。