2012-07-24 79 views
3

我对Access 2010中的VBA非常新。我试图更改表格的字段名称中的值。下面是详细信息:在表格的字段名称中查找和替换数据

Table Name: WeeklySaleT 
Field Name: SitusPreDirection 

在SitusPreDirection可能的值: “E” “N” “S” “W”

想改变以下的每一次出现 “E”= “东方” N” =‘北’,‘S’=‘南’和‘W’=‘西部大开发’

我怎么会做,在VBA?

回答

3

这将是最好的,如果你不使用查询首先复制表格,然后将表格添加到查询设计窗口中,从工具栏中选择更新查询并将SitusPreDirection添加到d通过双击或拖动来设计网格。例如,将标准设置为“E”“N”“S”“W”中的一个,并将“更新至”设置为匹配值“east”。

如果切换到SQL视图,你会看到类似这样的:

UPDATE WeeklySaleT SET SitusPreDirection = "East" 
WHERE SitusPreDirection = "E" 

可以在VBA使用像这样:

Dim db As Database 
Set db = CurrentDB 

sSQL = "UPDATE WeeklySaleT SET " _ 
     & "SitusPreDirection = ""East"" WHERE SitusPreDirection = ""E""" 

db.Execute sSQL, dbFailOnError 
2

的查找表的指示,你可以使用单个UPDATE查询。

SitusPreDirection_lookup

SitusPreDirection long_name 
E     East 
N     North 
S     South 
W     West 

然后创建一个新的查询,切换到SQL视图,并在此UPDATE语句粘贴。您可以在SQL,设计和数据表视图之间切换,试验对查询设计的更改并查看这些更改的结果。

UPDATE WeeklySaleT 
SET SitusPreDirection = DLookup("long_name", 
    "SitusPreDirection_lookup", 
    "SitusPreDirection = '" & SitusPreDirection & "'") 

如果你不希望创建一个查找表,你可以建立一个使用Switch Function查询。然后,如果没有单独的表格,您基本上会在查询中嵌入查找对。但我认为一张桌子更容易维护。考虑如果你需要扩展包括NE,SE,SW和NW的方向会发生什么。使用表格,您只需为每个表格添加一行,并且相同的查询将继续无缝工作。但是,在查询中嵌入查找数据时,您需要修改查询的SQL。