- ベストアンサー
MDBファイルをCSV出力したい
こんばんは。 環境: OS:WINDOWS2000 VB6.0 sp5 アクセス2000 VBからアクセスのMDBデータをCSV形式で出力させようとしています。 mdbファイルが実行中にVBのexeを起動してcsvファイルを取得したいのですが、いい方法が分かりません。 閉じているMDBファイルのデータをCSVで出力することは可能です。 MDBファイルが開いているとexeを実行した時に「実行時エラー7866 データベースが開いています」というようなメッセージが出て処理ができません。 なにかいい方法はないでしょうか よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
エラーの出る原因と対策を以下に記します。 1. 本当にデータベースファイルがない →データベースファイルへのパスをもう一度確認してください。 2. 排他モードで開いている →Accessのツール→オプション→「詳細」タブの、既定の開くモードが共有モードになっていることを確認する →開くときに「普通に開いている」(ファイルを開くダイアログで排他を指定していない)ことを確認する 3. Visual Basic Editorが開いている →AccessのVisual Basic Editor を閉じる 上記を確認してみてください。
その他の回答 (2)
- space_needle
- ベストアンサー率48% (174/362)
実行時エラー 7866は、 「データベース ファイルがないか、他のユーザーが排他モードで開いているため、このデータベースを開くことができません。」 というエラーです。 他の処理で開く際に、排他モードで開いていませんか? 例えば、 AppAccess.OpenCurrentDatabase "c:\sample.MDB", True と、OpenCurrentDatabaseの第二パラメータをTrueにすると、排他モードになります。 こうすると、他の人はデータベースを開くことができません。
- space_needle
- ベストアンサー率48% (174/362)
実行している部分のソースを抜粋して載せていただければ、力になれるかもしれません。 それと、MDBファイルを開いているのは出力するプログラム自身なのか、他人なのかもお教えください。
補足
お返事ありがとうございます。 ソースは Dim AppAccess As New Access.Application AppAccess.OpenCurrentDatabase "c:\sample.MDB" AppAccess.DoCmd.TransferText acExportDelim, , "sanple", "c:\sample.CSV", False AppAccess.CloseCurrentDatabase Set AppAccess = Nothing このような感じでaccess9.0object LIBRARYを使用しています。 MDBファイルを開いているのはまったくのほかの処理になります。 出力するプログラムは出力するのみです。 お願いします。
補足
おはようございます。 MDBファイルは常に開いた状態になっているのです(アクセスでMDBファイルのテーブルが開いた状態です) その状態でリアルタイムでMDBファイルにデータが更新されるようなシステムになっています。 それを今回のVBのexeを実行したタイミングでそのときのMDBファイルの内容をcsvに落としたいのです・・・ MDBファイルをアクセスで開くときにも排他モードで開くとかいう設定があるのでしょうか?