Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Курсы валют, импорт в Access. / 22 сообщений из 22, страница 1 из 1
02.07.2016, 12:15
    #39266798
wladimirrr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Курсы валют, импорт в Access.
Приветствую всех! Доработал немного бд RateXML, который нашёл на этом форуме. Теперь он скачивает и курсы ЦБ Белоруссии. Только не знаю, как эти данные дальше экспортировать в таблицу для дальнейшего использования. Давайте что нибудь придумаем, я думаю, эта операция довольно востребована.
...
Рейтинг: 0 / 0
02.07.2016, 21:35
    #39266885
Sub q
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Курсы валют, импорт в Access.
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
02.07.2016, 22:54
    #39266900
Ёжик`
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Курсы валют, импорт в Access.
Код: 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
03.07.2016, 14:40
    #39266983
wladimirrr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Курсы валют, импорт в Access.
Ёжик`, пока не разобрался, как этот код использовать, что-бы он работал. У меня не тот уровень, в основном работаю с макросами. (не смейтесь, я не программист, с access работаю давно, коды только начал изучать). Хотелось бы разобраться на примере работающего кода.
...
Рейтинг: 0 / 0
03.07.2016, 14:41
    #39266984
wladimirrr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Курсы валют, импорт в Access.
Sub q, код не работает. Может я что-то не так делаю?
...
Рейтинг: 0 / 0
05.07.2016, 18:13
    #39268222
wladimirrr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Курсы валют, импорт в Access.
Sub q, заменил строку: Dim xmlDoc As MSXML2.DOMDocument 'Object на: Dim xmlDoc As Object 'Object и все заработало. Таблица формируется. Только значение курсов в текстовом формате. Как можно преобразовать в таблице текст типа "1.1111" в числовой формат?
...
Рейтинг: 0 / 0
05.07.2016, 18:18
    #39268227
wladimirrr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Курсы валют, импорт в Access.
Вспомнил, Val))
...
Рейтинг: 0 / 0
05.07.2016, 20:07
    #39268307
wladimirrr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Курсы валют, импорт в Access.
Настроил код, загружает курсы в таблицу "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
05.07.2016, 20:09
    #39268311
wladimirrr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Курсы валют, импорт в Access.
Код ещё раз.
Код: 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
05.07.2016, 20:11
    #39268312
wladimirrr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Курсы валют, импорт в Access.
Что-то с редактором не могу разобраться. Предварительный просмотр отображает нормально, а публикует фигню((
...
Рейтинг: 0 / 0
05.07.2016, 20:40
    #39268330
mds_world
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Курсы валют, импорт в Access.
Копируйте код из редактора ВБА при включенной русской раскладке
...
Рейтинг: 0 / 0
05.07.2016, 21:37
    #39268350
Sub q
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Курсы валют, импорт в Access.
wladimirrrНастроил код, загружает курсы в таблицу "Currency", но каждый раз создает новую, а старой присваивает к имени 1,2,3...
В коде есть команда: CurrentDb.Execute "drop table Currency", которая должна удалять старую таблицу, но почему-то не удаляет. Посмотрите опытным взглядом, где "собака зарыта"?
Она (таблица или форма на таблице) у тебя открыта, когда ты её удаляешь
...
Рейтинг: 0 / 0
05.07.2016, 22:10
    #39268358
wladimirrr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Курсы валют, импорт в Access.
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
Период между сообщениями больше года.
29.05.2019, 11:33
    #39819710
Медет
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Курсы валют, импорт в Access.
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
29.05.2019, 11:46
    #39819721
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Курсы валют, импорт в Access.
Код: vbnet
1.
url_request = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=" + Format(Date, "dd\/mm\/yyyy")


Эту строку менять пробовали?
...
Рейтинг: 0 / 0
29.05.2019, 11:56
    #39819727
Прогер_самоучка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Курсы валют, импорт в Access.
Медет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
29.05.2019, 16:26
    #39819950
Медет
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Курсы валют, импорт в Access.
Serg197311,
пробовал вставить
эту строчку
http://www.w3.org/TR/html4/loose.dtd
с сайта www.nationalbank.kz

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

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

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

Код: 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
Период между сообщениями больше года.
09.06.2020, 17:30
    #39967495
igor00082
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Курсы валют, импорт в Access.
Медет,
А как вытащить курс валюты и файла ?
...
Рейтинг: 0 / 0
10.06.2020, 11:02
    #39967746
Курсы валют, импорт в Access.
igor00082
как вытащить курс валюты и файла ?
Не понял! Может "и з файла"? Тогда что за файл?
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Курсы валют, импорт в Access. / 22 сообщений из 22, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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