質問: Accessの移行について、教えて頂けないでしょうか。 ### 前提・実現したいこと Access 2002(32ビット版)で作成されたmdbを、Aaccess 2016(32ビット)で動作させる為に移行したいです。 2017/5/4 9:35 追記 下記で行ったmdbをaccdbに変換する方法に間違いがありましたらご指摘頂けないでしょうか。 Access 2010(32ビット) で、mdbをaccdbに変換、mdeはaccdeに変換させました。 mdeを参照していた所は、accdeを参照するようにVisual Basic of Applicationsで修正しました。 Access 2010上では動作するようになりました。 ### 発生している問題・エラーメッセージ Aaccess 2016で、そのaccdbを動かそうとすると、エラーが発生して実行できない状態です。 ``` 「指定した式に、MicrosoftAccessが見つけることができない関数が含まれています。」 ``` とポップアップが表示されて、OKボタンを押すと ``` マクロのシングルステップ autoexec プロシージャーの実行で エラー2425 ``` が発生しているとポップアップが表示されます。 autoexecの記述もなく、マクロで呼び出されている記述が見つかりません。 どこから呼び出されているかわかっておらず、表示されているFunction名で 起きている所は確認しました。 DoCmd.RunCommand(acCmdAppMaximize) という処理が1行のみでした。 気になっているのが、Function名、Sub名に日本語が使用されており 日本語の関数名を使用した旧Accessで作られたmdbを変換すると、エラーの原因になると 書いている記事を見つけました。これがエラーの要因でしょうか。 全マクロ停止ボタンを押して、エラーのポップアップを閉じると 「Visual Basic of Applications のプロジェクトが破損しています。」 というメッセージが表示されて、Visual Basic EditerでVBのコードが開くことができません。 ### 試したこと autoexecでエラーが発生している、Functionの中にある DoCmd.RunCommand(acCmdAppMaximize)をコメントアウト化したが、エラーはかわりませんでした。 Functionの戻り値をBooleanから、Objectに変更する方法を試しましたが、エラーはかわりませんでした。 2017/5/4 9:35 追記 現在は、最初に起動するaccdbの参照しているファイルを1つずつ解析を行って autoexecを呼び出している箇所と特定する作業をしております。 ### 補足情報(言語/FW/ツール等のバージョンなど) 開発している環境:Windows Xp Pro(32ビット) Sp3 Access2002と、Access2010をインストールしてmdbを、accdbに変換する作業を実施。 複数のmdbで構成されていてmdbから、他のmdb呼び出し毎にAccessを新規で起動させて動作する 設計になっています。 動作テスト環境:Windows 10 Pro(64ビット) Access 2016をインストールして、上記で変換したaccdb一式をコピーしてテストを実施。 エラーが出ていて実行に至っておりません。 よろしくお願い致します。
回答: OSとAccessのビット数を合わせることで動作しました。 Windows10Pro 64ビット / Access2016 32ビット → エラーが発生、動作しない VBAプロジェクトが破損とメッセージ、VBコードが表示できずVBAエディターも表示できない Windows10Pro **32**ビット / Access2016 32ビット → エラー無し、動作する VBAプロジェクトのエラーメッセージ無し、VBコードが表示できる 今回の移行は32ビットの環境で行いたいと考えております。 環境を一致させるという基本的な所を反省し、次回に繋げたいと思います。 akabeeさん、度々のご回答ありがとうございました。 m6uさんのご指摘がベストアンサーになるかと思いますがつけることができませんので こちらでお伝えさせて頂きます。ありがとうございました。