Skip to main content

AccessTr.neT


Uygulamada Kurları Alırken Hata Alıyorum

Uygulamada Kurları Alırken Hata Alıyorum

Çözüldü #1
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
.zip kur.zip (Dosya Boyutu: 34,11 KB | İndirme Sayısı: 7)
Cevapla
#2
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 denetleyecek
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.
Cevapla
#3
(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 denetleyecek
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.

Merhaba ilginiz için teşekkür ederim. Sorumu mazur görün denedim ama çalıştıramadım . Bu kodu tam olarak hangi sıraya ekleyeceğim.
Cevapla
#4
load işlemini kontrol edeceğinize göre xmldoc.load sonrasına eklemeniz gerekmez mi?
Cevapla
#5
Malesef olmadı hala hata alıyorum 10 kere düzgün çalışıyorsa 1 kere hata veriyor.
Cevapla
#6
Bu tür durumlar, ağ trafiği veya sunucu tarafında beklenmedik durumlar nedeniyle olabilir.
Kod:
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

kodunuzu yukarıdaki şekilde revize ederseniz yükleme işlemi sırasında ve XML belgesi oluşturulurken hata denetimi ekler ve aynı zamanda xmldoc.parseError.errorCode kullanarak XML yükleme işlemi sırasındaki hataları yakalarsınız. Bu size ağ trafiğindeki veya sunucudaki anormallikler, hatalar üzerinde daha fazla denetimle bilgi vererek uygulamanızın daha doğru işlemesinde yardımcı olacaktır.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task