• 締切済み
  • 困ってます

拡張子のないファイルをACCESSにインポート

ACCESS2003についての質問です。 データをインポートする際、拡張子の付いていないファイル(データの内容は区切り記号付きテキストファイルで表示することができます。)をACCESSにインポートする方法を教えて下さい。 .txt や .csv などの拡張子をつればACCESSでインポートできるファイルになるのですがその手間を省けないか?と言われています。 それ位してくれよと思うのですが・・・ VBAは少し勉強しているのですが、VBAを利用すればACCESS上でファイルに拡張子を付け加える事は可能になるのでしょうか?教えてください。

共感・応援の気持ちを伝えよう!

みんなの回答

  • 回答No.4
noname#79209
noname#79209

DoCmd.TransferText,acImportDelim,インポート定義名,テーブル名,ファイル名(完全パス名),・・・ なので、 DoCmd.TransferText , acImportDelim, , "Tスタッフマスタ", "C:\Documents and Settings\taro\デスクトップ\スタッフマスタ" で大丈夫なはずですが、 取り込むデータとテーブルのフィールドの属性が合致していないようなエラーメッセージですね。 > ファイルの中身は > 「101,"早川 守",2004/5/1,"田中物流","梱包作業"」 と言われているので、 「Tスタッフマスタ」のフィールドが 数値(整数か長整数)型、テキスト型、日付/時刻型、テキスト型、テキスト型 になっているか確認してください。

共感・感謝の気持ちを伝えよう!

  • 回答No.3
noname#79209
noname#79209

多分Accessで手作業でインポートする際に、ファイルの種類の選択肢中に 「拡張子なし」あるいは「全てのファイル」がないので、拡張子なしのファイルが選択できなということでしょう。 AccessのVBAでは拡張子が無くてもインポート出来ます。 フィル名が解っていて、かつ区切り記号も解っているなら、 DoCmd.TransferText,acImportDelim,インポート定義名,テーブル名,ファイル名(完全パス名),・・・ で可能です。 詳しくは以下を... http://www.accessclub.jp/samplefile/help/help_162_1.htm

共感・感謝の気持ちを伝えよう!

質問者からのお礼

以下のコードを試してみましたが「いずれかの引数とデータ型が対応していません。」というエラーが出てきました。 (デスクトップ上にある拡張子の無い「スタッフマスタ」ファイルをテーブル「Tスタッフマスタ」にインポートする) Private Sub cmdインポート_Click() DoCmd.TransferText , acImportDelim, , "Tスタッフマスタ", "C:\Documents and Settings\taro\デスクトップ\スタッフマスタ" End Sub ファイルの中身は 「101,"早川 守",2004/5/1,"田中物流","梱包作業"」 上記の様なレコードです。 vizzarさんの方法を出来るようになりたいので間違いを教えていただけませんか?

  • 回答No.2
  • imogasi
  • ベストアンサー率27% (4683/16805)

メモ帳で 氏名,住所,年齢、所属 a,sd,f,g,hgg sd,f,gh,jku (内容はでたらめ) 拡張子なしで「CSV拡張子」という名で保存した。どんな名前でも良い。拡張子をつけない。 ーー アクセスのモジュールで下記をつくり Sub test04() Name "C:\Documents and Settings\XXX\My Documents\CSV拡張子" As "C:\Documents and Settings\XXX\My Documents\CSV拡張子.csv" End Sub を実行した(xxxの部分はユーザー名) ーー メモ帳で確認すると 今度はファイル種類を *.csv と指定して探せる。 メモ帳画面に 上記と同じデータがでた。 ーーー Name 変更前 変更後  でファイル名が変えられる。拡張子も含めてがファイル名である。 ーー 私にとって余りやる作業では無いので、質問者で確認してみてください。 後はテキストのインポートのアクセスVBAコードを続けて書けばよい。

共感・感謝の気持ちを伝えよう!

  • 回答No.1

VBAで、色々とやり様はあると思いますが、一例として、 参考URLのコードは、EXCEL VBAの事例ですが、ACCESSの標準モジュールに貼り付けて実行すると、動作します。ファイルに対して色々な操作が可能ですので、ご参考にして下さい。

参考URL:
http://officetanaka.net/excel/vba/filesystemobject/file.htm

共感・感謝の気持ちを伝えよう!

質問者からのお礼

参考URLにあるコードを貼り付けてやってみたら拡張子付け加えられました。びっくりしました。やぁーいろんな事ができるんですね。VBAたのしいですね。

