Я столкнулся с проблемой генерации отчетов о комплексном доступе (по комплексу я имею в виду обработку данных, переменное количество полей и другие).
Позвольте мне объяснить, в более глубоких деталях некоторые из вещей, которые мне нужно реализовать:отчет о доступе от динамического кросс-табличного запроса и vba к «вручную» генерации отчетов
- Некоторые поля не должны показывать по некоторым значениям в запросе
- Если определенная запись не существует, хороший цветной (очень заметное) должно появляться сообщение вместо значений, которые были бы там (предположим, например, что запись с 03/04/2009 в поле даты существует, запись с 03/06/2009 в поле даты также существует, но нет записи с 03/05/2009. Перед показом данных, относящихся к последней записи, я должен напечатать что-то вроде «Не было показано 03/05/2009»)
- Гистограмма, которая берет как dat а не значения в записях, а вместо чего что-то другое, которое вычисляется по набору записей (например, среднее значение всех оценок за определенную дату). Число серий в этой диаграмме также варьируется в зависимости от значений в записях, эта диаграмма не будет в разделе подробностей, а вместо этого в заголовке страницы или каком-то заголовке группы.
Следует также упомянуть, что запрос представляет собой запрос TRANSFORM (точнее, INNER JOIN многих запросов TRANSFORM), и, следовательно, количество столбцов, возвращаемых запросом, меняется. Хотя в прошлом мне не удалось привязать этот запрос в качестве источника записи для отчета, каким-то образом Access перестает жаловаться на данный момент (может кто-то прояснит это? Является ли это нормальным я не должен беспокоиться об этом и использовать его как источник записи или следует избегать его)
есть два варианта, чтобы достичь того, что я хочу (что я могу видеть на данный момент):
- Создать отчет без источника записи и множество несвязанных полей, и через несколько события (Report_Open, Section_Format и т. д.) и с помощью DAO вручную установить значения этих полей. Изменение серии данных диаграммы также возможно через VBA.
- Установите источник записи в запрос и создайте сумасшедший и запутанный код VBA для обработки данных и реализации всего, что мне нужно.
Мне кажется, что вариант 2 будет огромной головной болью и пустой тратой времени, и я признаю, что вариант 1 очень похож на запись в файл Excel (так как все данные получены с помощью DAO) что было бы намного проще, так как у меня гораздо больше контроля над почти всем там (но по многим другим причинам мы хотим, чтобы все было в отчете о доступе)
Хотя я предвзятый и намерен пойти с вариантом 1, я нашел несколько проблем с этой опцией, например:
- Я не могу найти способ создания новых страниц в отчете с помощью VB A, и поэтому я ограничен только первой страницей.
- Отсутствие какого-то бесплатно, онлайн, достойной и полной документации по VBA и Access Reports
Кроме того, если вариант 2 более жизнеспособен, я, конечно, готов пойти с ним, но я бы тоже нужны некоторые советы и, возможно, некоторые советы по решению проблем, о которых я говорил в этом вопросе.
Итак, вопросы:
- Где я могу найти достойную и полную документацию по отчетам Access и VBA?
- Как создать страницы в отчете о доступе и выбрать, на какую страницу я хочу писать?
- С проблемой, с которой я столкнулся, могу ли я достичь каких-либо узких мест, о которых я должен знать? Должен ли я уже подумать об альтернативах Access Reports (например, в электронной таблице)?
Рассматривали ли вы создание отчета в Word (автоматизация) или использование HTML? – Fionnuala
Я хотел бы как можно больше придерживаться отчетов о доступе, переключаясь только при необходимости –