• ベストアンサー

Accessでの全データから空白削除

Access2003で、各データの数値の前後に存在する空白を全て削除したいと考えています(データ型はテキスト型)。 空白は半角スペースですが、1個~6個の幅があります。 例:" 111"、" 11 "、" 1111 "など 間に空白は入っていません。 シンプルに置換機能で検索できれば手っ取り早いのですが、データ件数が多いからか(40万件、60万件、80万件)、挙動が安定しません。 エラーが出て削除できなかったり、出来ているように見えてあるところから全く削除出来ていなかったりという状態です。 Trim関数あたりを使ってマクロでなんとかできるのかな、という想像はつくのですが、Howが全く分かりません。マクロ素人です。 よろしくお願いします。

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

  • ベストアンサー
  • asahina02
  • ベストアンサー率47% (95/202)
回答No.3

#1です 規則性がないと完全な自動化は難しいかなと思います。 半自動化としてモジュールで作成すれば幾分楽にはなるでしょうか。 列名はモジュール内に直接羅列するか、テーブルに入れてモジュール内で取得 で、以下を取得した列名で繰り返せばOK  sql = "UPDATE テーブル1 SET 列名 = TRIM(列名)"  currentdb.Execute( sql ) あるいは UPDATE テーブル1 SET 列名1=TRIM(列名1), 列名2=TRIM(列名2), ・・・ というクエリで一括更新

noritaro
質問者

お礼

回答ありがとうございます。 全自動は諦め、後者の方法でやることにしました。 ありがとうございました。

その他の回答 (2)

  • asahina02
  • ベストアンサー率47% (95/202)
回答No.2

クエリで一括更新ではいかがでしょうか? UPDATE テーブル1 SET 列名 = TRIM(列名); ちょっとデータ数が多いとのことで動作に不安はありますが

noritaro
質問者

お礼

回答ありがとうございました。

noritaro
質問者

補足

早速のコメントありがとうございます。 一列試してみましたが、うまく削除されているようです。 追加の質問で申し訳ないのですが、列数が50程あり、それら全て一括で更新したいと考えています。ただ、それぞれの列名が連番では無いのですが、手動で列名を入力していくしかなく、自動化は難しいのでしょうか。 列数名: 1, 1-1, 1-2, 2-1, 2-1-a, 2-1-b …

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.1

こんにちは。  「追加クエリー」はご存知ですか?Aのテーブルを検索してその結果をBのテーブルに追加していくことが出来ます。  検索する際、Trim関数で空白を削ればよいと思います。 では。

noritaro
質問者

お礼

回答ありがとうございました。

関連するQ&A