Win2000、VC++6.0です。
CDaoDatabaseのOpenが出来ません。
#include <afxdao.h>
CDaoDatabase m_Database;
CString mdbPath = D:\\tmp\\Master.mdb;
try{
m_Database.Open( mdbPath );
}
catch(CDaoException* e){
AfxMessageBox(Error: DATABASE.Open);
e->Delete();
return(-1);
}
上記のようにするとOpenができません。
何かおかしな点がありましたら、教えていただけませんでしょうか。
せっかく例外処理が発生しているわけですから、
例外ポインタeから何か情報を取ってみましょうよ、なぜ失敗したかわかるかもしれませんよ。
e->GetErrorMessage(...)とか、
CDaoException::m_pErrorInfoというメンバもあるようですが。
sugarの言う通りにe->GetErrorMessageで取得してみましたら、
「データベース形式'D:\tmp\Master.mdb'を認識できません。」でした。
ファイルパスは合っています。*.mdbの認識をさせる方法とかあるのでしょうか。
VC++ではありませんでしたが、以前、似たような経験をした気がします。
その時は確か、DAOのバージョンとmdbファイルのバージョンの不一致だったと思います。
(mdbはAccess2000で作ったやつで、DAOが古かったために認識してくれなかった)
自然水さんの使ってらっしゃるPCにインストールされてるDAOのバージョンと、
Master.mdbファイルのバージョンを、再度確認されてみてはどうでしょう。
はずしてたらごめんなさい。
もしもAccess 2000で作ったデータベースを開こうとしているのなら、
MFCでDAOを使ってAccess 2000のデータベースを扱うときは、
ちょっと小細工をしないとだめみたいです。
http://www.microsoft.com/msj/0100/c++/c++0100.asp
に方法が載ってます。(2つ目のQ&A)
sugarさん、kazumaさんありがとうございます。
versionとQ&Aを再度調べテストしてみます。少し時間が掛かりそうなので一度解決に致しま
す。それでも駄目な場合は再度掲示板に投稿します。その時はよろしくお願い致します。