【发布时间】:2016-05-24 20:45:11
【问题描述】:
我正在尝试更新 Access 表中将撇号替换为 null 的字段。
Dim strLimitRecordTable As String: strLimitRecordTable = Me.txtLimitRecordTable
DoCmd.RunSQL "UPDATE " & strLimitRecordTable & " SET vCompanyMapped = replace(vCompanyMapped, ''', '') WHERE vCompanyMapped like '*'*';"
但我得到这个错误:
表达式替换中的语法错误(vCompanyMapped, ''', '') WHERE vCompanyMapped like ''';"
我觉得这与用空字符串''替换'''有关
我在这里做错了什么?
我有另一个可以正常工作的查询:
DoCmd.RunSQL "UPDATE [" & strLimitRecordTable & "] SET Domain = Mid([Email],InStr([Email],'@')+1,Len([Email])-InStr([Email],'@')) WHERE Email Like '*@*.*';"
【问题讨论】:
-
您在两个地方有语法错误。首先将 {like ' * ' * ';"} 更改为 {like '*';"} 然后将 {'''} 替换为 {"'"} [必须编辑,因为翻译了您的字符串而不是您所显示的]
-
@WayneG.Dunn 我尝试将 {'''} 替换为 {"'"} 但 VBA 将第一个引号视为语句的结尾,并将撇号视为注释的开头跨度>
-
@WayneG.Dunn 关于 {like '*';"} - 我这样做是因为我想确保该字段包含撇号。现在我想到了,我甚至不需要那个 WHERE 子句
-
是的,嵌入的引号可能会很麻烦...这是正确的语法:“UPDATE” & strLimitRecordTable &“ SET vCompanyMapped = Replace(vCompanyMapped, ""'"", """" ) WHERE ((vCompanyMapped Like ""'""));"但是,是的,我会摆脱 WHERE 子句...