Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.66/47: Рейтинг темы: голосов - 47, средняя оценка - 4.66
608 / 387 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
1

Данные с HTML-страницы записать в таблицу Access

12.09.2012, 15:34. Показов 8498. Ответов 28
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
как добавить данные в таблицу аксесс из вэб?
т.е. есть страница в инете, нужно чтобы данные при нажатии на кнопку в форме "аксесс" заносились в таблицу
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.09.2012, 15:34
Ответы с готовыми решениями:

Всю информацию с открытой HTML страницы в интернете перекинуть в таблицу Excel
Здравствуйте, подскажите: как написать макрос чтобы вся информация с открытой HTML страницы в...

[VBA + Access] занести данные из Textbox's в таблицу (БД)
Добрый день, камрады! Дали задание разобраться в вопросе: в VBA на форме с кучей textbox'ов, в...

Как перенести данные из Excel в таблицу Access
Уважаемые профессионалы! Помогите пожалуйста! Задача такая: При клике на кнопку на панели...

Нужно данные с таблицы в HTML залить в Access
Есть файлы HTML которые содержат таблицу, эти данные надо залить в Access, все просто но есть...

28
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,643
Записей в блоге: 13
14.09.2012, 15:59 2
Нужно всего лишь открыть URL, прочитать данные, распарсить, сформировать SQL-запрос (insert into ...) и выполнить его.
1
608 / 387 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
14.09.2012, 16:03  [ТС] 3
вы можете дать пример, конкретнее: по слову "распарсить"
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,643
Записей в блоге: 13
14.09.2012, 16:32 4
"Распарсить" - жаргонное слово, означающее разложить некоторый блок данных на неделимые составные части (лексемы), а потом использовать их в зависимости от задачи.

Пример. Если Вы берете данные из html-таблицы вот такого вида:

HTML5
1
2
3
4
5
6
7
8
9
10
11
<table>
   <tr>
       <td> Товар </td> <td> Цена </td>
   </tr>
   <tr>
       <td> тттт </td> <td> 10 </td>
   </tr>
   <tr>
       <td> рррр </td> <td> 20 </td>
   </tr>
</table>
то получается последовательность лексем:
<table>, <tr>, <td>, Товар, </td>, Цена, </td>, </tr>, <tr>, <td>, тттт, </td>, 10, </td>, </tr>,
<tr>, <td>, рррр, </td>, 20, </td>, </tr>, </table>

Из них нужны, я полагаю, "тттт","10","рррр","20"

Примерно так...
1
608 / 387 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
14.09.2012, 16:43  [ТС] 5
да, но как зафиксировать эти данные?
0
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,725
14.09.2012, 16:53 6
в массив занести
1
608 / 387 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
14.09.2012, 16:59  [ТС] 7
Ципихович Эндрю, маленький пример, прошу, дайте пожалуйста
0
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,725
14.09.2012, 17:28 8
Цитата Сообщение от Catstail Посмотреть сообщение
Нужно всего лишь открыть URL, прочитать данные, распарсить, сформировать SQL-запрос (insert into ...) и выполнить его
по большому счёту тут каждый пункт отдельная тема могла быть
1открыть URL
2прочитать данные
3распарсить
4сформировать SQL-запрос (insert into ...)
5выполнить его
что-то сделано??
если нет то по пунктам задавайте вопрос что не понятно
что касается первого пункта - можно долго решать, топиков тьма

Добавлено через 8 минут
Ладно раскачаю Вашу лодку:
1 пункт
Проблема в том, что IE.readyState = 4 после нажатия Submit остается с некоторой задержкой
Поэтому лучше работать с MSXML - коллеги поддерживаете?
есть у кого пример?
ну и эта часть Вам будет нужна
Visual Basic
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
32
33
Sub Проверка_файла_страницы()
 
Dim oXMLHTTP As Object
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
With oXMLHTTP
Dim Файл As String
'нажать правой кнопкой по ссылке страницы "Скачать"
'в меню выбрать "Копировать адрес ссылки" - это путь к файлу
Файл = "http://www.sql.ru/forum/actualfile.aspx?id=12517319"
'false говорит о том, что запрос синхронный, и можно получить отчёт о наличии файла
.Open "GET", Файл, False
'эта опция помогает всегда получать "обновлённые" данные
.setRequestHeader "If-Modified-Since", "Thu, 1 Jan 1970 00:00:00 UTC"
End With
 
'оператор для отлова ошибок, указывает, что при возникновении ошибки требуется продолжать выполнять процедуру
On Error Resume Next
 
oXMLHTTP.Send
 
'если файл\страница существует
If Err.Number = 0 And oXMLHTTP.Status = 200 Then
MsgBox "файл\страница существует"
ElseIf Err.Number = 0 Then
MsgBox oXMLHTTP.Status & " " & "файл\страница не существует"
ElseIf Err.Number <> 0 Then
MsgBox Err.Number & " " & Err.Description
End If
 
'требуется, чтобы в нужном месте отключить действие строки 1) On Error GoTo ... 2) либо действие строки On Error Resume Next
On Error GoTo 0
 
End Sub
Добавлено через 3 минуты
есть конкретный URL, чтобы проверять?
1
608 / 387 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
14.09.2012, 19:16  [ТС] 9
http://reestr.kca.kz/Suppliers... 98&action=
Лот №Предмет закупаЕдиница измеренияКоличествоВыделенная суммаСрок поставкиМесто поставки
123.99.19.300 A - ТЕПЛОИЗОЛЯЦИОННЫЕ МАТЕРИАЛЫ ДЛЯ ТРУБОПРОВОДАЕдиница условная 1.001 304 000.0024.09.2012Мангистауская область; Актау Г.А.; г.Актау; Месторождение Арман 300 км от г. Актау
0
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,725
14.09.2012, 19:58 10
что-то мессага перед парсером пустая, кто подскажет почему? и ещё подвисает около минуты, или это издержки производства?
Visual Basic
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
32
33
34
35
36
37
38
39
40
41
42
43
Sub Таблица_с_страницы_веба()
 
Dim oXMLHTTP As Object
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
With oXMLHTTP
Dim Content As String
 
Content = "http://reestr.kca.kz/Suppliers/Tenders/Tender_Details_CP.aspx?tender_id=151898&amp;action="
'false говорит о том, что запрос синхронный, и можно получить отчёт о наличии Contentа
.Open "GET", Content, False
'эта опция помогает всегда получать "обновлённые" данные
.setRequestHeader "If-Modified-Since", "Thu, 1 Jan 1970 00:00:00 UTC"
End With
 
'оператор для отлова ошибок, указывает, что при возникновении ошибки требуется продолжать выполнять процедуру
On Error Resume Next
 
oXMLHTTP.Send
 
'если Content\страница существует
If Err.Number = 0 And oXMLHTTP.Status = 200 Then
'MsgBox$ "Content\страница существует"
ElseIf Err.Number = 0 Then
MsgBox$ oXMLHTTP.Status & " " & "Content\страница не существует"
ElseIf Err.Number <> 0 Then
MsgBox$ Err.Number & " " & Err.Description
End If
 
'требуется, чтобы в нужном месте отключить действие строки 1) On Error GoTo ... 2) либо действие строки On Error Resume Next
On Error GoTo 0
 
'Tools > References > Microsoft XML, v3.0
'DOMDocument30 определяет объект XML документа соответствующий версии 3.0
 
Dim xmlDoc As MSXML2.DOMDocument30
Set xmlDoc = New DOMDocument30
xmlDoc.async = False
xmlDoc.validateOnParse = False
xmlDoc.Load (Content)
'отображается содержимое ...
MsgBox$ xmlDoc.XML
 
End Sub
1
608 / 387 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
14.09.2012, 21:20  [ТС] 11
dim xmlDoc As MSXML2.DOMDocument30

на эту строчку выдает сообщение:
user-defined type not defined

Добавлено через 9 минут
все библиотеки подключены, теперь выводит сообщение
"ms access"
нажимаю "ок"
как просмотреть результат?
0
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,725
14.09.2012, 23:07 12
апну
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
что-то мессага перед парсером пустая, кто подскажет почему? и ещё подвисает около минуты, или это издержки производства?
ТС - до акцесса ещё далеко, нужно идти по порядку, ждите пока мне ответят или гуглите
сомневаюсь в правильности строки кода
Visual Basic
1
xmlDoc.Load (Content)
так как знаю, что с локальным файлом будет работать
Visual Basic
1
xmlDoc.Load ("N:\Изменённые\Требуется файл Sample.css.xml")
подскажите пжл
1
608 / 387 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
14.09.2012, 23:12  [ТС] 13
а если создать папку и указать путь?
0
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,725
14.09.2012, 23:14 14
так если оно в инете, зачем костыли? надо разобраться
1
608 / 387 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
14.09.2012, 23:16  [ТС] 15
а что такое content в оном выражении?
0
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,725
14.09.2012, 23:20 16
Content = "http://reestr.kca.kz/Suppliers/Tenders/Tender_Details_CP.aspx?tender_id=151898&amp;action="
адрес Вашей страницы
1
608 / 387 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
15.09.2012, 11:22  [ТС] 17
Ципихович Эндрю,

если вставить вместо
Visual Basic
1
2
3
4
5
6
7
Dim xmlDoc As MSXML2.DOMDocument30
Set xmlDoc = New DOMDocument30
xmlDoc.async = False
xmlDoc.validateOnParse = False
xmlDoc.Load (Content)
 
MsgBox$ xmlDoc.XML
вот это:
Visual Basic
1
2
3
4
5
6
7
Set XMLHTTP = CreateObject("MSXML2.XMLHTTP")
XMLHTTP.Open "GET", "http://reestr.kca.kz/Suppliers/Tenders/Tender_Details_CP.aspx?tender_id=151898&amp;action=", False
XMLHTTP.Send
Do While XMLHTTP.readyState <> 4
    DoEvents
Loop
MsgBox XMLHTTP.responseText
то сообщение не пустое, это то на что вы расчитывали?
0
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,725
15.09.2012, 12:42 18
да, теперь этап, называемый парсить, именно на Вами указанной странице я Вам не помощник
0
608 / 387 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
15.09.2012, 14:20  [ТС] 19
но подскажите как это сделать?
0
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,725
15.09.2012, 14:22 20
есть текст кода страницы, выудить то что в ячейках, то есть между тегами таблицы, ячеек таблицы
0
15.09.2012, 14:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.09.2012, 14:22
Помогаю со студенческими работами здесь

Как скачать данные из файла HTML содержащего таблицу в 97 Аксесс?
Такая проблема - надо скачать данные из файла HTML содержащего таблицу в 97 Аксесс. Пытаюсь...

Запрос с параметрами в ACCESS через VBA не записывает данные в таблицу
Приветствую! Наверное, я как-то неправильно использую технологию запуска запроса из VBA Сам...

Как достать данные из выборки БД Access и записать на лист Excel
Уважаемые форумчане есть вот такая проблема: Через VBA c екселя запускаю запрос на выборку в...

Как вывести Excel-таблицу в html и в html таблицу записать данные с БД?
есть у меня excel документ(таблица) , как вывести таблицу в html и в html таблицу записать данные с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru