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

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


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

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

Выпуск № 594
от 21.08.2007, 15:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 299, Экспертов: 45
В номере:Вопросов: 1, Ответов: 1


Вопрос № 98510: Здравствуйте! Подскажите пожалуйста! 1.Можно ли через код VBA скопировать информацию из таблицы ACCESS в EXCEL? 2. Как подсветить строку, в которой находится активная ячейка (в EXCEL) каким-нибудь цветом? Спасибо заранее!...

Вопрос № 98.510
Здравствуйте! Подскажите пожалуйста!
1.Можно ли через код VBA скопировать информацию из таблицы ACCESS в EXCEL?
2. Как подсветить строку, в которой находится активная ячейка (в EXCEL) каким-нибудь цветом?
Спасибо заранее!
Отправлен: 15.08.2007, 15:33
Вопрос задала: Maychik (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Карабанов Алексей
Здравствуйте, Maychik!

По первому вопросу.
Да, конечно можно. В приложении представляю вашему вниманию пример рабочего приложения для обмена данными между Access и Exel.
Пример вычисляет накопления по вкладам в банке с помощью функции БС
Для проверки примера сделайте следующее.
1.Создайте в корневом каталоге диска C: папку tmp
2.Создайте в папке tmp новую базу данных Access
3.В базе данных создайте таблицу Вклады, состоящую из полей:
Вкладчик - текстовое
Сумма - числовое
Ставка - числовое
Срок - числовое
4. Введите в таблицу несколько записей
5. Создайте в папке tmp книгу Exel Report.xls
6. Выполните команду Сервис->Макрос->Редактор Visual Basic
7. Нажмите клавишу F7 (откроется окно кода) и скопируйте в окно код, данный в приложении.
8. Закройте редактор Visual Basic
9. Выполните команду Сервис->Макрос->Макросы
10.Выделите в списке Ваш макрос и нажмите кнопку Выполнить.
Ячейки листа заполнятся данными.
В коде даны комментарии, тем не менее коротко поясню его работу.

Для обмена данными между приложениями создаются объектные переменные, им присваиваются ссылки на объекты (объектом может быть приложение, база данных, таблица, лист и т.д.)
Далее используя эти переменные можно задавать значения ячеек, изменять свойства, считывать данные из таблиц базы и т.п.
Для работы с таблицами базы данных Access используется объект RecordSet, который представляет собой набор данных из таблицы (что-то вроде виртуальной копии таблицы)
Такой набор данных можно обрабатывать, изменять данные, а затем измененные данные поместить в таблицу.
В нашем примере набор данных обрабатывается построчно, значение каждого поля записывается в ячейку листа Exel следующим образом:
Cells(строка,столбец).Value=Значение

По окончании использования приложение открытое из кода нужно закрыть, а объектную переменную уничтожить, присвоив ей значение Nothing

Обработка ошибок.
В случае возникновения ошибки в приложение передается ее код
Этот код анализируется в блоке обработки ошибок, и выполняются соответствующие инструкции.
В примере обработана ошибка с кодом 429, означающая, что не создан объект Access. Тогда он создается и управление возвращается в то место, где возникла ошибка. В случае возникновения ошибки с другим кодом, выдается сообщение, содержащее код ошибки и ее описание.

По второму вопросу. Для выделения цветом активной ячейки используйте свойство ActiveCell объекта Application, возвращающее ссылку на активную ячейку.
ActiveCell в свою очередь имеет свойство Font, который в свою очередь имеет свойство Color, задающее цвет текста в активной ячейке.
Таким образом получаем: ActiveCell.Font.Color=vbGreen - задает зеленый цвет текста
Для изменения цвета фона аналогично используется свойство Interior:
ActiveCell.Interior.Color=vbRed - красный цвет фона.
В примере есть процедура DemoActives задающая для активной ячейки зеленый цвет шрифта.
Вызов этой процедуры помещен в обработчик события SelectionChange объекта Worksheet и цвет в ячейке меняется при щелчке мыши.
Для нормальной работы примера нужно в Exel зайти в Сервис->Параметры, на вкладке Безопасность нажать кнопку Безопасность Макросов и в открывшемся диалоге выбрать Низкая.
В противном случае макросы выполняться не будут.
Желаю удачи!

Приложение:

---------
Дорогу осилит идущий!

Ответ отправил: Карабанов Алексей (статус: 7-ой класс)
Ответ отправлен: 15.08.2007, 19:46
Оценка за ответ: 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
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.56 beta от 20.08.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное