Доступный Access

Автор: Aport Среда, Ноябрь 19th, 2014 Нет комментариев

Рубрика: Software

Порою при использовании Microsoft Access возникает одна проблема. Как известно, эта программа позволяет генерировать так называемые «отчеты». Понятно также, что эти самые отчеты хорошо смотрятся только вместе с программой и со всеми базами и запросами, причем из Access страницу «выдрать» нельзя. Означенная трудность дает о себе знать как раз тогда, когда нужно передать отчет в электронном виде. Что же делать в такой ситуации? 

В Access есть некоторые встроенные возможности по конвертации отчета в Excel- или Word-формат. Для их использования открываем отчет, желательный к преобразованию, и в меню Файл нажимаем пункт Сохранить как. В выскочевшем диалоге нас интересует пункт Во внешнем файле или базе данных. После нажатия ОК откроется стандартный диалог запоминания файла, здесь нам надо обратить внимание на строку внизу, где выбирается тип, в которые сохраняем результат (по умолчанию Access, но нам туда не надо). Если мы укажем в качестве результата Excel, то получим файл с одной весьма неприятной особенностью. Проблема возникает, если вы получаете отчет в результате использования запроса из нескольких баз (имеется в виду, например, комбинация условно-основной базы и вспомогательных (так называемых справочников)).

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

Зачем эта морока? Выгоды колоссальные! Уменьшается размер основной базы, упрощается ввод информации — ее нужно просто выбрать из списка. Наконец, уменьшается вероятность допущения ошибки, ведь руками ничего набирать не нужно. Это опять же улучшает возможности поиска по базе, запросов к ней, поскольку десять раз введенное текстовое поле в двух случаях будет иметь большое число пробелов и не найдется. Кроме того легче строить запрос, в котором мы ищем цифру, чем тот, где ищется подстрока (программисты меня поймут). Также при синхронизации и транспортировке меньше придется брать с собой, поскольку основная база «похудела», а один раз набранные и редко изменяющиеся справочники можно оставить. Ведь часто редактируемую базу данных носят по старинке — на дискете, а там каждый байт на счету. В общем, такой вариант конфигурирования базы весьма удобен и себя оправдывает. Теперь вернемся к тому, с чего начали.

Так вот, сама база, отчет из которой мы желаем экспортировать в Excel, представляет собою столбцы чисел, значения которых сидят по справочникам. В отчете, естественно, мы подменяем числа текстом из справочников, и все выглядит замечательно. А вот при экспорте Мастер всех этих тонкостей не учитывает, и мы получаем на экселевском листе именно столбцы цифр, а не их соответствий, точное изображение основной базы. Такой результат работы Мастера нам не подходит.

Если мы желаем экспортироваться в Word, то лучше воспользоваться форматом RTF. Он обеспечивает лучший результат — отчет похож сам на себя, цифры заменены значениями из справочников. Заголовки располагаются на каждом листе, а не только на первом, как в предыдущем случае. Однако эти заголовки находятся не в колонтитуле, а просто в очередной строке, поэтому при правке, удалении, добавлении, просто изменении шрифта и полей шапки отчет уродуется: остаются пустые места, хвост информации с одного листа уползает на другой, «не одев шапки».

Отчет даже не является таблицей. То есть полученный результат нуждается в ручной доработке, причем доработке большой, тяжелой и длинной, поскольку базы серьезных задач представляют собой тысячи строк.

При запросе, конечно, не всегда экспортируются все строки, хотя именно большой отчет чаще нуждается в экспорте, чем мелкие выборки, которые просто отправляются на принтер, а не в Word. А всегда ли есть время на такие манипуляции? Кто будет каждый раз сидеть до десяти после работы? Тем более что во многих случаях вывод в Word просто никому не нужен — нужны возможности Excel. Так что, будем еще тащить и из Word в Excel? Сначала преобразуем в таблицу с разделителем табуляция, уничтожим шапки… Не-е-ет, нужно придумывать что-то получше.

Есть еще один формат, который используется для сохранения информации из Access, — это нечто, именуемое «снимок» (расширение snp). По сути это оторванный от Access Print Preview. Для просмотра данного формата создана специальная утилита Snapshot Viewer for Access 97/2000/2002. Взять ее можно с http://www.microsoft.com/downloads/details.aspx?FamilyId=B73DF33F-6D74-423D-8274-8B7E6313EDFB (1795 Кб). Желая передать отчет за тридевять или тридесять земель, вы должны предварительно проинсталлить там эту программку или же попросить кого-либо поставить ее у себя. Кроме того, при инсталляции этой смотрелки устанавливается компонент, позволяющий программно работать со снимками (см. подробнее http://www.microsoft.com/AccessDev/Articles/snapshot.htm ).

Еще, в принципе, есть формат HTML, но его в моей организации не жалуют, то есть он может рассматриваться только как промежуточный результат. Хотя выглядит красиво и информацию подает достаточно корректно, но и с перекошенной шапкой.

На некоторых форумах рассматривается еще вариант портирования отчета или snp-файла в формат pdf. Загляните на сайтhttp://site4.pdf995.com/download.html , может, подойдет.

Альтернативу стандартным методам являют методы нестандартные, то есть нужно творить программу на VB, вручную. Методов для этого весьма много, и о них я постараюсь рассказать в отдельной статье.

 

Источник: winzone.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты