08/10/2023, 14:01
merhaba; uygulamada kur alırken belli belirsiz zamanlarda aynı hatayı alıyorum. 10 da 1 hata veriyor nedenini çözemedim. Bu sorunla ilgili forumda bir konuda buldum ama ondada çözüme ulşamadım yardımcı olursanız çok sevinirim
If xmldoc Is Nothing Then
MsgBox "XML belgesi yüklenemedi.", vbExclamation
Exit Sub
End If
gibi bir kontrol kodu eklemelisiniz. Böylece web kaynaklarına erişimi doğruladıktan sonra diğer adımlara geçersiniz.(09/10/2023, 09:35)atoykan yazdı: [ -> ]Merhaba Sayın @exmadon.
Web üzerinden veri alırken objectiniz -ki uygulamanızda xmldoc- beklenen şekilde yüklenmediğinde veya nothing olarak atandığında bu hatayı alırsınız.
Uygulamanızda da xmldoc istendiği gibi yüklenmediğinde DovizListesi nesnesine erişilemediğinden hata alıyorsunuz. Örneğiniz özelinde bu tip web kaynaklarına erişim gerektiren uygulamalar için çalışmanıza web kaynaklarına erişimi denetleyecekgibi bir kontrol kodu eklemelisiniz. Böylece web kaynaklarına erişimi doğruladıktan sonra diğer adımlara geçersiniz.If xmldoc Is Nothing Then
MsgBox "XML belgesi yüklenemedi.", vbExclamation
Exit Sub
End If
Private Sub BtnTR_Click()
On Error GoTo ErrorHandler
Dim xmldoc As Object
Set xmldoc = CreateObject("Msxml.DOMDocument")
xmldoc.async = False
' xmldoc nesnesini yükleme işleminde hata denetimi
If Me.KurTarihi < Date Then
On Error Resume Next
xmldoc.Load "http://www.tab.gov.tr/kurlar/" & Format(Me.KurTarihi, "yyyymm")
On Error GoTo 0
If xmldoc.parseError.errorCode <> 0 Then
MsgBox "XML yükleme hatası: " & xmldoc.parseError.reason, vbExclamation 'Hata mesajı xml parse hatasını size gösterecektir
Exit Sub
End If
Else
On Error Resume Next
xmldoc.Load "http://www.tcmb.gov.tr/kurlar/today.xml"
On Error GoTo 0
If xmldoc.parseError.errorCode <> 0 Then
MsgBox "XML yükleme hatası: " & xmldoc.parseError.reason, vbExclamation 'Hata mesajı aynı şekilde xml parse hatasını size gösterecektir
Exit Sub
End If
End If
If xmldoc Is Nothing Then
MsgBox "XML belgesi yüklenemedi.", vbExclamation 'xmldoc nesnesinin yüklenemediğini bildirir
Exit Sub
End If
Dim DovizListesi As Object
Set DovizListesi = xmldoc.documentElement.selectNodes("Currency")
If DovizListesi Is Nothing Then
MsgBox "Döviz listesi bulunamadı.", vbExclamation 'DovizListesi nesnesinin kontrolünü yaparak yüklenemedi ise bildirir
Exit Sub
End If
On Error Resume Next
Dim DovizCinsi As String
Dim OrjIsim As String
Dim Alis As String
Dim Satis As String
For Each Dovizler In DovizListesi
DovizCinsi = Dovizler.SelectSingleNode("Isim").Text
OrjIsim = Dovizler.SelectSingleNode("CurrencyName").Text
Alis = Dovizler.SelectSingleNode("ForexBuying").Text
Satis = Dovizler.SelectSingleNode("ForexSelling").Text
If DovizCinsi = "ABD DOLARI" Then
Me.DOLAR_ALIS = Alis
Me.DOLAR_SATIS = Satis
ElseIf DovizCinsi = "Euro" Then
Me.EURO_ALIS = Alis
Me.EURO_SATIS = Satis
End If
Next
Set xmldoc = Nothing
Exit Sub
ErrorHandler:
MsgBox "Hata: " & Err.Description, vbExclamation
Set xmldoc = Nothing
End Sub