次の方法で共有

Access2003 で開発したアプリを Access2010にアップグレードするとコンパイルエラーが出てきました。

Anonymous
2014-04-15T07:24:26+00:00

稼働環境:OS Win7 32bit、Access2010 32bit

XP環境でAccess2003で開発したアプリケーションの機能は①csvファイルを取り込み集計して、②帳票形式で印刷することです。

保守切れのため、以下の方法でAccess2010にアップグレードしました。

1.DB形式変換:mdb->accdb

 ・ファイル→保存して発行

2.リンク先変更:mdb->accdb

 ・外部データ→Access→変換されたaccdbファイルからリンクテーブルをインポート

    同名ファイルは自動的に再命名され、新しいテーブルとしてインポートされたため、

  名前を前の元と同じにして元のテーブルを上書きします。

  (テーブルが20個ぐらいあって、とても非効率なやり方と思って、もしいい方法があれば、ご教授願います)

3.環境変数変更:

 Microsoft Office 12.0 Access database engine Object Library → Microsoft DAO 3.6 Object Library

 ・参照設定にて、変更しました。このページを参考しました。http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1346169673

各ボタンをテストしてみると主に二つのエラーが発生しました。1.取り込みがほぼできましたが、二つのボタンだけコンパイルエラーになってしまいました。

(テーブルの内容を確認して、データは取り込み済み)

ソース:

Set dtb = CurrentDb()

Set rst1 = dtb.OpenRecordset("債務者区分", dbOpenSnapshot)

Set rst2 = dtb.OpenRecordset("査定結果", dbOpenDynaset)

rst1.MoveFirst

Do Until rst1.EOF

     joken = "TENCIF='" & rst1!店番 & rst1!CIF & "'"

     rst2.FindFirst joken   ←findfirstはエラーとなるメソッドです。

    if

       ・・・

Loop

rst1.Close

rst2.Close

⇒以上のソースは手打ちで、ミスとかかるかもしれないですが、このアプリケーションは以前XP環境でAccess2003で正常動きました。

FindFirstは、ほかのボタンのイベントにも使われますが、普通に動作しています。

テスト用の入力データは以前テスト用のもので、問題ないはずです。

そして、比較のため、mdb形式のままでAccess2010で実行してみたら、このエラーが発生しないで正常終了です。

おそらくどっかのコマンドは2010に使えないではないかと思っています。

2.「終了」ボタンを押すと、「コントロールの移動は無効です」のエラーが出てきました。

mdb形式のままでAccess2010で実行しても、このエラーが発生します。

整理票入力マクロを見ましたが、何を注目すべきや、どうデバッグすればいいのかわからなくて。。

ネットでエラー番号や「コントロール移動 無効」などで調べてもあまり進んでいなくて、悩んでいます。

長く書いてしまって、申し訳ありません。

ご返答、よろしくお願いいたします。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

5 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2014-04-17T12:20:01+00:00

    MukkuMukuです。

    エラー番号が 2046 になるかと思ったんだけど、[コントロールの移動 / GotoControl]マクロ アクションは以降でも使用できるマクロ アクションなので、ダイアログ 2行目の

    • * アクションの対象となっているオブジェクトで現在選択されているものがないか、アクティブ ビューにありません。

    について確認してみてください。例えば、

    • アクティブなフォームなど上に該当するオブジェクトが存在しない。
    • 該当オブジェクトが配置されているフォームがアクティブでない。

    また、そもそも [コントロールの移動]マクロ アクション が動作上必要なものなのか、どういった役割で必要なのか、マクロ実行の手順などを整理すると解決の糸口になるかもです。

    実行しているマクロについての情報がありませんので原因を絞り込める要素が見当たりません。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2014-04-17T00:47:51+00:00

    MukkuMukuさん

    おはようございます。

    ご返信、どうもありがとうございます。

    Microsoft Office 14.0 Access database engine Object LibraryをADOの前に移動して、うまくいきました!!

    ただ、二つ目の問題、「コントロールの移動が無効」がまだ解決できません、、

    DBのプロパティをチェックして、「読取り専用」のチェックが入っていない状態です。

    また、http://d.hatena.ne.jp/ogohnohito/20110616/p1ここを参考して、「空のデータベースの既定のファイル形式」を「Access2002 - 2003」に変更しても、うまくいきません。

    これはどうすればよいでしょうか??

    ご教授願います。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2014-04-16T11:05:12+00:00

    MukkuMukuです。

    Microsoft ActiveX Data Object 2.1 Library

    を参照設定から外すか、

    Microsoft Office 14.0 Access database engine Object Library

    との順序を変えてみてください。

    参照設定には使用される順番があって、現在の状態の順序が列挙されているのであれば、

    見る限りでは FindFirst が ADOのメソッドと認識されている感じかと。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2014-04-16T04:25:47+00:00

    楠部さん

    ご返信、どうもありがとうございます!

    最初は、参照設定がデフォルトのまま実行して、コンパイルエラーが出てきました。

    ネットで調べて、[Microsoft DAO 3.6 Object Library] にしましたわけです。

    参照設定を戻しました。今の参照設定は以下のようです:

    ・Visual Basic for Application

    ・Microsoft Access 14.0 Object Library

    ・Microsoft ActiveX Data Object 2.1 Library

    ・OLE Automation

    ・Microsoft Excel 14.0 Object Library

    ・Microsoft Office 14.0 Access database engine Object Library

    ・Microsoft Visual Basic for Applications Extensibility 5.3

    もう一回実行してみましたが、同じ事象になってしまいました。。

    もし環境変数の原因でしたら、ほかの必要なライブラリがあるのでしょか?

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  5. Anonymous
    2014-04-16T03:09:29+00:00

    侃侃侃 さん、こんにちは。投稿ありがとうございます。

    Access 2003 で作った mdb ファイルを Access 2010 でコンパイルするとエラーが発生するので情報を集めたい、という質問ですね。

    レコードセット内のレコード検索でエラーが発生しているようなので、参照設定が関係しているかもしれないな、と思いました。

    参照設定を [Microsoft Office 14.0 Access database engine Object Library] に変更するとどのようになるか試してください。

    その際、[Microsoft DAO 3.6 Object Library] のチェックは外してください。

    結果の書き込み、お待ちしています。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません