現在の状態を簡単に表記します。
--------------------------------
DBフォルダ:D:\DATA
WKフォルダ:D:\WKDB
DBフォルダ内格納ファイル:M_ABC.DB
WKフォルダ内格納ファイル:W_ABC.DB
--------------------------------
'ADOセッション開始
Set AdoDBSession = New ADODB.Connection
AdoDBSession.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D\DATA;Extended Properties=Paradox 5.x;Persist Security Info=False"
AdoWdbSession.Open
'抽出
xSqlTxt = "SELECT * FROM W_ABC IN 'D:\WKDB'"
Set aDs = AdoDBSession.Execute(xSqlTxt)
上記で抽出を行うと、
実行時エラー '-2147467259(80004005)'
ファイル 'D:\WKDB'を開くことができませんでした。ほかのユーザーが排他的に
開いているか、データを読み取る権限がありません。
と、メッセージが出てきて抽出できません。
解決策がわかる方、お願いいたします。
ロジックの3行目に間違いがありました。
誤)AdoWdbSession.Open
正)AdoDBSession.Open
申し訳ありません。
そのものではありませんが・・・
http://support.microsoft.com/default.aspx?scid=kb;ja;306269
こういうものが該当しませんか?
ご参考までに・・・
※ 稼動環境は?(OSやADOのバージョン)
以上。
ありがとうございます。参考にしてみます。
稼働環境はOS=WINDOWS2000,ADO-Version=2.8です。
ちなみにADOは2.5〜2.8まで試してみました。
Paradox のバージョンは?
http://support.microsoft.com/default.aspx?scid=kb;ja;141796
該当しないものの場合、確かに開けませんが・・・
以上。
http://support.microsoft.com/default.aspx?scid=kb;ja;263561
http://support.microsoft.com/default.aspx?scid=kb;ja;286246
http://support.microsoft.com/default.aspx?scid=kb;ja;230126
http://support.microsoft.com/default.aspx?scid=kb;ja;159527
これらの内容は大抵同じ内容(意味)を指し示していますが、
あくまで参考と言うことで。
● Executeしないで、Recordsetで、リードオンリーで開いてみて
頂けませんか?
それで動けば、多分Executeでは、リードライトモードなので
その為のエラーかもしれません。
以上。
Executeメソッドを使用せず、リードオンリーで開いてみてましたが、同じエラーが出てしまいました・・・。
一応ソースを貼り付けておきます。
<前回>
xSqlTxt = "SELECT * FROM W_ABC IN 'D:\WKDB'"
Set aDs = AdoDBSession.Execute(xSqlTxt)
<今回>
xSqlTxt = "SELECT * FROM W_ABC IN 'D:\WKDB'"
Set aDs = New ADODB.Recordset
aDs.ActiveConnection = AdoDBSession
aDs.Open xSqlTxt, AdoDBSession, adOpenStatic, adLockReadOnly
他にも色々試してみます。
今気がつきまいsた・・・
こんがらがらせてすみません・・・
1ツのParadoxファイルをオープンして、このコネクションを
利用して違う場所のものは、オープンできません。
当然、これがアクセスとかエクセルでも同じです。
基本的な使用方法に誤りがあります。
JET経由でのADOでDBをオープンする場合、必ず、1ファイル
1コネクションで行って下さい。
それからまだエラーが出るようでしたら、また投稿して下さい。
以上。
ありがとうございます。
可能不可能がわかったので、違う方法でやってみます。
また何かわからない事があったら質問しに来ます。
それでは。
ツイート | ![]() |