3

Access DB を継承しましたが、開こうとするとエラーが発生し、次のエラー メッセージが表示されます。

実行時エラー '5':
プロシージャまたは引数が無効です

VBE の次のコードまでたどりました。

Set cbMainMenu = CommandBars.Add(Name:="OIG Main Menubar", _
Position:=msoBarTop, MenuBar:=True, Temporary:=True)

いくつかのグーグルの調査から、これの前にチェックを追加しましたが、まだエラーが発生しているため、機能していないようです(エラー処理の変更の有無にかかわらず):

    On Error Resume Next
    Application.CommandBars(cbMainMenu).Delete
    On Error GoTo 0

誰にもアイデアがありますか、またはこのエラーを修正するために正しい方向に私を向けることができますか? 私はそれを少し続けます。

編集:

これは、メインの初期エラーではないようです。私は現在それを見つけるために取り組んでおり、見つけたら再投稿します。

EDIT2:

これが実際にエラーを引き起こしているものです。周りを見回して、対処できるかどうかを確認します。

Set cbcToolsDBCompact = cbpToolsMenu.Controls.Add(Id:=CommandBars("Menu Bar").Controls("Tools").CommandBar.Controls("Database Utilities").CommandBar.Controls("Compact And Repair Database...").Id)

EDIT3:上記のコードを次のように変更します。

Set cbcToolsDBCompact = cbpToolsMenu.Controls.Add(Id:=2071)

この問題が修正され、comact/repair のオプションが追加されました。(そしてそれも機能します)。コメント以外に具体的な回答を実際に投稿した人は誰もいなかったので、下部にある「自分の質問に回答する」オプションを使用して、将来の回答を得られるようにします。また、ここでこのコードを見つけました:

MS Access: VBA で現在のデータベースを圧縮する方法

4

2 に答える 2

1

私の推測では、それは参照の問題です。

Visual Basic IDE で、[ツール/参照] をクリックします。 ここに画像の説明を入力

表示されるダイアログで、 Microsoft Office x.0 Object Libraryを探します。

ここに画像の説明を入力

その隣に「行方不明」という言葉がありますか?もしそうなら、それはあなたの問題です。

不足している参照のチェックを外し、下にスクロールして、Office のバージョンにインストールされているものを確認します。

于 2012-08-10T14:34:04.657 に答える
1

ここで自分の質問に答えます。

これは、[データベースの最適化と修復] オプションが Access 2003 の場所から移動されたことに問題がありました。

VBA コードはそれをメニュー オプションとして追加しています。2003 年には、コードは次のようになりました。

Set cbcToolsDBCompact = cbpToolsMenu.Controls.Add(Id:=CommandBars("Menu Bar").Controls("Tools").CommandBar.Controls("Database Utilities").CommandBar.Controls("Compact And Repair Database...").Id)

2007 年に、この問題に従って、MS Access: how to compact current database in VBAは、これを処理する必要がある方法です。

Set cbcToolsDBCompact = cbpToolsMenu.Controls.Add(Id:=2071)
于 2012-08-10T15:16:54.767 に答える