- PR -

Access97 → Access2002について

1
投稿者投稿内容
ttcoupe
大ベテラン
会議室デビュー日: 2003/01/17
投稿数: 116
お住まい・勤務地: 大阪市
投稿日時: 2003-03-27 17:12
いつも拝見させてもらってます。

既存のVBアプリ(Access97使用)をグレードアップしたいと
思って、Access97をAccess2002へ変換したのですが、
VBアプリから認識ができません。
参照設定で、"Microsoft Access 8.0 Object Library"と
"Microsoft Office 8.0 Object Library"、"Microsoft DAO 3.51 Object Library"
を設定してます。
これが悪さをしているのでしょうか。
"Microsoft Access 10.0 Object Library"と"Microsoft Office 10.0 Object Library"
に参照設定を変更して、リコンパイルをせればよいのでしょうか?
同様事象に会われた方おられましたら、解決方法を教えてください。
よろしくお願いします。
Mr.タナカ
ベテラン
会議室デビュー日: 2003/03/15
投稿数: 64
投稿日時: 2003-03-28 01:32
こんにちは。
Accessをデータベースにして開発はあまりした事がありませんので、役に立たないかもしれませんが、Oracleのバージョンの違いでエラーになる事はありました。
原因は同様のOracleの参照設定でした。(名前は忘れましたが)
今は、同じような事がないように、セッション、レコードセットなどは、全てObjectで宣言しています。
参照設定に加えると、プロパティやメソッドが出て楽なんですが、Accessも同様にバージョンの違うデータベースになるとダメかもしれませんね。

方法としては、DAOなどの宣言を全てObjectに変えて、参照設定を外してみては、どうでしょうか?
個人的には「DAO」のような気がしますが...外していたら、すみません。
take
会議室デビュー日: 2003/03/31
投稿数: 1
投稿日時: 2003-03-31 09:58
こんにちは。
まとをはずしているかもしれませんが、
Access97は"Microsoft DAO 3.51 Object Library"を使用しますが、
Access2000では"Microsoft DAO 3.6 Object Library"を使用していましたので
そのバージョンによるかもしれないですね。
また、万が一ADOのライブラリーを参照しているかもしれないのでご注意を。
その場合は、DAO.Recordser等の用に明示的に記述する事も出来ます。
ttcoupe
大ベテラン
会議室デビュー日: 2003/01/17
投稿数: 116
お住まい・勤務地: 大阪市
投稿日時: 2004-01-13 13:16
みなさん色々とありがとうです。レスが遅れてしまいました(^o^;

いろいろな制約がありそうですね。
一からの再構築も視野において検証してみます。
ほむら
ぬし
会議室デビュー日: 2003/02/28
投稿数: 583
お住まい・勤務地: 東京都
投稿日時: 2004-01-13 15:23
ども、ほむらです。
#Accessのマクロ(VBA)の話。

Access97と2000以降ではデータベースオブジェトのデフォルトが違います。
97以前はDAO 2000以降はADOです。

もしもプログラム内部の宣言で RecordSetなどを
DAO.RecordSetと記述していない場合。
名前解決ができなくなって正常に動作しないようです。
リックス
常連さん
会議室デビュー日: 2001/10/01
投稿数: 47
お住まい・勤務地: 東京
投稿日時: 2004-01-13 17:42
こんにちは。

Recordset など DAOとADOの名前の衝突ですが、優先順位を指定することが可能です。
参照設定でオブジェクトの一覧がリストされますが、そのリストの上から順に名前解決されていきます。(チェックが入っているものだけです。)

ですのでDAOを優先的に使用するのであれば、参照設定での並び順をDAOがADOより上に来るようにします。(当然、DAOにチェックが入っていなければ入れます。)

参考にしてください。
1

スキルアップ/キャリアアップ(JOB@IT)