投稿日 | : 2003/12/26(Fri) 14:05 |
投稿者 | : ak |
Eメール | : |
URL | : |
タイトル | : デバッグ方法 |
> > 最初に言っておきますが、エンドユーザーの事を『アホ』と言うのは如何なものかと
> > 思いますよ。
>
> 私としたことが・・・とんだ失言を。すいません
> 私の場合のユーザー(エンドユーザー)=同期社員(狭義) 広義では全社員です。
> お客様などを対象にしている発言ではありません、しかも会社からは技術者としても見てもらえません
> (しかし大人としは失格ですので以降気をつけます)
> デバックの件ですが、QueryUnloadイベントにブレークポイントの設定などいろいろ試しているのですが
> このイベント自体で中断してくれまへん・・・全てのフォーム中にEndステートメントも記述していない
> し・・・デバックの仕方が悪いんでしょうね〜 もう少しやれる所までテストしてみます。
ブレイクポイントを張る方法だとイベントを取られる可能性があるのでログファイルをはくかDebug.Printで
出力する方が良いと思います。また実行ファイルにしなければでないバグもありますので気を付けてください。
参考までに私が良くやるデバッグの例を記述しておきます。
'(*.frm)
Private Sub Form_Initialize()
Call gsbLogOutput(Me.Name & ":Form_Initialize")
End Sub
Private Sub Form_Load()
Call gsbLogOutput(Me.Name & ":Form_Load")
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Call gsbLogOutput(Me.Name & ":Form_QueryUnload:Cancel=" & Cancel & ":UnloadMode=" & UnloadMode)
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call gsbLogOutput(Me.Name & ":Form_Unload:Cancel=" & Cancel)
End Sub
'(*.bas)
Private Const DEBUG_LOG_PATH = "C:\Test.log"
'----------------------------------------------------------------------------------
'概要 :ログ出力
'パラメータ :変数名 ,IO ,型 ,説明
' :sValue ,I ,Boolean ,出力する値
' :[bFileOutput] ,I ,Boolean ,ファイル出力 True:有効 False:無効
' :[bTimeStamp] ,I ,Boolean ,タイムスタンプ付加 True:有効 False:無効
'説明 :ボタンの有効・無効を指定された状態にする
'----------------------------------------------------------------------------------
Public Sub gsbLogOutput(ByVal sValue As String, Optional bFileOutput As Boolean = True, _
Optional bTimeStamp As Boolean = True)
Dim iFl As Integer
If bTimeStamp Then sValue = Format(Now, "YYYY/MM/DD HH:MM:SS") & vbTab & sValue
If bFileOutput Then
iFl = FreeFile
Open DEBUG_LOG_PATH For Append As #iFl
Print #iFl, sValue
Close #iFl
Else
Debug.Print sValue
End If
End Sub
このようなログをはく関数を作っておけばデバッグの時にかなり助かります。
根気の要る作業ですが頑張ってください。
では。