查找和替换表的字段名称中的数据

时间:2012-07-24 22:02:38

标签: vba ms-access replace access-vba ms-access-2010

我对Access 2010中的VBA非常新。我正在尝试更改表的字段名称中的值。以下是详细信息:

Table Name: WeeklySaleT
Field Name: SitusPreDirection

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

想要改变以下“E”=“东”,N“=”北“,”S“=”南“和”W“=”西“的每一次出现

我如何在VBA中这样做?

2 个答案:

答案 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。