使用 MS Access 2010。
我在表中有一个字段,其中包含用引号括起来的 Windows 路径名,就像这样
"C:\My Documents\Photos\img1.jpg"
"C:\My Documents\Photos\products\gizmo.jpg"
"C:\My Documents\Photos\img5.jpg"
等等。
我需要去掉引号,使列看起来像这样:
C:\My Documents\Photos\img1.jpg
C:\My Documents\Photos\products\gizmo.jpg
C:\My Documents\Photos\img5.jpg
有没有办法编写更新查询来做到这一点?
或者更好的方法来完全做到这一点?
最佳答案
如果您将在 Access session 中执行此操作,使用 Access 2000 或更高版本,您可以使用 Replace()
在更新查询中删除引号的函数。删除意味着用空字符串替换它们。
UPDATE YourTable
SET path_field = Replace(path_field, '"', '');
如果这些路径字符串中的任何一个可以在其中包含引号(糟糕!),请考虑
Mid()
函数 ... 要求它从第二个字符开始(跳过前导引号),并返回等于 Len(path_field) - 2
的字符数UPDATE YourTable
SET path_field = Mid(path_field, 2, Len(path_field) - 2);
无论哪种方式,您可能都希望包含一个 WHERE 子句来忽略没有
path_field
的行。值。WHERE Len(path_field) > 0
如果在添加新数据时必须再次执行此操作,请使用不同的 WHERE 子句以确保仅更新那些
path_field
的行。值以引号开始和结束。WHERE path_field Like '"*"'
那是将 * 通配符用于 Access 的默认 ANSI 89 模式。如果要从 ADO(ANSI 92 模式)执行此操作,请使用 % 通配符。
WHERE path_field Like '"%"'
... 或使用
ALike
和任何一种模式的 % 通配符。WHERE path_field ALike '"%"'
关于ms-access - 从 MS Access 数据库表中的字段中删除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10249929/