我对Access 2010中的VBA非常新。我正在尝试更改表的字段名称中的值。以下是详细信息:
Table Name: WeeklySaleT
Field Name: SitusPreDirection
SitusPreDirection中的可能值:“E”“N”“S”“W”
想要改变以下“E”=“东”,N“=”北“,”S“=”南“和”W“=”西“的每一次出现
我如何在VBA中这样做?
答案 0 :(得分:3)
如果您不熟悉VBA,最好使用查询。首先,复制你的表。然后将表添加到查询设计窗口,从工具栏中选择“更新查询”,并通过双击或拖动将SitusPreDirection添加到设计网格中。例如,将Criteria设置为“E”“N”“S”“W”之一并将Update To设置为匹配值“east”。
如果切换到SQL View,您将看到如下内容:
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
答案 1 :(得分:2)
使用方向查找表,您可以使用单个UPDATE查询。
SitusPreDirection_lookup
:
SitusPreDirection long_name
E East
N North
S South
W West
然后创建一个新查询,切换到SQL View并粘贴此UPDATE语句。您可以在SQL,设计和数据表视图之间切换,以试验对查询设计的更改并查看这些更改的结果。
UPDATE WeeklySaleT
SET SitusPreDirection = DLookup("long_name",
"SitusPreDirection_lookup",
"SitusPreDirection = '" & SitusPreDirection & "'")
如果您不想创建查找表,可以使用Switch Function构建查询。然后,如果没有单独的表,您基本上会在查询中嵌入查找对。但我觉得桌子更容易维护。考虑如果您需要扩展方向以包括NE,SE,SW和NW会发生什么。使用表,您只需要为每个添加一行,同一查询将继续无缝地工作。但是当在查询中嵌入查找数据时,您需要修改查询的SQL。