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

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


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

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

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

Выпуск № 669
от 10.12.2007, 17:35

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


Вопрос № 112468: доброго времени суток, уважаемые эксперты! 1. подскажите, пожалуйста, выход: есть программа, написанная на foxpro6 (сам проект), отчет выдется в Excel. как быть, если на компьютере нет excel, а только openofficce?? 2. можно ли в Access програ...

Вопрос № 112.468
доброго времени суток, уважаемые эксперты!
1. подскажите, пожалуйста, выход: есть программа, написанная на foxpro6 (сам проект), отчет выдется в Excel. как быть, если на компьютере нет excel, а только openofficce??
2. можно ли в Access программно сделать переиндексацию БД?
большое спасибо!!!
Отправлен: 05.12.2007, 16:55
Вопрос задала: Fl_irchik (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Титов Михаил Анатольевич
Здравствуйте, Fl_irchik!

1. Почти наверняка Excel прийдется установить, иначе отчеты в Excel выводится не будут. Это связано с тем, что для формирования файла c отчетом в программе скорее всего используется самый распространенный способ - создать объект Excel.Application и т.д.

2. В Access нет метода вроде mytable.indexes(1).rebuild. Переиндексация в Access есть суть удаление индекса и создание нового. Программное создание индекса дело довольно хлопотное:

1) создать объект myIndex типа Index и установить все его свойства
2) методом CurrentDb.TableDefs("myTableName").Indexes.Append myIndex

А в случае "переиндексации" Вам надо будет скопировать в новые объекты индексов свойства старых! Если речь идет об одной таблице и паре быстрорастущих индексов к ней - то это оправдано и несловжно. Но если ставить задачу полной переиндексации всех таблиц, то это уже довольно сложная процедура.
В действительности необходимость полной ручной "переиндексации" в Access по меньшей мере неоднозначна. Все необходимые операции обслуживания (в том числе и реорганизация индексов) выполняются при сжатии базы данных. Программно сжатие может быть выполнено методом DBEngine.CompactDatabase. Только надо оговориться сразу - невозможно сжать базу из кода в ней самой же! Сжимать можно только закрытую базу. Во время сжатия фактически происходит создание новой сжатой копии базы данных.
Ответ отправил: Титов Михаил Анатольевич (статус: 4-ый класс)
Ответ отправлен: 07.12.2007, 04:39
Оценка за ответ: 5
Комментарий оценки:
большое спасибо! действительно используется объект Excel.Application.
а не подскажете ли тогда, как ПЕРЕПИСАТЬ на openoffice?


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.65 от 04.12.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное