Orijinal çalışma: https://accesstr.net/konu-web-uzerinden-...rgula.html
tabloya tarih alanı eklendi
Modüle web sayfası var mı kontrol kodu eklendi
Function URLExists(url As String) As Boolean
Dim Request As Object
Dim ff As Integer
Dim rc As Variant
On Error GoTo EndNow
Set Request = CreateObject("WinHttp.WinHttpRequest.5.1")
With Request
.Open "GET", url, False
.Send
rc = .StatusText
End With
Set Request = Nothing
If rc = "OK" Then URLExists = True
Exit Function
EndNow:
End Function
userformdaki sorgula düğmesinin koduDim Adrs As String
Dim ParaBirim As String
SorguTarihi = CDate(Me.TxtTrh.Value)
Set xmldoc = CreateObject("Msxml.DOMDocument")
Dim DovizListesi, Dovizler As Object
xmldoc.async = False
If SorguTarihi <> Date Then
Adrs = "http://www.tcmb.gov.tr/kurlar/" & CStr(Format(SorguTarihi, "yyyymm") & "/" & Format(SorguTarihi, "ddmmyyyy")) & ".xml"
Else
Adrs = "http://www.tcmb.gov.tr/kurlar/today.xml"
End If
If URLExists(Adrs) = False Then
MsgBox "bu tarihe ait kayıt yok"
Exit Sub
End If
xmldoc.Load Adrs
Set DovizListesi = xmldoc.DocumentElement.SelectNodes("Currency")
On Error Resume Next
Set baglan = CreateObject("adodb.connection")
baglan.Open "provider=Microsoft.ACE.OLEDB.12.0;data source=" & ThisWorkbook.Path & "\Döviz.accdb"
For Each Dovizler In DovizListesi
If Len(Dovizler.SelectSingleNode("BanknoteBuying").Text & "") = 0 Or Len(Dovizler.SelectSingleNode("BanknoteSelling").Text & "") = 0 Then
Exit For
End If
ParaBirim = Dovizler.SelectSingleNode("CurrencyName").Text
Select Case ParaBirim
Case "US DOLLAR"
txtDövizAdi = "USD"
Case "AUSTRALIAN DOLLAR"
txtDövizAdi = "AUD"
Case "DANISH KRONE"
txtDövizAdi = "DKK"
Case "EURO"
txtDövizAdi = "EUR"
Case "POUND STERLING"
txtDövizAdi = "GBP"
Case "SWISS FRANK"
txtDövizAdi = "CHF"
Case "SWEDISH KRONA"
txtDövizAdi = "SEK"
Case "CANADIAN DOLLAR"
txtDövizAdi = "CAD"
Case "KUWAITI DINAR"
txtDövizAdi = "KWD"
Case "NORWEGIAN KRONE"
txtDövizAdi = "NOK"
Case "SAUDI RIYAL"
txtDövizAdi = "SAR"
Case "JAPENESE YEN"
txtDövizAdi = "JPY"
End Select
SqlEkle = " INSERT INTO [Döviz] ([VeriTrh], DövizCinsi, DövizAdi, [DövizAlis], [DövizSatis],[EfektifAlis],[EfektifSatis]) " & _
" VALUES (" & CLng(SorguTarihi) & ",'" & txtDövizAdi & "','" & _
Dovizler.SelectSingleNode("Isim").Text & "',CCur('" & _
Replace(Dovizler.SelectSingleNode("ForexBuying").Text, ".", ",") & "'), CCur('" & _
Replace(Dovizler.SelectSingleNode("ForexSelling").Text, ".", ",") & "'),CCur('" & _
Replace(Dovizler.SelectSingleNode("BanknoteBuying").Text, ".", ",") & "'),CCur('" & _
Replace(Dovizler.SelectSingleNode("BanknoteSelling").Text, ".", ",") & "'))"
baglan.Execute SqlEkle
Next
Set xmldoc = Nothing
döviz kısaltmasını doğrudan sayfadan alamadım o nedenle select case döngüsüne elle girildiisim değişikliğinde sorun çıkabilir