CDaoDatabaseの使い方を教えて下さい

[戻る]
自然水 2002/10/11(金) 17:19:22
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ができません。
何かおかしな点がありましたら、教えていただけませんでしょうか。

sugar 2002/10/11(金) 17:48:14
せっかく例外処理が発生しているわけですから、
例外ポインタeから何か情報を取ってみましょうよ、なぜ失敗したかわかるかもしれませんよ。
e->GetErrorMessage(...)とか、
CDaoException::m_pErrorInfoというメンバもあるようですが。

自然水 2002/10/11(金) 21:02:11
sugarの言う通りにe->GetErrorMessageで取得してみましたら、
「データベース形式'D:\tmp\Master.mdb'を認識できません。」でした。
ファイルパスは合っています。*.mdbの認識をさせる方法とかあるのでしょうか。

sugar 2002/10/12(土) 03:16:05
VC++ではありませんでしたが、以前、似たような経験をした気がします。
その時は確か、DAOのバージョンとmdbファイルのバージョンの不一致だったと思います。
(mdbはAccess2000で作ったやつで、DAOが古かったために認識してくれなかった)

自然水さんの使ってらっしゃるPCにインストールされてるDAOのバージョンと、
Master.mdbファイルのバージョンを、再度確認されてみてはどうでしょう。

はずしてたらごめんなさい。

kazuma 2002/10/12(土) 14:49:55
もしもAccess 2000で作ったデータベースを開こうとしているのなら、

MFCでDAOを使ってAccess 2000のデータベースを扱うときは、
ちょっと小細工をしないとだめみたいです。
http://www.microsoft.com/msj/0100/c++/c++0100.asp
に方法が載ってます。(2つ目のQ&A)

自然水 2002/10/13(日) 12:55:11
[[解決]]
sugarさん、kazumaさんありがとうございます。
versionとQ&Aを再度調べテストしてみます。少し時間が掛かりそうなので一度解決に致しま
す。それでも駄目な場合は再度掲示板に投稿します。その時はよろしくお願い致します。

古いスレッドには追加発言できません。