- ベストアンサー
アクセスVBAで
いつもお世話になっております。 アクセスでCSVからインポートするテーブルで下記のようなフィールドがあります。 受注NO| 枝番| コード 123 | 0 | NULL 123 | 1 | 24 124 | 0 | 25 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ というようにコードがNULL値の場合同じ受注番号のものからコードを拾い、値を代入をするというVBAを組みたいと思っているのですが、なかなか上手く動きません。 大変お手数ですがどなたかお知恵を拝借できればと思います。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
VBA出なくても通常のクエリーで解決できます。 ただし、CSVはいちど取り込んでおかねばなりません。 2つのクエリーを作成 1つ目はコードがNOT NULLの受注番号抽出 2つ目はコードが NULLを抽出し1つ目のクエリーと同じ受注番号のデータからコードを更新するものです。 1つ目のクエリー SELECT 受注テーブル.受注NO, 受注テーブル.コード FROM 受注テーブル WHERE (((受注テーブル.コード) Is Not Null)) ORDER BY 受注テーブル.受注NO; 2つ目のクエリー UPDATE 受注テーブル INNER JOIN クエリ1 ON 受注テーブル.受注NO = クエリ1.受注NO SET 受注テーブル.コード = クエリ1!コード WHERE (((受注テーブル.コード) Is Null)); でいかがでしょうか
その他の回答 (1)
- tksoft
- ベストアンサー率36% (99/273)
>コードがNULL値の場合同じ受注番号のものからコードを拾い、値を代入をする とありますが、受注番号が同じであれば、必ずコードも同じになるのでしょうか? 例えば 受注NO 枝番 コード 123 0 NULL 123 1 24 123 2 25 のような場合、受注NO=123、枝番=0のコードはどのような値になるのでしょう? それとも、このような組み合わせは“絶対に”存在しないのでしょうか?
補足
早々の返答ありがとうございます。 受注NOが複数存在して、枝番が分かれる場合はその枝番の一番大きいものにしかコードが入力されない仕組みのシステムから出力されるCSVなんです。同じ受注NOに対してはコードそのものは1つしか存在しません。 ですので、ご質問のような現象は存在せずに受注番号123の枝番2に25と言う形で枝番0と1にはコードがnull値として登録されています。 お手数をかけますが何卒よろしくお願いします。
お礼
お手数お掛けしました。 お陰で上手くいきました。 難しく考えていた自分が恥ずかしいです。 大変勉強になりました。どうもありがとうございます。