VBA ve ADO ile Hata ve Bağlantı Yönetimi
Harici veritabanları ile çalışırken ağ kesintileri, yanlış şifreler, sunucu yoğunluğu veya hatalı yazılmış SQL sorguları her an karşımıza çıkabilir. Profesyonel bir VBA makrosunda hata yönetimi yoksa, sunucu yanıt vermediğinde Excel donar, kullanıcı kod ekranıyla (Run-time error) baş başa kalır ve açık bağlantılar (Open Connections) sunucuda kilitlenir.
Bu riskleri tamamen ortadan kaldırmak için On Error GoTo HataEtiketi yapısını kullanırız. Hata oluştuğu an kodlar otomatik olarak güvenli limana (hata yöneticisine) yönlendirilir; açık veritabanı bağlantısı güvenle kapatılır (Close) ve kullanıcıya anlaşılır bir hata mesajı sunulur.
Güvenli Hata Yakalama ve Bağlantı Kapatma Kalıbı
İşlem normal bittiğinde Exit Sub ile hata bloğu atlanır; hata durumunda ise Err.Description ile hatanın detaylı açıklaması yakalanır.
ADO Hata Yönetimi Kod Kalıbı
Dim baglanti As Object
On Error GoTo VeritabaniHatasi
Set baglanti = CreateObject("ADODB.Connection")
baglanti.Open "Provider=SQLOLEDB;Data Source=YANLIS_IP..."
' İşlemler...
Exit Sub ' Hata yoksa alt satırlara geçme
VeritabaniHatasi:
MsgBox "Bağlantı hatası: " & Err.Description, vbCritical
If Not baglanti Is Nothing Then
If baglanti.State = 1 Then baglanti.Close
End If