powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Курсы валют, импорт в Access.
22 сообщений из 22, страница 1 из 1
Курсы валют, импорт в Access.
    #39266798
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую всех! Доработал немного бд RateXML, который нашёл на этом форуме. Теперь он скачивает и курсы ЦБ Белоруссии. Только не знаю, как эти данные дальше экспортировать в таблицу для дальнейшего использования. Давайте что нибудь придумаем, я думаю, эта операция довольно востребована.
...
Рейтинг: 0 / 0
Курсы валют, импорт в Access.
    #39266885
Sub q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wladimirrr,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Sub q()
On Error Resume Next
    Dim url_request As String
    Dim xmlDoc As MSXML2.DOMDocument 'Object
    Dim FileName As String
    '
    Set xmlDoc = CreateObject("Msxml2.DOMDocument")
    xmlDoc.async = False ' флаг асинхронной загрузки документа
    ' Адрес для получения курса
    url_request = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=" + Format(Date, "dd\/mm\/yyyy")
    ' загружаем документ по url
    If Not xmlDoc.Load(url_request) = True Then
       MsgBox ("Документ не загружен")
       Exit Sub
    End If
    '
    FileName = CurrentProject.Path & "\temp.xml"
    Kill FileName
    xmlDoc.Save FileName
    Set xmlDoc = Nothing
    '
    CurrentDb.Execute "drop table Valute"
    Application.ImportXML FileName, acStructureAndData
    '
    DoCmd.OpenTable "Valute"
End Sub
...
Рейтинг: 0 / 0
Курсы валют, импорт в Access.
    #39266900
Фотография Ёжик`
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Public Function GetVal1()
On Error GoTo er
    Dim xmlDoc As Object, xmlNode As Object
    Set xmlDoc = CreateObject("MSXML2.DOMDocument")
    xmlDoc.async = False
    xmlDoc.Load "http://www.nbrb.by/Services/XmlExRates.aspx?ondate=" + Format(Date, "mm\/dd\/yyyy")
'    Debug.Print xmlDoc.XML
'    Debug.Print "--------------------------------------------------------------------"
    
    ' USD Id=145 Доллар США
    Set xmlNode = xmlDoc.DocumentElement.SelectSingleNode("Currency[@Id='145']")
    Debug.Print xmlNode.Text, "Rate="; Val(xmlNode.SelectSingleNode("Rate").Text)
    Debug.Print "--------------------------------------------------------------------"

    ' EUR Id=292 Евро
    Debug.Print "Евро="; CCur(Val(xmlDoc.DocumentElement.SelectSingleNode("Currency[@Id='292']/Rate").Text))
    Debug.Print "--------------------------------------------------------------------"
        
    ' CZK Id=305 Чешских крон
    Set xmlNode = xmlDoc.DocumentElement.SelectSingleNode("Currency[@Id='305']")
    Debug.Print xmlNode.Text
    Debug.Print xmlNode.SelectSingleNode("NumCode").Text
    Debug.Print xmlNode.SelectSingleNode("CharCode").Text
    Debug.Print xmlNode.SelectSingleNode("Scale").Text
    Debug.Print xmlNode.SelectSingleNode("Name").Text
    Debug.Print xmlNode.SelectSingleNode("Rate").Text
    Debug.Print "--------------------------------------------------------------------"
    
ex: Exit Function
er: MsgBox Err.Description, vbCritical, "CmdGetVal1"
End Function
...
Рейтинг: 0 / 0
Курсы валют, импорт в Access.
    #39266983
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ёжик`, пока не разобрался, как этот код использовать, что-бы он работал. У меня не тот уровень, в основном работаю с макросами. (не смейтесь, я не программист, с access работаю давно, коды только начал изучать). Хотелось бы разобраться на примере работающего кода.
...
Рейтинг: 0 / 0
Курсы валют, импорт в Access.
    #39266984
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sub q, код не работает. Может я что-то не так делаю?
...
Рейтинг: 0 / 0
Курсы валют, импорт в Access.
    #39268222
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sub q, заменил строку: Dim xmlDoc As MSXML2.DOMDocument 'Object на: Dim xmlDoc As Object 'Object и все заработало. Таблица формируется. Только значение курсов в текстовом формате. Как можно преобразовать в таблице текст типа "1.1111" в числовой формат?
...
Рейтинг: 0 / 0
Курсы валют, импорт в Access.
    #39268227
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вспомнил, Val))
...
Рейтинг: 0 / 0
Курсы валют, импорт в Access.
    #39268307
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Настроил код, загружает курсы в таблицу "Currency", но каждый раз создает новую, а старой присваивает к имени 1,2,3...
В коде есть команда: CurrentDb.Execute "drop table Currency", которая должна удалять старую таблицу, но почему-то не удаляет. Посмотрите опытным взглядом, где "собака зарыта"?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Private Sub Êíîïêà20_Click()
On Error Resume Next
    Dim url_request As String
    Dim xmlDoc As Object 'Object
    Dim FileName As String
    '
    Set xmlDoc = CreateObject("Msxml2.DOMDocument")
    xmlDoc.async = False ' ôëàã àñèíõðîííîé çàãðóçêè äîêóìåíòà
    ' Àäðåñ äëÿ ïîëó÷åíèÿ êóðñà
    url_request = "http://www.nbrb.by/Services/XmlExRates.aspx?ondate=" + Format(Nz(Me!dtRate, Date), "mm\/dd\/yyyy")
    ' çàãðóæàåì äîêóìåíò ïî url
    If Not xmlDoc.Load(url_request) = True Then
       MsgBox ("Äîêóìåíò íå çàãðóæåí")
       Exit Sub
    End If
    '
    FileName = CurrentProject.Path & "\temp.xml"
    Kill FileName
    xmlDoc.Save FileName
    Set xmlDoc = Nothing
    '
    CurrentDb.Execute "drop table Currency"
    Application.ImportXML FileName, acStructureAndData
    '
    DoCmd.OpenTable "Currency"
