Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
51 / 2 / 0
Регистрация: 14.02.2014
Сообщений: 24
1

Сохранение html из-под Access силами ACCESS - как проще?

20.02.2014, 11:12. Просмотров 1862. Ответов 9
Метки нет (Все метки)


В форму встроен элемент WebBrowserControl. при выборе из ComboBox формы в WebBrowserControl по ссылке открывается требуемая страница. Есть задача скопировать ЧАСТЬ информации (не страницу целиком!) и сохранить ее одним из 2 способов:
-либо вставить в текстовое поле формы, связанное с полем БД типа МЕМО ( Реализовано, нет проблем)
- либо (если это таблицы и графика) сохранить на жестком диске в формате mht (WEB-архив на 1 странице), сформировать гиперссылку на сохраненный файл и записать эту гиперссылку в поле БД типа гиперссылка.
В настоящее время реализовано так: Открывается WORD с окном нового документа (имя присваивается Wordом - Doc1, doc2 и пр.), при открытии вызывается специальный шаблон с встроенным макросом. Окно неактивно. Пользователь переходит в это окно, вставляет туда содержимое буфера, нажимает на кнопку встроенного макроса. Макрос сохраняет текущий документ сперва в формате docx, но с переданным из БД именем ( формируется специальным образом), затем в формате mht. Пользователь закрывает текущее окно и возвращается в окно ACCESS.В поле типа гиперссылка текущей записи БД заносится ссылка на Mht-файл.Все работает. Но:
Можно ли реализовать все это проще, с минимальным участием пользователя и без необходимости задействовать WORD, макросы и измененные шаблоны?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.02.2014, 11:12
Ответы с готовыми решениями:

Что лучше: работа с Access через ADO.NET или силами самого Access?
Считаю, что лучше работать с регулярно поступающим в Access объемом данных, разработав приложение...

Сохранение файла Word при экспорте из Access в нужном месте и с именем из поля Access
Добавлено через 5 минут Нужна помощь знатоков. Имеется вот такой код для слияния данных из Access...

Поиск в Access своими силами
Private Sub Command89_Click() Dim rst As Recordset Dim strSearchName As String Set rst =...

Как скопировать данные из таблицы одной БД Access в такую же таблицу БД Access другой БД Access?
Как с помощью компонента AdoQuery (Delphi7) скопировать данные из таблицы одной БД Access в такую...

9
Эксперт MS Access
26611 / 14310 / 3166
Регистрация: 28.04.2012
Сообщений: 15,691
20.02.2014, 11:25 2
Если правильно понял, то достаточно применить метод Outputto с форматом вывода acFormatHTML
Visual Basic
1
DoCmd.OutputTo acТипОбъекта, "myObject", acFormatHTML, "C:\temp\myHtml.HTML"
acТипОбъекта это константа метода, надо выбрать соответствующую. Видимо, подойдет acOutputQuery, поскольку вы уже вставили скопированное в поле таблицы. Тогда имя запроса на соотвествующую запись таблицы вставить вторым параметром метода - вместо "myObject"
0
51 / 2 / 0
Регистрация: 14.02.2014
Сообщений: 24
20.02.2014, 11:51  [ТС] 3
Нет, не вставила. Если вставлять в текстовое поле графику или таблицы - вставляется только текст, таблицы и графика пропадают. Именно поэтому я использую промежуточный вариант (хотя было бы идеально, чтобы сохранялось именно содержимое буфера или строки, выделенные в WEB BrowserControl)

Добавлено через 6 минут
И еще: мне нужно, чтобы был один файл, как в случае с mht. A при html сохранится сам html и еще папка с доп. файлами. А сохранение в WEB-архив, похоже, не поддерживается ( константы такой нету).
0
Эксперт MS Access
26611 / 14310 / 3166
Регистрация: 28.04.2012
Сообщений: 15,691
20.02.2014, 11:57 4
Понял. Не обратил внимания на сохранение в MHT.
Посмотрел в инете. Рекомендуют либо через ворд, как у вас сделано, либо применять какие-то сторонние компоненты, типа Chilkat MHT - http://www.chilkatsoft.com/dotNetMht.asp
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,079
20.02.2014, 13:04 5
Цитата Сообщение от solobala Посмотреть сообщение
Можно ли реализовать все это проще, с минимальным участием пользователя и без необходимости задействовать WORD, макросы и измененные шаблоны?
Если я правильно понимаю, вы из сети получаете страницу и что то там делаете? Нет ничего проще:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Function ПолучитьHTML()
    Код = HTML("https://www.cyberforum.ru/ms-access/thread1101102.html") ' получить код страницы
