• ベストアンサー

MDBファイルをCSV出力したい

こんばんは。 環境: OS:WINDOWS2000 VB6.0 sp5 アクセス2000 VBからアクセスのMDBデータをCSV形式で出力させようとしています。  mdbファイルが実行中にVBのexeを起動してcsvファイルを取得したいのですが、いい方法が分かりません。 閉じているMDBファイルのデータをCSVで出力することは可能です。  MDBファイルが開いているとexeを実行した時に「実行時エラー7866 データベースが開いています」というようなメッセージが出て処理ができません。 なにかいい方法はないでしょうか よろしくお願いいたします。

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

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

エラーの出る原因と対策を以下に記します。 1. 本当にデータベースファイルがない  →データベースファイルへのパスをもう一度確認してください。 2. 排他モードで開いている  →Accessのツール→オプション→「詳細」タブの、既定の開くモードが共有モードになっていることを確認する  →開くときに「普通に開いている」(ファイルを開くダイアログで排他を指定していない)ことを確認する 3. Visual Basic Editorが開いている  →AccessのVisual Basic Editor を閉じる 上記を確認してみてください。

その他の回答 (2)

回答No.2

実行時エラー 7866は、 「データベース ファイルがないか、他のユーザーが排他モードで開いているため、このデータベースを開くことができません。」 というエラーです。 他の処理で開く際に、排他モードで開いていませんか? 例えば、 AppAccess.OpenCurrentDatabase "c:\sample.MDB", True と、OpenCurrentDatabaseの第二パラメータをTrueにすると、排他モードになります。 こうすると、他の人はデータベースを開くことができません。

kyoko0902
質問者

補足

おはようございます。 MDBファイルは常に開いた状態になっているのです(アクセスでMDBファイルのテーブルが開いた状態です) その状態でリアルタイムでMDBファイルにデータが更新されるようなシステムになっています。 それを今回のVBのexeを実行したタイミングでそのときのMDBファイルの内容をcsvに落としたいのです・・・ MDBファイルをアクセスで開くときにも排他モードで開くとかいう設定があるのでしょうか?

回答No.1

実行している部分のソースを抜粋して載せていただければ、力になれるかもしれません。 それと、MDBファイルを開いているのは出力するプログラム自身なのか、他人なのかもお教えください。

kyoko0902
質問者

補足

お返事ありがとうございます。 ソースは 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ファイルを開いているのはまったくのほかの処理になります。 出力するプログラムは出力するのみです。 お願いします。

関連するQ&A