22

どこにも解決策が見つからなかったので、これを投稿するだけです。私はついにそれを理解しました。本当にばかげている。

Access マクロ内で RunCode プロパティを使用しているときに、グローバル モジュールから Sub を実行しようとしました。「入力した式には、データベースが見つけられない関数名があります」というエラーが表示されました。問題が何であるかを理解できませんでした。この問題に投稿したすべての人のアドバイスに従いました。主に次のとおりです。

  1. プロシージャ名の最後に () を使用します
  2. プロシージャ名の前に「=」を使用しないでください

それでもうまくいきませんでした!

4

9 に答える 9

41

次に、エラー メッセージを注意深く読みました。FUNCTION 名が見つからなかったことを示しています。どうやら、RunCode プロパティには Sub ではなく "Function" が必要なようです。したがって、Sub を Function に変更しただけで、問題なく動作しました。

お役に立てれば。

于 2013-06-21T22:01:12.213 に答える
6

私のために働いた別の解決策:

モジュール名は、モジュール内のプロシージャと同じ名前にすることはできません。

于 2016-12-20T19:37:24.880 に答える
2

エラーメッセージに同様の問題がありました。私のVBAコードには次の宣言がありました:

private function MyFunction()

....

end function

を実行するprivateための宣言を削除しましたMacro RuncodeMyFunction()

例えば:

Function MyFunction()

End Function
于 2014-04-11T04:53:10.210 に答える
0

Access 2013: MyFunction が存在しない RunCode から MyFunction() で呼び出された関数によって、エラー 2425 が発生します。ただし、上記のいずれも機能せず、関数が存在し、公開されている場合でも、エラー番号 2001 が発生していました。データベースは信頼できる場所にあります。コンパイル エラーはありませんが、MyFunction の何かが機能しませんでした。

DoCmd.ShowAllRecords 

GoToControl がサブフォームを選択するように機能した後。本当の問題は、VBA でフィルターを削除する私のコードでした。ShowAllRecords のマニュアルは、これが機能するはずであることを示しているようですが、 DoCmd.ShowAllRecords を

DoCmd.RunCommand acCmdRemoveFilterSort 

私の問題を修正しました。

于 2015-04-14T18:54:51.153 に答える
0

「テンプレート」vbasic テキストをオンラインからシェルとして借りていました。また、コード セクションで関数の名前を変更しましたが、MSAccess/Vbasic ではモジュール ボックスの関数の見出しに名前の変更が表示されなかったため、この関数を呼び出すマクロを実行すると、見つからないと言われました。何度も修正を試みました。次に、vbasic のコード セクションと関数ダイアログ ボックスの見出しで名前が異なることに気付きました。そのため、見出しボックスで名前を手動で変更したところ、保存するように求められ、今では機能しています。多分これがスネークソフトウェアがとても人気がある理由です. :)

于 2019-11-11T17:36:16.847 に答える