[VBA] Hata Denetimini EPosta Olarak Göndermek
#1
access-sql-18 
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:

Visual Basic
  1. Private Sub Komut109_Click()
  2. On Error GoTo Err_Komut109_Click
  3.  
  4. Dim A, B, C
  5. A = 10
  6. B = 0
  7. C = A / B
  8.  
  9. Exit_Err_Komut109_Click:
  10. Exit Sub
  11. Err_Komut109_Click:
  12. Call mail
  13. End Sub



Çağırdığı modül ise şu şekilde:

Visual Basic
  1. Public Sub mail()
  2. On Error GoTo Err_Mail
  3. Dim msg, Style, Title, Help, Ctxt, Response, MyString
  4. msg = "Hata No:" & str(Err.Number) & YazME(2, 0) & "Belirtilen Kaynak Sebebiyle Hata Oluştu" & YazME(2, 0) &_
  5. "Hata Kaynağı:" & " " & Err.Source & "HATA OLUŞAN YERİN ADI" & YazME(2, 0) &_
  6. "Hata Açıklaması:" & Err.Description & YazME(2, 0) & "Hatayı Sonlandırmak İçin Hayıra Tıklayın." & YazME(2, 0) &_
  7. "Hatayı Sistem Yöneticisine Göndererek Çözümlenmesine Katkı Sağlamak İçin Eveti tıklayınız." & YazME(2, 0)
  8.  
  9. Style = vbYesNoCancel + vbCritical + vbDefaultButton2
  10. Title = "Hatayla Karşılaşıldı!"
  11. Ctxt = 1000
  12.  
  13. Dim appOutlook As New Outlook.Application
  14. Dim strePosta As String
  15. Dim msg2 As Outlook.MailItem
  16. Dim strGovde As String
  17. Dim strKonu As String
  18. Dim blnDnt As Boolean
  19. Response = MsgBox(msg, Style, Title, Help, Ctxt)
  20.  
  21. If Response = vbYes Then
  22. Set msg2 = appOutlook.CreateItem(olMailItem)
  23. With msg2
  24. .To = "AAA@gmail.com"
  25. .Subject = "Hata Kayıtları"
  26. .Body = msg
  27.  
  28. .Send
  29. End With
  30. Else
  31. Exit Sub
  32. End If
  33. Exit_Err_Mail:
  34. Exit Sub
  35. Err_Mail:
  36. MsgBox "HataKodu:" & " " & Err.Number & YazMEtin(2, 0) &_
  37. "Hata Açıklaması:" & " " & Err.Description & YazMEtin(2, 0) & "Hata Kaynağı: Mail_Gonder Module" & YazMEtin(2, 0) &_
  38. "Lütfen Mail Ayarlarınızı Kontrol Ediniz. Outlook Yapılandırmanız Çalışmyor Olabilir." & YazMEtin(2, 0) &_
  39. "İnternet Bağlantınızın Doğru Yapıldığından Emin Olun.&YazMetin(2,0) & "
  40. Resume Exit_Err_Mail
  41. 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...Mm



  Alıntı
Bu mesajı beğenenler:
#2
Call mail(me, err.number, err.Description)

Public Sub mail(Frm as Form, Hata as long, HataAck as string)
.....
msgbox Frm.name & " " & HataAck
end sub

ile VBA kodunun icine form adini ile hata kodunu alabilirsiniz.



  Alıntı
Bu mesajı beğenenler:
#3
Çok teşekkürler hocam mükemmel çalıştı,

Bir sorum olacak acaba form adı gibi hatanın oluştuğu satırı alma şansımız var mı Access te?

Saygılar...



  Alıntı
Bu mesajı beğenenler:
#4
(14-03-2016, 11:04)kifkif demiş ki: form adı gibi hatanın oluştuğu satırı alma şansımız var mı Access te?
Modul Prosedurune ait islem satirlari ilk hanesine numara verin, hata cikinca Erl ile sonuc alabilirsiniz.
MISAL :
Sub ds()
On Error GoTo HATA
Dim i As Long
1 i = "125'45"
2 MsgBox DCount("aa", "bb")
Exit Sub
HATA:
Debug.Print Erl, Err.Number, Err.Description
Resume Next
End Sub



  Alıntı
Bu mesajı beğenenler:
#5
Mükemmel çok teşekkürler Smile



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  [FORM] Kritere Bağlı Olarak Değerlerin Toplanması M_Kemal_Askeri 2 71 10-04-2026, 01:05
Son Mesaj: M_Kemal_Askeri
  Word Dot şaplonunu Açtırarak Dosya Göndermek Aplt 1 328 12-01-2025, 17:11
Son Mesaj: dsezgin
  Nerde Hata Yapıyorum SBNS 3 353 21-10-2024, 20:38
Son Mesaj: halily
  [SORGU] çarpraz Sorguda Sütun Değeri Olarak Birden çok Alan Seçebilir Miyiz? abkbek 2 409 13-08-2024, 21:18
Son Mesaj: abkbek
  [FORM] Dcount Hata Veriyor TheREDROSE 4 360 04-08-2024, 15:12
Son Mesaj: TheREDROSE
  [RAPOR] Access De Ki Raporu Word Belgesi Olarak Vba Kodu Ile Açma Ahmet51 10 879 01-08-2024, 10:28
Son Mesaj: dsezgin
  [FORM] Onay Kutususun şarta Bağlı Olarak Otomatik Olarak Işaretlenmesi Samih KARSLI 2 437 06-04-2024, 18:49
Son Mesaj: Samih KARSLI
  [FONKSiYON] Fonksiyonda Hata zimbit 1 322 12-02-2024, 18:52
Son Mesaj: dsezgin

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi