- ベストアンサー
Accessでの全データから空白削除
Access2003で、各データの数値の前後に存在する空白を全て削除したいと考えています(データ型はテキスト型)。 空白は半角スペースですが、1個~6個の幅があります。 例:" 111"、" 11 "、" 1111 "など 間に空白は入っていません。 シンプルに置換機能で検索できれば手っ取り早いのですが、データ件数が多いからか(40万件、60万件、80万件)、挙動が安定しません。 エラーが出て削除できなかったり、出来ているように見えてあるところから全く削除出来ていなかったりという状態です。 Trim関数あたりを使ってマクロでなんとかできるのかな、という想像はつくのですが、Howが全く分かりません。マクロ素人です。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1です 規則性がないと完全な自動化は難しいかなと思います。 半自動化としてモジュールで作成すれば幾分楽にはなるでしょうか。 列名はモジュール内に直接羅列するか、テーブルに入れてモジュール内で取得 で、以下を取得した列名で繰り返せばOK sql = "UPDATE テーブル1 SET 列名 = TRIM(列名)" currentdb.Execute( sql ) あるいは UPDATE テーブル1 SET 列名1=TRIM(列名1), 列名2=TRIM(列名2), ・・・ というクエリで一括更新
その他の回答 (2)
- asahina02
- ベストアンサー率47% (95/202)
クエリで一括更新ではいかがでしょうか? UPDATE テーブル1 SET 列名 = TRIM(列名); ちょっとデータ数が多いとのことで動作に不安はありますが
お礼
回答ありがとうございました。
補足
早速のコメントありがとうございます。 一列試してみましたが、うまく削除されているようです。 追加の質問で申し訳ないのですが、列数が50程あり、それら全て一括で更新したいと考えています。ただ、それぞれの列名が連番では無いのですが、手動で列名を入力していくしかなく、自動化は難しいのでしょうか。 列数名: 1, 1-1, 1-2, 2-1, 2-1-a, 2-1-b …
- akina_line
- ベストアンサー率34% (1124/3287)
こんにちは。 「追加クエリー」はご存知ですか?Aのテーブルを検索してその結果をBのテーブルに追加していくことが出来ます。 検索する際、Trim関数で空白を削ればよいと思います。 では。
お礼
回答ありがとうございました。
お礼
回答ありがとうございます。 全自動は諦め、後者の方法でやることにしました。 ありがとうございました。