End Sub
...
Рейтинг: 0 / 0
Курсы валют, импорт в Access.
    #39268311
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код ещё раз.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Private Sub Êíîïêà20_Click()
On Error Resume Next
    Dim url_request As String
    Dim xmlDoc As Object 'Object
    Dim FileName As String
    '
    Set xmlDoc = CreateObject("Msxml2.DOMDocument")
    xmlDoc.async = False ' ôëàã àñèíõðîííîé çàãðóçêè äîêóìåíòà
    ' Àäðåñ äëÿ ïîëó÷åíèÿ êóðñà
    url_request = "http://www.nbrb.by/Services/XmlExRates.aspx?ondate=" + Format(Nz(Me!dtRate, Date), "mm\/dd\/yyyy")
    ' çàãðóæàåì äîêóìåíò ïî url
    If Not xmlDoc.Load(url_request) = True Then
       MsgBox ("Äîêóìåíò íå çàãðóæåí")
       Exit Sub
    End If
    '
    FileName = CurrentProject.Path & "\temp.xml"
    Kill FileName
    xmlDoc.Save FileName
    Set xmlDoc = Nothing
    '
    CurrentDb.Execute "drop table Currency"
    Application.ImportXML FileName, acStructureAndData
    '
    DoCmd.OpenTable "Currency"
