お世話になります。VC++6.0 SP4 Win2000ユーザーです。
DAOでAccess2000のMDBファイルの空のテーブルをオープンしようとしたら
エラーになるのですが、空のテーブルのオープンは無理なのでしょうか?
ご教授下さい。よろしくお願い致します。
回答ではありません
エラーについての質問ですが
1.関数の戻り値がエラーを示している?
2.アプリケーション実行時、エラーダイアログがシステムから表示される?
どちらでしょうか
また、そのときのエラー内容(2の場合など)どんな内容で表示される?
戻り値であれば、どんな値
もう少し自分の状況を詳しく説明してみてください、きっと力になってくれる人
いますよ
MFCのウィザード等を使用したのならステップごとの操作手順載せておくと
自分のところで手順再現まで検証アドバイスしてくれる人がまれにいますよ
・・・興味ある人は体外やってくれるみたいです
余談になりますけど .NET2003のMSDNの一文にこんなのありました
一部抜粋
-------------------------------------------------------------------------
DAO の環境サポートに関するメモ
Visual Studio .NET では、Visual C++ .NET 開発環境およびウィザードで
DAO がサポートされなくなりました。
DAO クラスは含まれているため、このクラスを使うことはできます。
新規プロジェクトの作成には、[OLE DB テンプレート] または [ODBC] の使用を
お勧めします。
DAO は、既存のアプリケーションを保守するためだけに使用してください。
-------------------------------------------------------------------------
・エラーのときのエラーコードやエラーメッセージはなんですか?
・空テーブル以外は、オープンできますか?
・空テーブルは、DB内に存在していますか?
レスありがとうございます。
テーブルのオープン処理はドキュメントクラスのコンストラクタ中で行ってます。
レコードが1件以上入っているテーブルのオープンは問題無かったのですが
アクセスのデータシートビューなどで全部レコード削除してみて
プログラムを起動すると「空のドキュメント作成に失敗しました。」と
ダイアログが現れまして、OKボタンをクリックすると
何もウィンドウは現れないまま終了して?プログラムは起動されません。
また、他にステータスなどわかれば、お知らせさせて頂きます。
よろしくお願い致します。
void ChogehogeDlg::OnOK()
{
AfxGetModuleState()->m_dwVersion = 0x0601;
CDaoDatabase db;
db.Open(d:\\db20.mdb);
CString strSQL = SELECT * FROM TABLE1;
CDaoRecordset rset(&db);
rset.Open(dbOpenDynaset ,strSQL);
TRACE(%d\n,rset.GetRecordCount());
}
VC++6.0 SP6 Win2000 Access2003
こんな感じで試してみましたがエラーは出ませんでした。
再現できる最小限のコードを載せてみてはいかがでしょう。
#SP6のせいかな?