如何将此选项作为选择语句? 这适用于Microsoft访问。 我希望它可以在任何地方和整个表格中任何单元格的任何部分查找“煤104”并将其替换为“熔岩104”
答案 0 :(得分:1)
脱离我的头顶。
Update myTable SET cell1 = Replace(cell1, 'Coal 104', 'Lava 104'), -- repeat for all cells in table
-- optional, but may run faster
WHERE cell1 LIKE '*Coal 104*' OR -- repeat for all cells in table
如果有必要说,只对VARCHAR字段执行此操作。
答案 1 :(得分:1)
您可以使用VBA代码执行此操作。您需要遍历数据库中的所有表,并为每个表迭代所有字段。
对于每个字段,创建一个sql语句以更新包含搜索值的行,并将其替换为目标值。然后执行动态sql语句。
答案 2 :(得分:0)
由于您还不完全清楚是否要更新表中的值,或者只是显示我详细说明的新值(这可能对更好地理解该过程有用)。
这是包含cell1
中输入值的'mytable'表**cell1**
abc Coal 104 efg
abcdefg
othervalue
Coal 104 xyz
more
如果您使用MS Access中的图形查询编辑器显示所有值(尚未替换)Access将创建以下SQL stamtement(在编辑器窗口中右键单击选择'SQL-View'):
SELECT myTable.cell1
FROM myTable;
(没什么特别的) 现在回到图形编辑器窗口,你可以插入第二个值,例如cell1_new显示替换的值(这在任何情况下都可能对'debugging'有用)并且你得到(再次在SQL视图中)
SELECT myTable.cell1, Replace([cell1],"Coal 104","Lava 104") AS cell1_new
FROM myTable;
运行我看到的查询:
**cell1** **cell1_new**
abc Coal 104 efg abc Lava 104 efg
abcdefg abcdefg
othervalue othervalue
Coal 104 xyz Lava 104 xyz
more more
(只是要清楚,这不会更新原始表中的值,它只是一个视图)。
使用图形查询编辑器甚至可以构建UPDATE查询。 首先将查询类型更改为“更新查询”(我不确定这是在英语MS Access中调用的内容)。 其次将用于显示'cell1_new'值的replace-'formula'插入到cell1下面的行更新为myTable(不带'cell1_new:')。删除此列cell1_new的公式(因为我们现在只更新列cell1中的值) 第三,因为建议您可以将更新的值限制为仅包含“Coal 104”的行,因此在条件行中输入“ Coal 104 ”
在grafical编辑器中,它应该或多或少看起来像这样:
Field cell1
Table myTable Update
Replace([cell1],"Coal 104","Lava 104")
crieteria Like "*Coal 104*"
再次检查SQL-Statement(我发现比grafical视图更容易理解)现在读取如下:
UPDATE myTable SET myTable.cell1 = Replace([cell1],"Coal 104","Lava 104")
WHERE (((myTable.cell1) Like "*Coal 104*"));
(我在WHERE-Statement Access中留下了那些讨厌的问题,所以看起来一样。)
要完成,请运行此查询(例如按感叹号)。通常(除了您在设置中更改了此行为)Access会询问您是否确实要更新 - 在此示例中 - 两个值。
我希望这有助于获得一个想法,如何使用grafical编辑器来试验不同的查询。我认为在这方面Access不是一个糟糕的学习工具。
HTH 安德烈亚斯