End Sub
...
Рейтинг: 0 / 0
Курсы валют, импорт в Access.
    #39268312
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то с редактором не могу разобраться. Предварительный просмотр отображает нормально, а публикует фигню((
...
Рейтинг: 0 / 0
Курсы валют, импорт в Access.
    #39268330
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Копируйте код из редактора ВБА при включенной русской раскладке
...
Рейтинг: 0 / 0
Курсы валют, импорт в Access.
    #39268350
Sub q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wladimirrrНастроил код, загружает курсы в таблицу "Currency", но каждый раз создает новую, а старой присваивает к имени 1,2,3...
В коде есть команда: CurrentDb.Execute "drop table Currency", которая должна удалять старую таблицу, но почему-то не удаляет. Посмотрите опытным взглядом, где "собака зарыта"?
Она (таблица или форма на таблице) у тебя открыта, когда ты её удаляешь
...
Рейтинг: 0 / 0
Курсы валют, импорт в Access.
    #39268358
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sub qЭто Ваш исходный код и он успешно удаляет таблицу "Valute" при повторном вызове. Я заменил в нем адрес для получения курса, теперь он формирует таблицу "Currency", но не удаляет при повторном вызове, а добавляет Currency1, Currency2 и т.д.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Sub q()
On Error Resume Next
    Dim url_request As String
    Dim xmlDoc As MSXML2.DOMDocument 'Object
    Dim FileName As String
    '
    Set xmlDoc = CreateObject("Msxml2.DOMDocument")
    xmlDoc.async = False ' флаг асинхронной загрузки документа
    ' Адрес для получения курса
    url_request = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=" + Format(Date, "dd\/mm\/yyyy")
    ' загружаем документ по url
    If Not xmlDoc.Load(url_request) = True Then
       MsgBox ("Документ не загружен")
       Exit Sub
    End If
    '
    FileName = CurrentProject.Path & "\temp.xml"
    Kill FileName
    xmlDoc.Save FileName
    Set xmlDoc = Nothing
    '
    CurrentDb.Execute "drop table Valute"
    Application.ImportXML FileName, acStructureAndData
    '
    DoCmd.OpenTable "Valute"
End Sub
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Курсы валют, импорт в Access.
    #39819710
Медет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sub qwladimirrr,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Sub q()
On Error Resume Next
    Dim url_request As String
    Dim xmlDoc As MSXML2.DOMDocument 'Object
    Dim FileName As String
    '
    Set xmlDoc = CreateObject("Msxml2.DOMDocument")
    xmlDoc.async = False ' флаг асинхронной загрузки документа
    ' Адрес для получения курса
    url_request = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=" + Format(Date, "dd\/mm\/yyyy")
    ' загружаем документ по url
    If Not xmlDoc.Load(url_request) = True Then
       MsgBox ("Документ не загружен")
       Exit Sub
    End If
    '
    FileName = CurrentProject.Path & "\temp.xml"
    Kill FileName
    xmlDoc.Save FileName
    Set xmlDoc = Nothing
    '
    CurrentDb.Execute "drop table Valute"
    Application.ImportXML FileName, acStructureAndData
    '
    DoCmd.OpenTable "Valute"
End Sub


Здравствуйте!

Установил себе этот код и он отлично работает, но берет данные с ЦРБ! Подскажите как взять данные с адреса Казахского национального банка?
...
Рейтинг: 0 / 0
Курсы валют, импорт в Access.
    #39819721
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
url_request = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=" + Format(Date, "dd\/mm\/yyyy")


Эту строку менять пробовали?
...
Рейтинг: 0 / 0
Курсы валют, импорт в Access.
    #39819727
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МедетSub qwladimirrr,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Sub q()
On Error Resume Next
    Dim url_request As String
    Dim xmlDoc As MSXML2.DOMDocument 'Object
    Dim FileName As String
    '
    Set xmlDoc = CreateObject("Msxml2.DOMDocument")
    xmlDoc.async = False ' флаг асинхронной загрузки документа
    ' Адрес для получения курса
    url_request = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=" + Format(Date, "dd\/mm\/yyyy")
    ' загружаем документ по url
    If Not xmlDoc.Load(url_request) = True Then
       MsgBox ("Документ не загружен")
       Exit Sub
    End If
    '
    FileName = CurrentProject.Path & "\temp.xml"
    Kill FileName
    xmlDoc.Save FileName
    Set xmlDoc = Nothing
    '
    CurrentDb.Execute "drop table Valute"
    Application.ImportXML FileName, acStructureAndData
    '
    DoCmd.OpenTable "Valute"
End Sub



Здравствуйте!

Установил себе этот код и он отлично работает, но берет данные с ЦРБ! Подскажите как взять данные с адреса Казахского национального банка?
У них и спросите Телефон справочной службы: + 7 (727) 2704-591
e-mail: hq@nationalbank.kz

По крайней мере, я сходу не нашёл. Только кнопочка "выгрузить в эксель" вот тут
...
Рейтинг: 0 / 0
Курсы валют, импорт в Access.
    #39819950
Медет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serg197311,
пробовал вставить
эту строчку
http://www.w3.org/TR/html4/loose.dtd
с сайта www.nationalbank.kz

вышло окно - Документ не загружен!

может кто подскажет, может что то не так делаю?
...
Рейтинг: 0 / 0
Курсы валют, импорт в Access.
    #39819957
Медет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
разобрался!
подставил строку
http://nationalbank.kz/?getpg=outurl&out=https://nationalbank.kz/rss/get_rates.cfm?fdate=

и все получилось!
...
Рейтинг: 0 / 0
Курсы валют, импорт в Access.
    #39819967
Медет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что необходимо исправить в коде, чтобы при каждом запросе не формировались новые таблицы?
...
Рейтинг: 0 / 0
Курсы валют, импорт в Access.
    #39820003
Медет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Думал помогут тут быстро, но сам разобрался. Выкладываю код для загрузки курса валют с национального банка казахстана

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Private Sub Кнопка4_Click()
On Error Resume Next
    Dim url_request As String
    Dim xmlDoc As Object 'Object
    Dim FileName As String
    '
    Set xmlDoc = CreateObject("Msxml2.DOMDocument")
    xmlDoc.async = False ' флаг асинхронной загрузки документа
    ' Адрес для получения курса
    url_request = "http://nationalbank.kz/?getpg=outurl&out=https://nationalbank.kz/rss/get_rates.cfm?fdate=" + Format(Date, "dd\/mm\/yyyy")
    ' загружаем документ по url
    If Not xmlDoc.Load(url_request) = True Then
       MsgBox ("Документ не загружен")
       Exit Sub
    End If
    '
    FileName = CurrentProject.Path & "\temp.xml"
    DoCmd.DeleteObject acTable, "item"
    DoCmd.DeleteObject acTable, "rates"
    xmlDoc.Save FileName
    Set xmlDoc = Nothing
    '
    CurrentDb.Execute "drop table Valute"
    Application.ImportXML FileName, acStructureAndData
    '
    DoCmd.OpenTable "Valute"
End Sub
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Курсы валют, импорт в Access.
    #39967495
igor00082
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Медет,
А как вытащить курс валюты и файла ?
...
Рейтинг: 0 / 0
Курсы валют, импорт в Access.
    #39967746
igor00082
как вытащить курс валюты и файла ?
Не понял! Может "и з файла"? Тогда что за файл?
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Курсы валют, импорт в Access.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]