VC++6.0でDAOを用いてAccess97は読み込むことができるのですが,
Access2000になると開けません。方法があるらしいのですが,よくわかりません。
ちなみに,データの更新,追加,削除の方法も教えてもらえたらうれしいです。
よろしくお願いします。
参考になるかわかりませんが。
VBでの話ですが、Access97で保存したmdbファイルをアクセスするプログラムが、
Access2000で保存したmdbファイルをアクセスするすると失敗する現象が起こりました。
DAOのDLLが、2000に対応したバージョンではなかったことが原因でした。
この点は問題ないですか?
一般的に考えて、基本的にI/Fが変わるようなことはないと思うんですが...
おそらくそこに問題があると思われるのですが
対処方法がわかりません
プログラム上でDLLの選択などは行えないのでしょうか?
「MAGURO ONLINE YOKOHAMA」のプログラミング会議室( http://www2s.biglobe.ne.jp/~maekawa/dev/bbs/index.html)
の方でレスがついていますが、
それではだめなんでしょうか?
ありました。
全文英語ですがプログラムをたどっていけば
できそうな気がします。
あとデータの更新,追加,削除の方法も教えてもらえたらうれしいです。
よろしくお願いします。
いい忘れましたが
今DAOでAccess97は読み込める状態です。
あと検索などもしたいので,そちらも教えていただければうれしいです。
お願いします。
try{
m_Database.Open(xxxxx.mdb);
}
catch(CDaoException* e){
AfxMessageBox(Error: DATABASE.Open);
e->Delete();
return(-1);
}
CString connect = m_Database.GetName();
// SQL処理
CString query;
query = (select * from テーブル1);
m_pRecordset = new CDaoRecordset(&m_Database);
db_flg = 1;
try{
m_pRecordset->Open(dbOpenDynaset, query, dbReadOnly);
}
catch(CDaoException* e){
AfxMessageBox(Error: RECORDSET.Open);
e->Delete();
return(-1);
}
}
ソースはこんなかんじです。
もう見てないかも知れませんが、解決フラグがたってないので一応書き込みます。
InitInstance()あたりで、
AfxGetModuleState()->m_dwVersion = 0x0601;
とするだけでいけます。