- ベストアンサー
【Access2000VBA】CSVファイルインポートの不具合
Access2000でCSVファイルインポートをVBAで行っています。 ところが、CSVファイル内に全角カンマ(,)がある場合、 区切り文字として認識されてしまい困っています。 区切り文字としてではなく文字として取得したいのですが可能でしょうか。 お手数ですが方法がわかる方、ご回答よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
それは、無理だと思います。 CSVでなければならないのでしたら、全角カンマを他では絶対使われない文字に変換しておいて、インポートしてから元に戻すという手があります。 また、CSV上でダブルクォーテーション(")で文字列を挟んでおけば、何とかなるかもしれません。 CSVではなく、可変長のテキストとして保存することが可能でしたら、文字列区切りをカンマ以外、例えばタブにするなどで対応できます。 固定長形式の処理が可能でしたら、それも一考の価値があります。がファイルサイズがでかくなります。 ご参考になれば幸いです。
その他の回答 (3)
コードを示されたが良いと思います。 aaa,AAA,BBB を以下のコードでインポートしてみました。 Private Sub コマンド0_Click() DoCmd.TransferText acImportDelim, , "test", "c:\temp\test.csv" End Sub Access2000、2002 では、 F1 F2 aaa AAA,BBB とインポートされます。
お礼
急いでいたもので、コードを記述しておらず、申し訳ございませんでした。 自己解決いたしました。 Input関数を利用していたのですが、Line Inputに変更し、そこからSplit関数を利用して取得しました。 ご回答ありがとうございました! なお今回につきましては、すぐにご回答くださった方にポイントを差し上げたいと思います。本当にありがとうございました。
csvとは、Comma Separated Value の略で、カンマで値を分けるということですが、一行をただの文字列として読みたいなら、line input などを使って一行ずつ読んでいったらいかがでしょうか?
お礼
16Augustさまのおっしゃるとおり、Line Inputを利用しました! またそこからSplit関数を利用して取得することができました。ありがとうございました。
- miwaharu
- ベストアンサー率25% (29/112)
こんにちは、 全角カンマなんですよね? 区切りは半角カンマだと思うので、アクセス側で、 混同して、区切ってしまうのでしたら、 CSVを一度テキストエディタで開いて、 全角カンマを別なものに置き換えて、保存 アクセスにインポート後に、再度置き換えては いかがでしょうか? 面倒ですが、更新クエリー等を一度作ってしまえば たいした手間ではないと思いますが・・・・
お礼
全角カンマです。 別なものに置き換えるのも考えたんですが、 Split関数を利用して取得することができました。(面倒でしたが…) ご回答ありがとうございました。
お礼
自己解決いたしました。 Split関数を利用して取得しました。 素早いご回答ありがとうございましたm(_ _)m