End Function
Function HTML(url)
    Dim oHttp As Object, strURL As String
    On Error Resume Next
    Set oHttp = CreateObject("MSXML2.XMLHTTP")
    If Err.Number <> 0 Then Set oHttp = CreateObject("MSXML.XMLHTTPRequest")
    On Error GoTo 0
    If oHttp Is Nothing Then MsgBox "Не удалось инициализировать объект MSXML!": Exit Function
    oHttp.Open "GET", url, False
    oHttp.send
    HTML = oHttp.responseText
    Set oHttp = Nothing
End Function
0
Модератор
Эксперт MS Access
10018 / 4036 / 649
Регистрация: 07.08.2010
Сообщений: 11,329
Записей в блоге: 3
20.02.2014, 14:55 6
Цитата Сообщение от Rube Посмотреть сообщение
Если я правильно понимаю, вы из сети получаете страницу и что то там делаете? Нет ничего проще:
-------------
вроде поставлена задача
--------скопировать ЧАСТЬ информации (не страницу целиком!)
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,079
20.02.2014, 15:10 7
Цитата Сообщение от shanemac51 Посмотреть сообщение
Сохранение html из-под Access силами ACCESS - как проще?
По названию темы мой код полностью подходит)
Цитата Сообщение от shanemac51 Посмотреть сообщение
вроде поставлена задача
--------скопировать ЧАСТЬ информации (не страницу целиком!)
А тут же все равно вся страница загружается. Может выкинуть этот код, если представление бразера не нужно?
Цитата Сообщение от solobala Посмотреть сообщение
при выборе из ComboBox формы в WebBrowserControl по ссылке открывается требуемая страница.
Значит страница уже присутствует в памяти. Можно значит обратиться к методу, где страница сохранена, не помню по памяти, сорри. Зачем Word привлекать?
0
51 / 2 / 0
Регистрация: 14.02.2014
Сообщений: 24
20.02.2014, 16:01  [ТС] 8
Хотелось бы уточнить:
1. представление браузера в форме НУЖНО ( иначе как выбрать, откуда копировать ЧАСТЬ страницы)?
2. По ссылке из ComboBox открывается лишь страница для доступа к ресурсам WWW по паролю -запоминать ее не нужно и даже вредно
3. По Вашему коду сохраняется в виде html+папки или в виде WEB-архива (т.е. одного файла mht)? Мне нужно сохранить ЧАСТЬ страницы в ОДНОМ файле...
0
Эксперт MS Access
26611 / 14310 / 3166
Регистрация: 28.04.2012
Сообщений: 15,691
20.02.2014, 17:16 9
solobala, попробуйте конвертор
http://wizbrother.com/tools/html2mht.html
http://wizbrother.com/download... 9-3-19.zip

Может работать из командной строки. А следовательно из программы. Сам не пробовал, но рекомендовали.

Т.е. идея такая - сохранять HTML с отдельной папкой рисунков, стилей, функций, а в конверторе их объединять. Чем это лучше ворда, не знаю.
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,079
20.02.2014, 19:10 10
Цитата Сообщение от solobala Посмотреть сообщение
Хотелось бы уточнить:
1. представление браузера в форме НУЖНО ( иначе как выбрать, откуда копировать ЧАСТЬ страницы)?
2. По ссылке из ComboBox открывается лишь страница для доступа к ресурсам WWW по паролю -запоминать ее не нужно и даже вредно
3. По Вашему коду сохраняется в виде html+папки или в виде WEB-архива (т.е. одного файла mht)? Мне нужно сохранить ЧАСТЬ страницы в ОДНОМ файле...
Вы хоть попробовали подставить свой url в код который я написал? Тогда бы все три вопроса отпали. В каком виде вам эта часть страницы нужна? Если в виде mht, который потом можно открыть в браузере со всеми элементами/ресурсами страницы, то надо было и тему так обзывать. А html это просто текст, теги, и ссылки на ресурсы.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.02.2014, 19:10

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Переписывание файла adp под Access 2007 или Access 2010
Имеется проект, разработанный под Access 2003 и работающий с базой данных SQL Server. При...

Подключение к Microsoft Access из-под Excel (Data Access Objects или DAO)
Для того чтобы подключиться к Базе Access (из basic) в стате прочитал, что необходимо создать Форму...

Задание параметров и выполнение имеющихся (внутрибазных) запросов Access силами VB.NET
Доброго вечера всем))) Наткнулся на такой камень преткновения: имеется база данных с таблицей и...

Как вывести результат выборки из Access в HTML
Здравствуйте!!!!! Как вывести результат выборки из Access в HTML


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.