Merhaba Form arkadaşlarım,
Veritabınımda oluşan hatalar üzerinden geçerken, Hata Denetimi yapmanın önemini bir kez daha anladım. Sistemim uzak bilgisayarlardan da kullanılacağı için oluşan hataların düzeltilmesi ve sistem yöneticisi olarak bana bildirilmesi gerektiğini düşündüm.
Bir demo hata ayıklama kodunu aşağıdaki gibi yazdım:
Çağırdığı modül ise şu şekilde:
Yukarıda kırmızıyla belirlediğim yerde (HATA OLUŞAN YERİN ADI) oluşan hatanın hangi form veya modülün kodlarından kaynaklandığını yazdırmak istiyorum. Böylece bana gelen mailde hangi formun kodunda ne hatası oluşmuş görebilirim.
Aslında bunu yapmanın bir yolu bu kodun bir kısmını formlara taşımak ve hangi fomun koduysa o formun ismini elimle yazarak hata halinde onun adını bana verebilir. Ama bu durumda her bir sub için fazladan kodlar gerekiyor. Acaba bunu modülün içerisinden yapabilir miyim?
Yardımlarınız için teşekkürler...
Veritabınımda oluşan hatalar üzerinden geçerken, Hata Denetimi yapmanın önemini bir kez daha anladım. Sistemim uzak bilgisayarlardan da kullanılacağı için oluşan hataların düzeltilmesi ve sistem yöneticisi olarak bana bildirilmesi gerektiğini düşündüm.
Bir demo hata ayıklama kodunu aşağıdaki gibi yazdım:
Visual Basic
- Private Sub Komut109_Click()
- On Error GoTo Err_Komut109_Click
-
- Dim A, B, C
- A = 10
- B = 0
- C = A / B
-
- Exit_Err_Komut109_Click:
- Exit Sub
- Err_Komut109_Click:
- Call mail
- End Sub
Çağırdığı modül ise şu şekilde:
Visual Basic
- Public Sub mail()
- On Error GoTo Err_Mail
- Dim msg, Style, Title, Help, Ctxt, Response, MyString
- msg = "Hata No:" & str(Err.Number) & YazME(2, 0) & "Belirtilen Kaynak Sebebiyle Hata Oluştu" & YazME(2, 0) &_
- "Hata Kaynağı:" & " " & Err.Source & "HATA OLUŞAN YERİN ADI" & YazME(2, 0) &_
- "Hata Açıklaması:" & Err.Description & YazME(2, 0) & "Hatayı Sonlandırmak İçin Hayıra Tıklayın." & YazME(2, 0) &_
- "Hatayı Sistem Yöneticisine Göndererek Çözümlenmesine Katkı Sağlamak İçin Eveti tıklayınız." & YazME(2, 0)
-
- Style = vbYesNoCancel + vbCritical + vbDefaultButton2
- Title = "Hatayla Karşılaşıldı!"
- Ctxt = 1000
-
- Dim appOutlook As New Outlook.Application
- Dim strePosta As String
- Dim msg2 As Outlook.MailItem
- Dim strGovde As String
- Dim strKonu As String
- Dim blnDnt As Boolean
- Response = MsgBox(msg, Style, Title, Help, Ctxt)
-
- If Response = vbYes Then
- Set msg2 = appOutlook.CreateItem(olMailItem)
- With msg2
- .To = "AAA@gmail.com"
- .Subject = "Hata Kayıtları"
- .Body = msg
-
- .Send
- End With
- Else
- Exit Sub
- End If
- Exit_Err_Mail:
- Exit Sub
- Err_Mail:
- MsgBox "HataKodu:" & " " & Err.Number & YazMEtin(2, 0) &_
- "Hata Açıklaması:" & " " & Err.Description & YazMEtin(2, 0) & "Hata Kaynağı: Mail_Gonder Module" & YazMEtin(2, 0) &_
- "Lütfen Mail Ayarlarınızı Kontrol Ediniz. Outlook Yapılandırmanız Çalışmyor Olabilir." & YazMEtin(2, 0) &_
- "İnternet Bağlantınızın Doğru Yapıldığından Emin Olun.&YazMetin(2,0) & "
- Resume Exit_Err_Mail
- End Sub
Yukarıda kırmızıyla belirlediğim yerde (HATA OLUŞAN YERİN ADI) oluşan hatanın hangi form veya modülün kodlarından kaynaklandığını yazdırmak istiyorum. Böylece bana gelen mailde hangi formun kodunda ne hatası oluşmuş görebilirim.
Aslında bunu yapmanın bir yolu bu kodun bir kısmını formlara taşımak ve hangi fomun koduysa o formun ismini elimle yazarak hata halinde onun adını bana verebilir. Ama bu durumda her bir sub için fazladan kodlar gerekiyor. Acaba bunu modülün içerisinden yapabilir miyim?
Yardımlarınız için teşekkürler...


