No.2ベストアンサー
- 回答日時:
> アクセス自体は絶対にどこかにこの情報(実行中のプロシージャー名)
> を持っていると思うのですが
それは管理してますよね。しかし、詳しいわけではありませんが、恐らく
それはプロシージャのメモリ上の位置でだと思います。String 型のプロ
シージャ名で管理してるわけではないでしょう。
# VBA は純粋なインタプリタ言語ではありません
また、.NET だと GetCurrentMethod でプロシージャ名を取得できますが、
VB6/VBA にはこれに該当するものがありません。
つまり、実行のたび変化するであろうメモリ上の位置しか取得できないと
すれば、それを人間にとって意味のある情報(文字列のプロシージャ名)
にするのは非常に困難だと考えます。
したがって、取り得る方法としては #1 に示したように、全てのプロシージャ
でエラーハンドリングを行い、その中でプロシージャ名をログ出力する
しかないかと思います。
もちろん、On Error でトラップできないエラーもありますけどね。
やはりそうですか・・・・・
なんだかニーズがありそうな気がするのですが、(たとえばプロシージャの実行ログテーブルを作りたい!とか)
現状では無理なんですね・・・・
お手数お掛けしました。ありがとうございました。
No.1
- 回答日時:
エラーログをとるコードを書けば良いだけです。
’// コード例
Sub ProcedureA()
On Error Goto Err_
’// 処理
Bye_:
Exit Sub
Err_:
' // エラーを記録する
Call ErrLoging(Err.Number,"ProcedureA")
Resume Bye_
' 復帰させるならエラーをクリアしてから Resume
End Sub
Public Sub ErrLoging(ByVal ErrNum as Long, _
ByVal ProcName as String _
)
' // ここに次の内容の処理を書く
' // 日時・エラー番号・プロシージャ名をテキスト出力する
' // また、重要なローカル変数の内容も引数で渡すなどして
’// 記録するのもいい。もちろんグローバル変数も。
End Sub
> カレントフォーム名やカレントコントロール名を
使えるか調べてませんが、確か ActiveControl、ActiveForm などの
プロパティーがあったと思います。
回答ありがとうございました。
一番困っているのは
>Call ErrLoging(Err.Number,"ProcedureA")
このエラー関数(ユーザー定義)を汎用的にしたいので
"ProcedureA" という実行中のプロシージャ名を呼び出す環境変数的なものがないかと思いまして・・
イメージ的には
Call ErrLoging(Err.Number,Currentdb.ActiveProcedure.Name)
みたいな感じです・・・・
アクセス自体は絶対にどこかにこの情報(実行中のプロシージャー名)
を持っていると思うのですが、それを呼び出す方法が見つからず・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) VBAのエラーについて 2 2023/08/02 17:46
- Visual Basic(VBA) 標準モジュール Public mOnTime As Date Sub sample() '実行プロシ 1 2023/02/22 15:44
- Excel(エクセル) エクセル VBAの構文について 2 2023/02/10 18:26
- AJAX 入力フォームの値をQRコードで入力できるようにしたい。 6 2023/03/29 08:34
- その他(Microsoft Office) VBA メール送信済で実行されるはずが、実行されない時があります。 2 2023/02/02 14:05
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
VBA プロシージャの名前の取得
その他(Microsoft Office)
-
プロシージャ名の取得
Visual Basic(VBA)
-
エクセルVBAでプロシージャ名を取得したい
Excel(エクセル)
-
-
4
プロシージャを呼び出したプロシージャ名を知る方法は?
Visual Basic(VBA)
-
5
現在アクティブなタブのページ名を取得したい
Access(アクセス)
-
6
或るプロシージャの呼び出し元判定
その他(Microsoft Office)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
On ErrorでエラーNoが0
Visual Basic(VBA)
-
9
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
10
実行時エラー 3020の対策
Access(アクセス)
-
11
アクセスのUserFormにはInitializeはないのでしょうか?
Access(アクセス)
-
12
Excelマクロで、稼働中のマクロを確認する方法
その他(Microsoft Office)
-
13
vbaで「最前面に」とする方法は?
Access(アクセス)
-
14
VBAのExecメソッドで画面を非表示にして実行する方法
Visual Basic(VBA)
-
15
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
16
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
■VBA■ SUMとAVERAGEの違い
-
エクセルエラー13型が一致しま...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAがブレークモードになっ...
-
ExcelVBA Range クラスの Page...
-
VBSで変数の宣言はできないので...
-
プロシージャ名の取得
-
マクロでのActiveSheet.Pasteで...
-
ADODB.Streamを使用してUTF-8を...
-
ASP.NET OleDbConnectionが定義...
-
VBS実行時エラー オブジェクト...
-
実行時エラー3001「引数が間違...
-
VBAでのエラー
-
実行時エラー -'-2147417848
-
EXCEL VBAマクロ中断でデバッグ...
-
実行時エラー '32755' [キャン...
-
OLEDB.NETで接続できない
-
VBA 別シートのセルから、文字...
-
マクロでオートシェイプ内の文...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
【Excel VBA】マクロをボタンに...
-
実行時エラー -'-2147417848
-
マクロについて教えてください...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAがブレークモードになっ...
-
実行時エラー3001「引数が間違...
-
OLEDB.NETで接続できない
-
ExcelVBA Range クラスの Page...
-
EXCEL VBAマクロ中断でデバッグ...
-
ADODB.Streamを使用してUTF-8を...
-
VBS実行時エラー オブジェクト...
-
Outlook.ApplicationをCreateOb...
-
VBSで変数の宣言はできないので...
-
なぜエラーになるのでしょうか...
-
VB6+SQL サーバー 2000 で 実行...
-
VBAでのエラー
-
Application.ActiveInspectorで...
-
Excelで下記のようにマクロを作...
おすすめ情報