0

Access97 FEを2003に移行中です。しばらくの間、97フロントエンドと2003フロントエンドの両方をコンパイルしています(XPマシンの場合は97、Win7マシンの場合は2003)。つい最近(先週?)。変換時にMSCOMCTL.OCX参照が失われ始めました。ただし、奇妙なことに、Office 2003(SP3)を実行しているWindows 7(32ビット)マシンでのみ発生します。別のWin764ビットのOffice2003(SP3)マシンで変換しても、参照ファイルは失われません。

C:\ windows \ system32 \ mscomctl.ocxを数回登録/登録解除しました(管理者としてコマンドプロンプトを実行してください)。そして再起動します。問題のあるマシンにOffice2003をアンインストールし、再ロードしても問題が発生しました。C:\ windows \ system32がパスにあることを確認しました。(そうです)

Win7 64ビットマシンでFEをコンパイルし、それをこのトラブルマシンに配布すると、アプリが正しく起動しません(下部に初期化バーが表示されます)。問題のあるマシンでファイルを再参照してMDEを再作成すると、32ビットバージョンと64ビットバージョンのWindows 7の両方で機能します(64ビットのC:\ windows \ syswow64にmscomctl.ocxが含まれている場合でも) ..

Win7 32ビットのセットアップに何か問題がありますか?古いバージョンのFEを使用でき(変更を加えるときにリポジトリを保持します)、それらは参照を失うことはないようです。問題のFEは、Acc97マシンとWin764ビットマシンで正常にコンパイルされます。以前は、「今」問題を抱えているWin732ビットマシンですべての2003FEをコンパイルしていました...?

MDBファイルに対してもdecompile/repair / compile/compactを数回実行しました。

誰かが試すことを提案できますか?

更新 さて、私は「問題のある」ワークステーションを吹き飛ばし、Win7 Pro 64ビットでリロードしました。これにより、とにかくWSUSの義務が容易になります。しかし、問題は解決しません...だから今、私は何を考えるべきかわかりません。

4

2 に答える 2

2

Access アプリで使用される MSCOMCTL.OCX のバージョンが、コンパイルする可能性のあるすべてのコンピューターで使用されるバージョンと同じであることを確認する必要があります。次の方法で、参照が使用しているファイルを確認します。

関数 ListReferences()

    薄暗い限り
    Dim b As Long

    a = References.count

    b = 1 の場合 a へ
        Debug.Print b & ": " & References(b).Name & vbTab & vbTab & References(b).FullPath
    次のb

終了機能


これにより、Access FE 内のすべての参照のファイル名とパスのリストが表示されます。

Windows エクスプローラーを使用して、Access によって参照される MSCOMCTL.OCX を見つけます。ファイルを右クリックし、バージョンをメモします。他のすべてのコンピューターで使用している MSCOMCTL.OCX が同じバージョンであることを確認します。

于 2012-08-21T20:44:53.740 に答える
1

MSCOMCTL.OCXWindows の自動更新によって、お使いのマシンの が新しいバージョンに置き換えられたのではないでしょうか?

職場では、先週、特定の更新プログラムの自動インストール後、一部のマシンで問題が発生しました。
上記のリンクの「このセキュリティ更新プログラムに関する既知の問題」セクションからの引用:

Windows コモン コントロール ベースの埋め込み ActiveX コントロールは、既存の Office ドキュメント内、サードパーティ アプリケーション内、および開発者モードで新しいコントロールを挿入するときに、読み込みに失敗する場合があります。

どうやら問題を抱えているのは私たちだけではなかったようです

于 2012-08-21T05:25:46.223 に答える