まだ初心者なので教えて下さい。
AccessでエクスポートしたTXTファイルをDATファイルに変換する方法を教えて下さい。
また、Accessで直接DATファイルでエクスポート及びインポートは出来ないのでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (8件)

>また、Accessで直接DATファイルでエクスポート及びインポートは出来ないのでしょうか。


お使いのAccessのバージョンとサービスリリース(SR)のバージョンが分からないので一概に言えませんがAccess2000のSR-1では拡張子DATのファイルをインポートしようとするとエラーになります。どうやら拡張子で形式判定がされているようで駄目のようです。

>AccessでエクスポートしたTXTファイルをDATファイルに変換する方法を教えて下さい。

DAT形式というのはどのような形式を言っていますか?

テキスト系であれば下記の3種類が一般的にかな
CSV(カンマ区切り)、タブ区切り、固定長

DATという拡張子に変更したいのであればエクスプローラの「ツール」「フォルダオプション」を起動して「表示」タブの「登録されているファイルの拡張子は表示しない」のチェックを外して下さい。(Win98の場合)

そうすれば拡張子は変更出来ます。
    • good
    • 0

3度登場のyanmmaです。


VBAが良く分からないとの事なので実際に動くような形で記述します。
元のソースはvx048さんのをベースとさせていただきます。

なお動作確認していないの記述等にミスがあるかも知れませんがご了承願います。

Function M_Data_エクスポート()
On Error GoTo M_Data_エクスポート_Err

'前回作成したファイルがあれば削除する。
If Dir("C:\WINDOWS\Bank\widenet.dat") <> "" then kill "C:\WINDOWS\Bank\widenet.dat"
DoCmd.TransferText acExportFixed, "送信 エクスポート定義", "送信Data", "C:\WINDOWS\Bank\Widenet.txt", False, """"
Name "C:\WINDOWS\Bank\Widenet.txt" As "C:\WINDOWS\Bank\Widenet.dat"

M_Data_エクスポート_Exit:
Exit Function

M_Data_エクスポート_Err:
MsgBox Error$
Resume M_Data_エクスポート_Exit

End Function
    • good
    • 1
この回答へのお礼

大変長い間ご指導下さりありがとうございました。
半ば諦めかけていたのですが、解決できました。
また、何かありましたら宜しくお願いします。

お礼日時:2001/10/16 15:12

どのバージョンからか忘れましたが、確かウィルス対策で拡張子のDATが使えなくなった話を聞いた記憶が・・・(この辺は自信ないです)確かお客さん所にも通知したっけな・・・



取りあえず、拡張子をtxtでエクスポートして、名前を変えるってのはどうでしょう?

エクスポートが
「c:\○○.txt」だとすると

FileCopy "c:\○○.txt" "c:\○○.dat"
Kill "c:\○○.txt"

あんまりスマートなやり方じゃないですけど。
    • good
    • 0

No5の補足からするとEDI関係かな


銀行と入出金(買掛とか売掛)に関する情報のやり取りをするのでようね。

貴方会社のシステムではAccessにデータがあってそのデータをコマンドボタンか何かでデータを作成して銀行に送る。

この時に銀行側からは「HOGO.DAT」というようにファイル名を指定された。

銀行から貴方の会社へ送るファイルは「HOGE2.DAT」で送信すると言われた。

これをAccessでインポート/エクスポートをしたい如何すればいいのでしょうか?

と言う質問であるなら。

インポート/エクスポートする時に拡張子を変えればいいと思いますが...

例えば
インポートの時
name HOGE2.DAT as HOGE2.TXT
docom.TransferText インポート

エクスポートの時
docom.TransferText エクスポート
name HOGE.TXT as HOGE.DAT

この回答への補足

ありがとうございます。
質問の趣旨はご指摘の通りです。
経験不足のため、出来るだけVBAを使わずにマクロで作成しましたので、書込の場所が解りません。
マクロで下記のような設定で、エクスポートしているのでが.....
変換の種類=固定長エクスポート
定義名=送信 エクスポート定義
テーブル名=送信Data
ファイル名=C:\WINDOWS\Bank\HOGE.TXT---(.datですと、読取り専用なので更できませんと表示されます。)
フィールド名の設定=いいえ

コードは、下記の通りです。
Function M_Data_エクスポート()
On Error GoTo M_Data_エクスポート_Err
DoCmd.TransferText acExportFixed, "送信 エクスポート定義", "送信Data", "C:\WINDOWS\Bank\HOGE.TXT", False, """"
Name Widenet.txt As Widenet.dat

M_Data_エクスポート_Exit:
Exit Function

M_Data_エクスポート_Err:
MsgBox Error$
Resume M_Data_エクスポート_Exit

End Function

宜しくお願いいたします。

補足日時:2001/10/13 11:24
    • good
    • 0

>データー通信に使うためにAccess2000エクスポートした***.txtファイルを***.datに変えたいのですが...



ごめんなさい。一つ一つ順番に補足して下さい。

1.データ通信てなにでしますか
 例)メール、何かソフト?
2.なぜ、TXT→DATに変更したいのですか
 例)何かのソフトでそれでしか読めない等
3.なぜ、TXTでインポート出来る拡張子をDATに変更しなければならないか
 ????

最後まで付き合いますから、補足して下さい。
がんばれ(~_~;)

この回答への補足

申し訳有りません。宜しくお願いいたします。

1.データ通信てなにでしますか
 銀行から提供されたオンライン総合振込用ソフトの中にある通信手順(全銀手順)を
 使って120バイトのデータを公衆回線で送信します。
2.なぜ、TXT→DATに変更したいのですか
 良く分からないのですが、受信側での処理が1件1件手作業ではないので、同じ拡張子 するよう変更指示があったものと思います
3.なぜ、TXTでインポート出来る拡張子をDATに変更しなければならないか
 TXTファイルは、自分が作成したもので、試しにインポートしたもので、銀行側から 送信されてくるものは多分同じくDATだと思われます。

補足日時:2001/10/12 14:11
    • good
    • 0

>DATファイル



 mdb ファイルのこと??

この回答への補足

データー通信に使うためにAccess2000エクスポートした***.txtファイルを***.datに変えたいのですが...

補足日時:2001/10/11 14:37
    • good
    • 0

datという拡張子のファイルは様々なアプリケーションが作りますから、まずDATファイルとは何かを書かないと誰にもわからないと思います。

この回答への補足

質問の仕方も解らない初心者なので申し訳有りませんが宜しくお願いします。

補足日時:2001/10/11 14:44
    • good
    • 0

アクセスで直接TXTファイルは読みこめます。


もしドライバーが無いと言うエラーになる時は
アクセスの追加セットアップで追加して下さい。
なんか意味合いが違うかな?
何かあれば補足して下さい。

この回答への補足

***.txtファイルは読めるのですが、単に名前の変更でtxtの部分をdatに変えてみましたが、アイコンがウインドウズのアイコンになってAccessではインポートできませんでした。

補足日時:2001/10/11 14:45
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccessでdatファイルのインポート

Accessを最近はじめたばかりなので、基本的な内容だったらすいません。
自分なりに調べたんですが、分からなかったので質問させて頂きます。

Access2003 SP1を使っているのですが、datファイル(固定長テキストファイル)をインポートする方法を教えていただけないでしょうか?
拡張子を「.txt」に変更してインポートすればいいのは調べて分かるのですが、業務上datファイルのままでインポートしたいんです。

申し訳ありませんが、ご回答宜しくお願い致します。

Aベストアンサー

> そのまま、インポートするには、レジストリの操作が必要になります。

[ACC2000]ファイルのインポート/エクスポートで '読み取り専用' のエラーが発生する
http://support.microsoft.com/default.aspx?scid=kb;ja;436329


> もう少し教えていただけないでしょうか?

Sub インポート()

  Dim strOldName As String
  Dim strNewName As String

  strOldName = "c:\xxx.dat"
  strNewName = "c:\xxx.txt"

  Name strOldName As strNewName
  DoCmd.TransferText acExportDelim, _
          "インポート定義名", _
          "テーブル名", _
          strNewName,
  Name strNewName As strOldName

End Sub

標準モジュールに、上記をコピーして、Sub ~ End Sub の間にカーソルを
おき、F5 キーを押してください。
#そちらの環境に合わせて、ファイル名や、テーブル名等は修正してください。

> そのまま、インポートするには、レジストリの操作が必要になります。

[ACC2000]ファイルのインポート/エクスポートで '読み取り専用' のエラーが発生する
http://support.microsoft.com/default.aspx?scid=kb;ja;436329


> もう少し教えていただけないでしょうか?

Sub インポート()

  Dim strOldName As String
  Dim strNewName As String

  strOldName = "c:\xxx.dat"
  strNewName = "c:\xxx.txt"

  Name strOldName As strNewName
  DoCmd.TransferText acExportDelim,...続きを読む

QdatファイルをACCESSへのインポートについて

datファイル(固定長)をテキストに変換してからACCESSにインポートする、というやり方をした時、改行コードがなくサイズが大きいためか処理が中断してしまい、インポートできません。
ためしに件数を減らすと、インポートはできますが1レコードとして見えてしまうので、処理上都合が悪い状況です。
このようなデータをインポートするのに良いやり方があれば教えてください。
1ファイルあたりの最大サイズは、1000 * 800件です。
ACCESS2000を使用。

Aベストアンサー

簡単なのは下記のようなツールを使うこと。
http://www.vector.co.jp/soft/win95/util/se127011.html

多少プログラム書ければ、どんな言語でもこれぐらいは処理できますよ。
http://www.google.com/search?client=opera&rls=ja&q=%EF%BC%B6%EF%BC%A2%EF%BC%A1+%E5%9B%BA%E5%AE%9A%E9%95%B7&sourceid=opera&ie=utf-8&oe=utf-8

QACCESS2000でテキストファイルのインポート・エクスポート出来ない

インポート及びエクスポートをテキスト形式(csv,txt等)で実行すると「ActiveXコンポーネントはオブジェクトを作成できません。」と出るようになってしましました。どなたか情報をいただけませんか?宜しくお願いします。

Aベストアンサー

>ActiveXコンポーネントはオブジェクトを作成できません。
このエラーが出るのは大まかにいって下記の原因が考えられます。
*1つか複数の設定されている参照が見つからない。
*無効なユーティリティデータベース参照が存在している。
*破損したウィザード ファイルがある。
*要求するライブラリに必要な権限をユーザーが持っていない。
*DAOが正しく登録されていない。
などですが・・。
VisualBasicEditorを開き参照設定を確認してみてください。

QVBAでAccessのテーブルのエクスポート・インポートをするには。

すみませんが、教えてください。

Excel+VBAで、AccessをSQL,ADO,ADOXで操作しようとしています。

a.mdbのテーブルを、b.mdbに、エクスポート(インポート)したいのですが、やり方がわからず困っています。

すみませんが、テーブル構造のみをエクスポートする方法、データを含めてエクスポートする方法を教えてください。

Aベストアンサー

◆方法1

Access をお持ちなら以下の方法が可能です。

DoCmd.CopyObject でコピーする。

これを行うには excelのVBA画面で 参照設定に microsoft Access Object 10.0 Liblary
を追加します。
__________________________________________________________
◆方法2
リンクテーブルを用いる

まず、B.MDB にリンクテーブルとして A.mdb のテーブルを
定義します。
これで B.mdb 側から A.mdbのテーブルが見えるようになります。

参考:「Microsoft Access のテーブルを使用した作業」のHPを参照
______________________________

【参考】
◆CopyObject マクロ アクション
 http://office.microsoft.com/ja-jp/access/HA012262131041.aspx

◆Microsoft Access のテーブルを使用した作業
http://www.microsoft.com/japan/msdn/columns/office/office10052000.aspx


◆ADO(ActiveX Data Object)
 http://tuka.s12.xrea.com/index.xcg?p=ADO#p10
 
 

◆方法1

Access をお持ちなら以下の方法が可能です。

DoCmd.CopyObject でコピーする。

これを行うには excelのVBA画面で 参照設定に microsoft Access Object 10.0 Liblary
を追加します。
__________________________________________________________
◆方法2
リンクテーブルを用いる

