使用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 2000或更高版本在Access session 中执行此操作,则可以在更新查询中使用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子句以确保仅UPDATE那些
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/