プロが教える店舗&オフィスのセキュリティ対策術

初心者ですが。分かる方お願いいたします(__)(至急ですみません)

会社の専用システムからCSVデータをダウンロードしました。
その時点で、「商品コード」のフィールドが「"=0123456"」
のようなってしまっています。(「0123456」のように数字だけになっていてほしい)
CSVの段階で、文字列関数を使用して数字だけにしてしまえばいいのですが、何万件とデータが重く、ファイルも複数あることから時間がかかってしまいます。
そこで、ACCESSにデータをインポートして加工しようとしましたが、どのようにすれば数字だけ抜き取ることができるでしょうか。
Right関数、left関数も考えましたが、商品コードの文字数が一定していないためできません。
インポートした時点で商品コードのフィールドがテキスト型にされていたので、数値型にすれば数字だけになるかな?と思ってやってみましたがデータがすべて失われてしまいました・・。

良い知恵をお貸しください。
どうぞよろしくお願いいたします。







それをACCESSにインポートしてテーブルを作成致しました。

A 回答 (2件)

文字型のフィールドで、桁は不定、は確定として。


インポートの際に囲みの文字列指定ができるのでダブルクォートを指定すれば除去できます。

=は、桁が不定でも、先頭に1文字のみ、ならば

参照クエリでも作成し、商品コード欄に
式: =Mid([商品コード], 2, (Len([商品コード])-1) ) で
2文字目から末尾まで取り出せます。
    • good
    • 0
この回答へのお礼

ありがとうございます!

すごく納得です!!
早速やってみます。ありがとうございました!!

お礼日時:2008/10/04 00:08

アクセスの使い手なんでしょうが、=1文字を除去するのに、アクセスに読み込ませて、データ修正をやるのは、大げさ。


VBAでCSVファイルを読んで、Splitし、=を取り除けば済む。
シーケンシャルファイル(テキスト)の読みかた
Split
ファイルの書き出し
などWEB照会でコードがわかると思う。
どの列が対象か(=のはいっていそうな列)墓いてないが一定しているのだろうか。
ーー
テキストエディタで、CSVファイルを読み、=を空白で置換するのはどうだろうか。結果的に削除できないですか。
ーー
エクセルでも2007なら読み込めるので、簡単に、シート上で関数で修正した列ができるでしょう。元の列に値だけ戻す。
ーーー
>商品コードの文字数が一定していないためできません。
先頭に=があるのではないのですか?先頭にあるなら
アクセスで例えば氏名フィールドでの例で式1: Right([氏名],Len([氏名])-1)
で出来ませんか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!