関連するQ&A

  • MS AccessでExcelファイルのインポートは?

    AccessのVBAでExcelファイルをインポートするにはどうすればいいのでしょうか? ちなみに DoCmd.TransferText acImportDelim, , "Tmp名簿", strInPutPath & "\名簿.csv", True (strInPutPathは、ダイアログから取得したパスです) では、CSVファイル(TXTファイル)しか読み込めません。 (もちろん、そのため拡張子が「.csv」にしていますが 読み込むファイルをテキストファイルにしたら「.txt」でもいいです) 「ファイル」メニュー(コマンド)の「外部データの取り込み」→「インポート」では、Excelファイルも読み込めるので悔しいです。 これをVBAでやりたいんですが。 よろしくお願いいたします。

  • PSV形式ファイルをAccessにインポートしたい

    いつも楽しく勉強させていただいております。 Access2013を使っています。 やりたいことはこのAccessにPSV形式(","の代わりに"|"で区切られている)のファイルをインポートしたいのですが、うまくいきません。 [外部データ]-[テキストファイル]-[参照]で開くダイアログボックスで拡張子.psvのファイル名を指定すると下記のエラーとなります。 "次の拡張子がないテキストファイルはインポートできません。txt,csv,tab,asc,tmp,htm,html,log" つまり拡張子がいけないようです。 ファイルの拡張子を.csvに変更してインポートするとうまく取り込めるときと"インデックスが有効範囲にありません"のエラーになるときがあります。 うまくいったときにインポートの定義を保存しようとしましたが、できませんでした。 当面の逃げ道としては、"|"を","に変更し、拡張子を.csvにして保存したファイルを取り込んでいます。 それでもいいのですが、何かスマートな解決法はないものでしょうか。

  • Accessからのインポートについて

    Accessからテキストファイル(txt、csv)をまとめてインポートするにはどうすればいいですか? あるフォルダにあるテキストファイルをまとめてインポートできるようなマクロはできるのでしょうか? 分かる方がいましたら、よろしくお願いします。

  • ACCESS CSV形式でエクスポートしたい

    ACCESSで作成したデータをCSV形式でエクスポートしたいです。 ファイルの種類で「テキストファイル(*.txt;*.csv;*.tab;*.asc)」を選択すると 拡張子txt で保存されてしまいます。 もちろん、あとで拡張子を変更すればよいのですが、保存の際に CSV形式にすることは不可能でしょうか?? VBAなど難しいことは、わからないので、出来なければ結構です。 よろしくお願いいたします。

  • ACCESSで、テキストファイルをインポートしたい

    宜しくお願い致します。 ACCESSで、テキストファイルをインポートしてテーブルを作成したいのですが、ファイル→インポートを選択して、ウィザードを開く方法は分かるのですが、マクロを作成してインポートは出来ないでしょうか? excel、CSVファイルでしたら、「ワークシート変換」、「テキスト変換」のマクロでインポートしたりエクスポートしたり出来ると思うのですが・・・、 (1)テキストファイルをインポートしたり、エクスポートしたりする場合、どのようなマクロがあるのでしょうか。 (ためしに、「出力」マクロで、あるテーブルをCSVファイルにエクスポートしてみたのですが、カンマ区切りにできず、excelのような枠付きのテキストファイルになってしまいました。) (2)容量が大きいデータの場合は、テキストファイルでエクスポートしたほうが良い・・・という認識に間違いはありませんでしょうか。 質問が一つ増えてしまいましたが、宜しくお願い致します。

  • ACCESSデータベースのインポート 

    ACCESSデータベースでインポートしたいデータ(拡張子がlog)があるのですが、そのままだと文字列が区切られていなくテーブルに入らないので、毎回 しょうがなく事前に置換ツール等を使ってカンマ区切りにしてからインポートしています。 モジュールなどを使って、インポートする前のデータをテーブルに入れやすい 形(カンマ区切りのtxtファイルぐらいしか思いつかないのですが。。。)に置換・変換っていうのはできるんでしょうか??教えて下さい。。

  • Accessのインポートについて

    マイクロソフトアクセス2010でテーブルを作り、そこにCSVファイルを読みこませたいです。 テーブルのフィールドはテキスト型です。 例えば、Table_TESTというテーブルにF1というテキスト型のフィールドを設けます。 Access標準のTEXTインポート機能を使い、インポートを行おうとします。 CSVファイルのデータは、「12345678912345678ABCD」といったように数値とアルファベットです。 なぜか、このようなデータをインポートする時にデータ変換エラーと表示されて、正しくインポートできません。 これは、なぜこのような現象が起こるのでしょうか?

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

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

  • ACCESS複数テキストファイルをインポートについて

    ドライブC、フォルダ DETA 内に 数は100を越えるテキストファイルがあります "C:\DETA\*.txt"です  性質は 「区切り記号付(カンマ区切り)」です。 フィールドは全部で4つ データ型は全て同じで”テキスト型”です。 これを 同フォルダ内の 「データベース1.mdb」にインポートしたく思います。 本来ならウィザード使って終わりですが インポートするテキストファイルが100を越えるため  一度で何とかインポートしたいのですが 手段がわからずじまいです。 マクロという項目がありますが ここでは使えないのでしょうか? アクセスに関しては超入門レベルで もう少し調べろとお叱りをいただくレベルだと思います。 そこを何とぞご教授 お願いしたく思います。

  • Access2000のCSVファイルのインポートについて

    Access2000でCSVファイルをインポートしようと思っています。 インポート方法は、VBAで 「DoCmd.TransferText acImportDelim, , "テーブル名", "ファイル名"」を使用しています。 この時に、CSVファイルが次のようなデータです。 F1,F2,F3 0010,0200,0001A12 0011,0201,0021B12 (実際は、1000件近いデータです) これをインポートすると、 F1,F2,F3 10,200,1A12 11,201,21B12 となってしまいます。 頭の「0」を省きたくないのです。 文字列として取り込めないでしょうか? CSVのデータに""を自動でつける方法はないでしょうか? Accessの外部データの取り込みを使うと、文字列として指定できるのですが、VBAを使いワンクリックでデータを取り込もうとしています。 よろしくお願いします。