Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 497
от 31.03.2007, 23:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 252, Экспертов: 36
В номере:Вопросов: 2, Ответов: 3


Вопрос № 79715: Здравствуйте. 1.Подскажите пожалуйста как из Excel при помощи кода VBA активировать модуль в закрытой БД Access(можно активировать и закрыть БД).Желательно что бы модуль отработал в фоновом режиме. 2.Возможно ли в Excel сделать так что бы код...
Вопрос № 79777: Уважаемые эксперты, подскажите: 1. как программно "склеить" две картинки (два файла jpg в один по горизонтали или вертикали)? 2. скачать файл из интернета по его адресу и сохранить в определенном месте?...

Вопрос № 79.715
Здравствуйте.
1.Подскажите пожалуйста как из Excel при помощи кода VBA активировать модуль в закрытой БД Access(можно активировать и закрыть БД).Желательно что бы модуль отработал в фоновом режиме.
2.Возможно ли в Excel сделать так что бы код помещенный в автозапуск при открытии книги запускался только один раз в текущих сутках,а при следующих отрытиях книги появлялся запрос на подтверждение запуска с возможностью отмены.
Если есть решение вопросов,то желательно примеры.
Отправлен: 26.03.2007, 00:41
Вопрос задал: Шмаров Сергей (статус: 3-ий класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 7)

Отвечает: Alec Perle
Здравствуйте, Шмаров Сергей!
1. Предположу что "активировать модуль" подразумевает собой запуск определенной процедуры.
Для этого необходимо в Excel подключить библиотеку для работы с файлами Access:
В редакторе VBA меню Tools --> References, и из списка выбираем галочкой "Microsoft Access XX Object Library" (XX - номер версии установленного Office, в частности у Office XP - 10.0). Если такой библиотеки нет, то там же кнопка Browse... и находим файл MSACC.OLB в папке, куда установлен Office. Само-собой, подразумевается, что MS Access установлен.
Далее объявляем объектную переменную, которая будет ссылаться на приложение Access:

Dim AccessApp As New Access.Application

Ну и с этой переменной можно делать практически все то, что и в модулях MSAccess. В частности выполнить процедуру Proba в базе данных db1 (я упускаю путь к файлу для краткости) (см. Приложение)

Замечу, что свойство Visible объекта приложения по умочанию равен False, поэтому приведенный пример будет выполнен в "фоновом режиме".

2. Возможно, но для этого нужно где-то сохранять информацию о том, когда в последний раз код запускался. В частности на листе с какими-либо своими настройками. Код может быть таким (см. Приложение)

Приложение:

---------
Пессимист - это хорошо информированный оптимист (а оптимист - хорошо проинструктированный пессимист)

Ответ отправил: Alec Perle (статус: 6-ой класс)
Ответ отправлен: 26.03.2007, 03:54
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо за помощь и терпение.Все получилось как и было задумано.
Еще раз большое СПАСИБО!!!


Вопрос № 79.777
Уважаемые эксперты, подскажите:
1. как программно "склеить" две картинки (два файла jpg в один по горизонтали или вертикали)?
2. скачать файл из интернета по его адресу и сохранить в определенном месте?
Отправлен: 26.03.2007, 11:50
Вопрос задал: Денисов Сергей Иванович (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: fsl
Здравствуйте, Денисов Сергей Иванович!
Расположите на форме элемент Inet

2)
'Расположите на форме элемент CommandButton.
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Public Function DownloadFile(URL As String, LocalFilename As String) As Boolean
Dim lngRetVal As Long
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
If lngRetVal = 0 Then DownloadFile = True
End Function
Private Sub Command1_Click()
DownloadFile "ссылка_в_нэте", "адрес_на_диске"
End Sub

---------
Ну, Вы спросили!
Ответ отправил: fsl (статус: Студент)
Ответ отправлен: 26.03.2007, 12:20
Оценка за ответ: 5
Комментарий оценки:
Спасибо, все отлично работает!

Отвечает: PsySex
Здравствуйте, Денисов Сергей Иванович!
1)Пример кривоват:-))) Нормально работает с картинками, которые обе умещаются на экране, т.е. чем больше разрешение экрана тем большие картинки можно клеить. И вообще проходит много "ступеней" для склеивания;-) Понадобиться скачать(150 кб):
http://vbaccelerator.com/codelib/gfx/savejpeg.zip
В архиве пример работы с jpeg файлами, к создаваемому проекту подключите из него mJIL.bas и cDIBSection.cls, а также скопируйте IJL11.DLL в папку с проектом. Создаем свою форму на неё PictureBox с именем picTMP и кнопку. Код в приложении.

Приложение:

---------
Bom Shankar!

Ответ отправил: PsySex (статус: Студент)
Ответ отправлен: 26.03.2007, 21:30
Оценка за ответ: 5
Комментарий оценки:
Спасибо за ответ, опробовать не успел. Досадно, что процедура зависит от разрешения экрана ...


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: support@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.46 от 18.03.2007
Яндекс Rambler's Top100

В избранное