AccessTr.neT

Tam Versiyon: Tarihe göre döviz kuru almaya koşul ekleme
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
Merhaba arkadaşlar,
Ekte Ozan Bey'in yardımcı olduğu ilgili tarihe göre kur değerlerini merkez bankası sitesinden çeken bir veritabanı kodu mevut.
Fakat pazartesi günleri -siteyle alakalı kur ilanı dolayısıyla - kur alırken sorun oluyor.
Bu yüzden koda eğer ilgili tarihte sorun yaşanıyorsa, 3 gün öncesinin tarihi için kur almayı denemesi şartı eklemek istiyorum.
örneğin 13.06.2016 tarihli bir kuru çekmede başarısız oluyor, bu yüzden 10.06.2016 tarihi için deneme yapması gerekiyor.

Yardımlarınız için şimdiden teşekkürler.
Merhaba,

fatura tarihide 3 gün önceye alınacak mı acaba?
(19/06/2016, 20:56)ozanakkaya yazdı: [ -> ]Merhaba,

fatura tarihide 3 gün önceye alınacak mı acaba?

Hayır sadece kuru 3 gün öncesine göre alacak.
Kodu aşağıdaki ile değiştirerek deneyiniz.

Sub KurAl()
On Error GoTo hata
Dim xmldoc, DovizListesi, Dovizler As Object
Dim SorguTarihi As Date
Dim HaftaSonu, GDoviz, GDovizCins As String

Set xmldoc = CreateObject("Msxml.DOMDocument")
xmldoc.async = False

SorguTarihi = Me.tofatura_tarihi

HaftaSonu = Weekday(tofatura_tarihi, vbMonday)

    If HaftaSonu = 7 Then
       SorguTarihi = DateAdd("d", -2, SorguTarihi)
    ElseIf HaftaSonu = 6 Then
       SorguTarihi = DateAdd("d", -1, SorguTarihi)
    End If

xmldoc.Load "http://www.tcmb.gov.tr/kurlar/" & Format(SorguTarihi, "yyyymm") & "/" & Format(SorguTarihi, "ddmmyyyy") & ".xml"
Set DovizListesi = xmldoc.documentElement.selectNodes("Currency")

    GDoviz = Me.tofatura_doviztip
        If GDoviz = "€" Then
         GDovizCins = "EURO"
        ElseIf GDoviz = "$" Then
         GDovizCins = "ABD DOLARI"
        End If

        For Each Dovizler In DovizListesi
            If Eval("'" & Dovizler.SelectSingleNode("Isim").Text & "' In('" & GDovizCins & "')") Then
              Me.tofatura_kur = Replace(Dovizler.SelectSingleNode("ForexSelling").Text, ".", ",")
            End If
        Next
   
hata:

If Err.Number = "91" Then
    If MsgBox(" " & DateAdd("d", -3, Me.tofatura_tarihi) & " tarihine ait veri alınsın mı", vbYesNo) = vbYes Then
    
    SorguTarihi = DateAdd("d", -3, Me.tofatura_tarihi)
    HaftaSonu = Weekday(tofatura_tarihi, vbMonday)
    
        If HaftaSonu = 7 Then
           SorguTarihi = DateAdd("d", -2, SorguTarihi)
        ElseIf HaftaSonu = 6 Then
           SorguTarihi = DateAdd("d", -1, SorguTarihi)
        End If
    
    xmldoc.Load "http://www.tcmb.gov.tr/kurlar/" & Format(SorguTarihi, "yyyymm") & "/" & Format(SorguTarihi, "ddmmyyyy") & ".xml"
    Set DovizListesi = xmldoc.documentElement.selectNodes("Currency")
    
        GDoviz = Me.tofatura_doviztip
            If GDoviz = "€" Then
             GDovizCins = "EURO"
            ElseIf GDoviz = "$" Then
             GDovizCins = "ABD DOLARI"
            End If
    
            For Each Dovizler In DovizListesi
                If Eval("'" & Dovizler.SelectSingleNode("Isim").Text & "' In('" & GDovizCins & "')") Then
                  Me.tofatura_kur = Replace(Dovizler.SelectSingleNode("ForexSelling").Text, ".", ",")
                End If
            Next
    End If
End If
Set xmldoc = Nothing
End Sub
Çalıştı, çok teşekkürler.
Ozan Bey

Bende hata veriyor.

xmldoc.Load "http://www.tcmb.gov.tr/kurlar/" & Format(SorguTarihi, "yyyymm") & "/" & Format(SorguTarihi, "ddmmyyyy") & ".xml"

    Set DovizListesi = xmldoc.documentElement.selectNodes("Currency")

"Object vaiable or with block vaiable notset" hatası veriyor. nasıl düzeltebilirim.
Ozan Bey

Bende hata veriyor.

xmldoc.Load "http://www.tcmb.gov.tr/kurlar/" & Format(SorguTarihi, "yyyymm") & "/" & Format(SorguTarihi, "ddmmyyyy") & ".xml"

    Set DovizListesi = xmldoc.documentElement.selectNodes("Currency")

Run Time "91"
"Object vaiable or with block vaiable notset" hatası veriyor. nasıl düzeltebilirim.
(20/06/2016, 01:08)ozanakkaya yazdı: [ -> ]Kodu aşağıdaki ile değiştirerek deneyiniz.

Sub KurAl()
On Error GoTo hata
Dim xmldoc, DovizListesi, Dovizler As Object
Dim SorguTarihi As Date
Dim HaftaSonu, GDoviz, GDovizCins As String

Set xmldoc = CreateObject("Msxml.DOMDocument")
xmldoc.async = False

SorguTarihi = Me.tofatura_tarihi

HaftaSonu = Weekday(tofatura_tarihi, vbMonday)

    If HaftaSonu = 7 Then
       SorguTarihi = DateAdd("d", -2, SorguTarihi)
    ElseIf HaftaSonu = 6 Then
       SorguTarihi = DateAdd("d", -1, SorguTarihi)
    End If

xmldoc.Load "http://www.tcmb.gov.tr/kurlar/" & Format(SorguTarihi, "yyyymm") & "/" & Format(SorguTarihi, "ddmmyyyy") & ".xml"
Set DovizListesi = xmldoc.documentElement.selectNodes("Currency")

    GDoviz = Me.tofatura_doviztip
        If GDoviz = "€" Then
         GDovizCins = "EURO"
        ElseIf GDoviz = "$" Then
         GDovizCins = "ABD DOLARI"
        End If

        For Each Dovizler In DovizListesi
            If Eval("'" & Dovizler.SelectSingleNode("Isim").Text & "' In('" & GDovizCins & "')") Then
              Me.tofatura_kur = Replace(Dovizler.SelectSingleNode("ForexSelling").Text, ".", ",")
            End If
        Next
   
hata:

If Err.Number = "91" Then
    If MsgBox(" " & DateAdd("d", -3, Me.tofatura_tarihi) & " tarihine ait veri alınsın mı", vbYesNo) = vbYes Then
    
    SorguTarihi = DateAdd("d", -3, Me.tofatura_tarihi)
    HaftaSonu = Weekday(tofatura_tarihi, vbMonday)
    
        If HaftaSonu = 7 Then
           SorguTarihi = DateAdd("d", -2, SorguTarihi)
        ElseIf HaftaSonu = 6 Then
           SorguTarihi = DateAdd("d", -1, SorguTarihi)
        End If
    
    xmldoc.Load "http://www.tcmb.gov.tr/kurlar/" & Format(SorguTarihi, "yyyymm") & "/" & Format(SorguTarihi, "ddmmyyyy") & ".xml"
    Set DovizListesi = xmldoc.documentElement.selectNodes("Currency")
    
        GDoviz = Me.tofatura_doviztip
            If GDoviz = "€" Then
             GDovizCins = "EURO"
            ElseIf GDoviz = "$" Then
             GDovizCins = "ABD DOLARI"
            End If
    
            For Each Dovizler In DovizListesi
                If Eval("'" & Dovizler.SelectSingleNode("Isim").Text & "' In('" & GDovizCins & "')") Then
                  Me.tofatura_kur = Replace(Dovizler.SelectSingleNode("ForexSelling").Text, ".", ",")
                End If
            Next
    End If
End If
Set xmldoc = Nothing
End Sub
xmldoc.Load "http://www.tcmb.gov.tr/kurlar/" & Format(SorguTarihi, "yyyymm") & "/" & Format(SorguTarihi, "ddmmyyyy") & ".xml"

    Set DovizListesi = xmldoc.documentElement.selectNodes("Currency")
Sayfalar: 1 2