我有一个Access数据库,其中包含许多特定于年份的表名(不是我的设计)。我想将数据库复制到新数据库并将所有表更新为具有相同名称但从“xxx_2007”更新为“xxx_2008”,并将所有引用“2007”的查询更新为引用“2008”。这些引用可能在表名中,也可能是查询中的选择条件。
我现在使用的方法是打开每个查询,将SQL复制到记事本,将“2007”替换为“2008”,然后将其复制回查询的SQL视图。这是可行的,但很乏味。
有关更新所有内容的程序化方法的任何建议吗?
答案 0 :(得分:1)
戈德说的话。
但是,如果您真的需要快速入侵立即,您可以循环QueryDefs集合:
<?xml version="1.0" encoding="UTF-8" standalone="ye
s"?><entry xmlns="http://purl.org/atom/ns#"><id>1750</id><title>....
与表名的Dim DB As Database
Dim QD As QueryDef
Dim S As String
Set DB = CurrentDb
For Each QD In DB.QueryDefs
S = QD.SQL
If InStr(S, "2007") > 0 Then
S = Replace(S, "2007", "2008")
QD.SQL = S
End If
Next QD
类似,此处您将替换TableDefs
答案 1 :(得分:0)
我也推荐戈德所说的。如果没有,只需使用Rick Fisher的查找和替换http://www.rickworld.com/products.html。