• ベストアンサー

【Access2000VBA】CSVファイルインポートの不具合

Access2000でCSVファイルインポートをVBAで行っています。 ところが、CSVファイル内に全角カンマ(,)がある場合、 区切り文字として認識されてしまい困っています。 区切り文字としてではなく文字として取得したいのですが可能でしょうか。 お手数ですが方法がわかる方、ご回答よろしくお願いいたします。

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

  • ベストアンサー
回答No.1

それは、無理だと思います。 CSVでなければならないのでしたら、全角カンマを他では絶対使われない文字に変換しておいて、インポートしてから元に戻すという手があります。 また、CSV上でダブルクォーテーション(")で文字列を挟んでおけば、何とかなるかもしれません。 CSVではなく、可変長のテキストとして保存することが可能でしたら、文字列区切りをカンマ以外、例えばタブにするなどで対応できます。 固定長形式の処理が可能でしたら、それも一考の価値があります。がファイルサイズがでかくなります。 ご参考になれば幸いです。

yui_kis
質問者

お礼

自己解決いたしました。 Split関数を利用して取得しました。 素早いご回答ありがとうございましたm(_ _)m

その他の回答 (3)

noname#22222
noname#22222
回答No.4

コードを示されたが良いと思います。 aaa,AAA,BBB を以下のコードでインポートしてみました。 Private Sub コマンド0_Click()   DoCmd.TransferText acImportDelim, , "test", "c:\temp\test.csv" End Sub Access2000、2002 では、 F1   F2 aaa  AAA,BBB とインポートされます。

yui_kis
質問者

お礼

急いでいたもので、コードを記述しておらず、申し訳ございませんでした。 自己解決いたしました。 Input関数を利用していたのですが、Line Inputに変更し、そこからSplit関数を利用して取得しました。 ご回答ありがとうございました! なお今回につきましては、すぐにご回答くださった方にポイントを差し上げたいと思います。本当にありがとうございました。

noname#60992
noname#60992
回答No.3

csvとは、Comma Separated Value の略で、カンマで値を分けるということですが、一行をただの文字列として読みたいなら、line input などを使って一行ずつ読んでいったらいかがでしょうか?

yui_kis
質問者

お礼

16Augustさまのおっしゃるとおり、Line Inputを利用しました! またそこからSplit関数を利用して取得することができました。ありがとうございました。

  • miwaharu
  • ベストアンサー率25% (29/112)
回答No.2

こんにちは、 全角カンマなんですよね? 区切りは半角カンマだと思うので、アクセス側で、 混同して、区切ってしまうのでしたら、 CSVを一度テキストエディタで開いて、 全角カンマを別なものに置き換えて、保存 アクセスにインポート後に、再度置き換えては いかがでしょうか? 面倒ですが、更新クエリー等を一度作ってしまえば たいした手間ではないと思いますが・・・・

yui_kis
質問者

お礼

全角カンマです。 別なものに置き換えるのも考えたんですが、 Split関数を利用して取得することができました。(面倒でしたが…) ご回答ありがとうございました。

関連するQ&A