3

Access 2010 で VBA を初めて使用します。テーブルのフィールド名の値を変更しようとしています。詳細は次のとおりです。

Table Name: WeeklySaleT
Field Name: SitusPreDirection

SitusPreDirection で可能な値: "E" "N" "S" "W"

次の "E" = "East"、"N" = "North"、"S" = "South"、"W" = "West" の出現箇所をすべて変更したい

VBAでそれを行うにはどうすればよいですか?

4

2 に答える 2

3

VBA に慣れていない場合は、クエリを使用することをお勧めします。まず、テーブルをコピーします。次に、クエリ デザイン ウィンドウにテーブルを追加し、ツールバーから [クエリの更新] を選択し、ダブルクリックまたはドラッグして、SitusPreDirection をデザイン グリッドに追加します。Criteria を "E" "N" "S" "W" のいずれかに設定し、Update To を一致する値、たとえば "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
于 2012-07-24T23:02:47.010 に答える
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 を修正する必要があります。

于 2012-07-25T02:25:05.953 に答える