• ベストアンサー

ACCESS2000 更新クエリで文字を追加・変更したい

ACCESS2000のマクロでCSVファイルをインポートし、Excelに出力しています。 そこで途中に更新クエリを使い、文字の追加・変更を行いたいのですが何故かうまくいきません。。。 【テーブルA】 フィールド/受注番号(910004292) 【テーブルB】 フィールド/出荷番号(910005232)/製造番号(910005451) 【テーブルC】 フィールド/受注番号(910005232)/製造番号(910005451)/納期(1021) 受注、出荷、製造の各フィールドは先頭に"0"を追加したいです。 910004292→0910004292 納期は2009/10/21となるように、現在の西暦(できれば自動)/と3桁目にスラッシュを入れて、yyyy/mm/dd形式にしたいです。 更新クエリで フィールド:受注番号 テーブル:テーブルA レコードの更新:"0"&[受注番号] と入力してやるとうまくいきました。 同じように横のフィールドに フィールド:受注番号 受注番号 ・・・ テーブル:テーブルA テーブルB ・・・ レコードの更新:"0"&[受注番号] "0"&[受注番号] ・・・ と各テーブルの全てのフィールドを入力して更新すると、 レコードに物凄い数の"0"が追加されてしまいます。 例:0000000000000000910004292 何度も繰り返しているようなのですが、なぜなんでしょうか? 更新クエリを別々に作ればそれぞれうまくいきました。 ひとつのクエリに複数のテーブルのフィールドを入れると駄目です。 また、納期について1021→2009/10/21にうまく変更する方法はありますでしょうか? 分かりにくくて申し訳ありませんが宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

>レコードに物凄い数の"0"が追加されてしまいます。 >例:0000000000000000910004292 >何度も繰り返しているようなのですが、なぜなんでしょうか? テーブルAとテーブルBとを何らかのキーで結合していますか? 結合していなければ、上記のような現象になります。 結合している場合でも完全な1:1になっていなければ、上記のようになったり更新漏れが発生します。 テーブルAとテーブルBのレコード数が違ったり、同一キーがない場合は、別々に更新クエリーを作ったほうがいいでしょう。 他のテーブルも同様です。 >納期について1021→2009/10/21にうまく変更する方法はありますでしょうか? Year(Date()) & "/" & Left([納期],2) & "/" & Right([納期],2)

utta
質問者

お礼

お礼が遅くなってしまい申し訳ありません。 更新クエリを別々に作成し、納期についてもうまく行きました!!! 本当にありがとうございます。 別になるのですが、マクロでレコードの削除や更新クエリを行う際にダイアログボックスのメッセージで「はい」を選ばなくても自動で進むようには、簡単にできますでしょうか。。。 更に、マクロのテキスト変換で指定するファイル名が複数件ある場合にワイルドカードみたいな指定はできるのでしょうか。。。 ずうずうしく申し訳ありません。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.3

>マクロでレコードの削除や更新クエリを行う際にダイアログボックスのメッセージで「はい」を選ばなくても自動で進むようには、簡単にできますでしょうか。。。 マクロのアクションに、「メッセージの設定」があります。 これのメッセージの表示を「いいえ」にすると、ダイアログボックスが表示されません。 レコードの削除や更新がすべて終わったあとは、「メッセージの設定」を元に戻して置くのを忘れないように。 >マクロのテキスト変換で指定するファイル名が複数件ある場合にワイルドカードみたいな指定はできるのでしょうか。。。 できません。(たぶん) ファイルが複数ある場合は、すべてマクロに記述するか、または、モジュールで「FileSystemObject」を利用してフォルダを調べながらテキスト変換する必要があります。

utta
質問者

お礼

回答頂きありがとうございます!! うまく設定することができました。 ファイル名の選択はVBAで調べてみることにします! 本当にありがとうございました!!!

すると、全ての回答が全文表示されます。
  • tag1701
  • ベストアンサー率54% (67/123)
回答No.2

こんばんは。 とりあえず複数テーブルをクエリで扱う時にはテーブルどうしを 何らかの関連付けをしてひとつのテーブルのようにする事が必要 だと思います。例えばテーブルCを主たるレコードとした場合、 テーブルAと受注番号同じもので関連付けて1クエリ。そのクエリと テーブルBと製造番号同じもので関連付けて2クエリ。 その2クエリを基に更新クエリを作成する等。。 日付にかんしては表示だけみると数値型の様ですが、実際は何型 なんでしょう?

utta
質問者

お礼

お礼が遅くなってしまい申し訳ありません。 テーブルは関連付けが微妙になりそうなので、更新クエリを別々に作成することにしました。 納期についてはCSV時はテキスト型になってます。。 別になるのですが、マクロでレコードの削除や更新クエリを行う際にダイアログボックスのメッセージで「はい」を選ばなくても自動で進むようには、簡単にできますでしょうか。。。 更に、マクロのテキスト変換で指定するファイル名が複数件ある場合にワイルドカードみたいな指定はできるのでしょうか。。。 ずうずうしく申し訳ありません。

すると、全ての回答が全文表示されます。

関連するQ&A

専門家に質問してみよう