sql >> データベース >  >> RDS >> Access

プライベートプロシージャのデバッグ

    インタプリタ言語であるVBAの利点の1つは、アプリケーション全体をコンパイルしなくても、個々のプロシージャを実行できることです。それをどのように行うかを正確に調べてみましょう。

    公開手続き 引数のないパブリックルーチン

    標準モジュールでは、引数のないパブリックルーチン内にカーソルを置き、[F5]を押すと、そのルーチンがすぐに実行されます。

    ルーチンをステップスルーする場合は、[F5]を押す前にいずれかの行にブレークポイントを設定するか、[F8]( "Step Into")を押して、すぐにルーチンのコードのステップを開始できます。

    引数のないパブリック関数

    これは、標準コードモジュールのパブリック関数でも機能します。重要なのは、関数がオプションの引数でさえも、引数を受け入れることができないということです。

    引数付きのパブリックプロシージャ

    1つ以上の引数(オプションの引数も含む)を受け取るパブリックプロシージャを実行しようとするとどうなりますか? 「実行>マクロの実行」コマンドが実行されます:

    プライベートプロシージャ 引数のないプライベートプロシージャ

    これを発見したことは信用できません。 F5キーを押してプライベートをデバッグできるという事実を伝えてくれたTerryChapmanに特に感謝します。 公的手続きだけでなく、適切な手続き。

    テリーのように、私はデバッグ中に一時的にプライベートプロシージャをパブリックに変更していました。結局、私はそれをする必要はまったくありませんでした。

    プライベートプロシージャWith 引数

    テリーが私の仮定に疑問を投げかけた後、私は自分がどれだけ逃げることができるかを見ることにしました。思っていたよりもはるかに多いことがわかりました!

    信じられないかもしれませんが、引数を取るプライベートプロシージャをなしでデバッグできます。 一時的に公的手続きに変更します。これを行うには、イミディエイトウィンドウから完全修飾プロシージャ名を呼び出す必要があります。 「完全修飾名」とは、{ModuleName}.{ProcedureName}の形式の名前を意味します 。

    この例を確認してください:

    しかし、私の言葉を信じないでください。試してみてください!


    1. MySQLでのOracleのRowIDに相当

    2. MySQL Connector / Jでセミコロンで区切られた複数のクエリを実行できますか?

    3. JOINによって別のテーブルから存在しないデータを見つける方法は?

    4. カスタムダイアログでデータを更新する方法