まず、B.MDB にリンクテーブルとして A.mdb のテーブルを
定義します。
これで B.mdb 側から A.mdbのテーブルが見えるようになります。

参考:「Microsoft Access のテーブルを使用した作業」のHPを...続きを読む

QTXTデータを既存の、Access2000のテーブルへインポートしたいのですが・・・

OSはWindows98SE
SoftはAccess2000です。

現在Accessに、約5000件くらいの既存データがあります。(主キー:主索引)
-----------------------------------------------------------------
 主索引| 発注番号| 発注日 |担当者|販売先|商品番号|商品名・・・  
-----------------------------------------------------------------
00000001|0000000111|20011001| 03 |1001| A001 |ボイド
00000002|0000000222|20011005| 05 |1003| B004 |塩ビパイプ
  ・     ・     ・     ・   ・    ・    ・
  ・     ・     ・     ・   ・    ・    ・

そこへ約50件くらいのTXTデータを新しく追加及び、既存データに対して追加変更があったデータに修正(上書き)をしたいのですがどなたか教えていただけないでしょうか。
自分なりに、更新クエリを使ってみたり、VBの本を読んだりしたのですがよくわからず悩んでいます。。
何かヒントとなるものでも結構です。
説明が下手で申し訳ありませんがどうぞよろしくお願い致します。

OSはWindows98SE
SoftはAccess2000です。

現在Accessに、約5000件くらいの既存データがあります。(主キー:主索引)
-----------------------------------------------------------------
 主索引| 発注番号| 発注日 |担当者|販売先|商品番号|商品名・・・  
-----------------------------------------------------------------
00000001|0000000111|20011001| 03 |1001| A001 |ボイド
00000002|0000000222|20011005| 05 |1003| B004 |塩ビパイプ
  ・     ・...続きを読む

Aベストアンサー

まず、どこまで解かってて、どこから解かっていらっしゃらないのか解かりませんが(^^;、一から説明してみたいと思います。

現在AccessにあるテーブルをA、約五十件というデータをBというテーブルにインポートしたとします。

Aに無いデータを追加する方法・・・フィールド名・数共に同一であると仮定してあります。
この場合、不一致クエリを使用してAに含まれていないデータを抽出後、そのデータをテーブルに追加クエリを用いて追加します。
具体的には(今後のためにウィザードは使用しません)、
1)新規クエリをデザインビューで開く。
2)A、Bを「テーブルの表示」より追加する。
3)Aの「主索引」にBの「主索引」をドラッグする。
4)結合線が表示されるのでダブルクリックし、「結合のプロパティー」を表示する。
5)「Bの全レコードとAの同じ結合フィールドのレコードだけを含める」を選択。
6)Aの「主索引」をダブルクリックしてクエリにフィールドを追加。
7)フィールドの「表示」チェックをはずし、「抽出条件」に「Is Null」と記述。
8)Bの「*」をダブルクリックして全てのフィールドをクエリに追加。

ここまでで不一致クエリ(Aに無いデータの抽出)は終了です。適当なクエリ名(仮にIQ_Cとします)をつけて保存します。
このクエリを追加クエリに変更します。

9)IQ_Cをデザインモードで開く。
10)メニューバーより「クエリ」→「追加」を選択。
11)追加先を要求されるのでAを選択。
12)抽出条件に「Is Null」が入力されている列の「レコードの追加」(主索引となっていると思いますが)を削除(Delete)

これで完成です。
デザインモードで一度開いた後にビューに切り替えると追加されるレコードが表示されます。また、クエリをダブルクリックすれば追加クエリが実行されます。

長くなりましたが、お役に立てれば幸いです。

まず、どこまで解かってて、どこから解かっていらっしゃらないのか解かりませんが(^^;、一から説明してみたいと思います。

現在AccessにあるテーブルをA、約五十件というデータをBというテーブルにインポートしたとします。

Aに無いデータを追加する方法・・・フィールド名・数共に同一であると仮定してあります。
この場合、不一致クエリを使用してAに含まれていないデータを抽出後、そのデータをテーブルに追加クエリを用いて追加します。
具体的には(今後のためにウィザードは使用しません)、
1)新...続きを読む


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング

おすすめ情報