Accessでお仕事 更新クエリを使ってグループとしてのレコード群を変更する

更新クエリを使って
グループとしてのレコード群を変更する

 マスタファイルを、トランザクションファイルを使って、一括更新するという業務は、しばしば有るでしょう。
 Access は、こんなときに、威力を発揮します。

  1. 更新するレコードと抽出条件設定用のフィールドが含まれているテーブルやクエリを選択して、クエリを作成します。

     その方法は ?

    注: 更新クエリや削除クエリをする場合に、「更新・削除対象のテーブルから作った抽出条件設定用のクエリ」と、「更新・削除対象のテーブル」との間でリレーションをはってクエリを作ると、更新・削除で、初めの抽出条件設定用のクエリに矛盾が発生するため、ロックがかかってクエリを実行できません。
     前もって抽出条件設定用のクエリの結果を別テーブルに書き出した上で、書き出したテーブルと、更新対象のテーブルとの間で、クエリを作る必要が有ります。


  2. クエリのデザイン ビューで、ツールバーの (クエリの種類) の右端の下向き矢印をクリックし、[更新クエリ] をクリックします。

  3. 更新するフィールドまたは抽出条件を指定するフィールドを、フィールド リストからデザイン グリッドにドラッグします。

  4. 必要な場合、[抽出条件] セルに抽出条件を指定します。

    抽出条件を指定する詳細については、 をクリックしてください。

  5. フィールドを変更するために、更新するフィールドの [レコードの更新] セルに、次のような式または値を入力します。

    式を指定して、レコードのグループを変更する

    例えば、「品目番号」の左端の空白を一括削除したい場合は、下のように記述します。
    LTrim([品目番号])

    また、「品目番号」の頭から9桁を一括削除したい場合は、下のように記述します。
    Right$([品目番号],Len([品目番号])-9)

    式の例については、 をクリックしてください。


     Nullを空白に置換する場合は、下図のようにします。
    空白を入力できるようにするためには、事前に、「空文字列の許可」プロパティを設定しておく必要が有ります。



     このホームページでは、「code」テーブルの「出荷先住所1」を、「transaction」テーブルを使って、一括更新します。
     更新クエリを選択すると、デザインビュウに、「レコードの更新」セルが表示されます。ここに、ツールバーの ビルド(コントロール ウィザード)を使って、更新したい項目名を登録するのです。
    ここでの注意は、「結合プロパティ」として、「両方のテーブルの結合フィールドが同じ行だけを含める。」を選択することです。
     SQLビュウで見ると、以下のようになっています。

    UPDATE code INNER JOIN [transaction] ON code.受注コード = transaction.受注コード
    SET code.出荷先住所1 = [transaction].[出荷先住所1];

  6. 更新されるレコードの一覧を表示するには、ツールバーの (ビュー) をクリックします。この一覧には、新しい値は表示されません。デザイン ビューに切り替えるには、もう一度ツールバーの (ビュー) をクリックします。必要な場合は、デザイン ビューで変更します。

  7. ツールバーの (実行) をクリックしてレコードを更新します。

     該当の住所が、更新されました。

文字列の変更

 文字列の変更に、Replace 関数 が使えます。
Replace 関数 は、入れ子(ネスト)して、多重に使えます。

 下の例は、更新クエリを使って、ハイホン(ハイフン)と空白を削除する例です。
Replace( Replace( [品番ハイホン有無対比]![品番ハイホン無し] ,"-","")," ","")

更新クエリで、を使う

構文
Replace(expression, find, replace[, start[, count[, compare]]])
指定項目 説明
expression 必ず指定します。置換する文字列を含む文字列式 を指定します。
find 必ず指定します。検索する文字列を指定します。
replace 必ず指定します。置換する文字列を指定します。
start 省略可能です。引数 expression 内の内部文字列の検索開始位置を指定します。この引数を省略すると、1 が使用されます。.
count 省略可能です。置換する文字列数を指定します。この引数を省略すると、既定値の -1 が使用され、すべての候補が置換されます。
compare 省略可能です。文字列式を評価するときに使用する文字列比較のモードを表す数値を指定します。設定する値については、次の「設定値」を参照してください。

引数 compare の設定値は次のとおりです。
定数 説明
vbUseCompareOption -1 Option Compare ステートメントの設定を使用して比較を行います。
vbBinaryCompare 0 バイナリ モードで比較を行います。 (デフォルト)
vbTextCompare 1 テキスト モードで比較を行います。 (明示的にこちらを使ったほうが良い?)
vbDatabaseCompare 2 Microsoft Access の場合のみ有効。データベースに格納されている設定に基づいて比較を行います。

メモ   クエリの実行を中止するには、Ctrl キーを押しながら Break キーを押します。









参考:UNIONクエリを使って結合参照する

 先に紹介した、UNIONクエリを使って、変更レコードを並べて参照することができます。
SELECT *
FROM [transaction]
UNION
SELECT
*
FROM [code]
ORDER BY [受注コード];

このページのトップに戻る↑ 次の項目を見る↓ Accessでお仕事 目次に戻る

ホームページのトップに戻る