|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
Предлагаю на суд общественности почти готовое решение по созданию отчетов в формате RTF из Access с почти любой сложностью. Способ формирования был взят от компонента для Delphi EkRtf . Использование свободное при наличии в описании программы ссылки на данный топик. Для создания отчета нужно придумать шаблон и сохранить его в формате RTF. В качестве управляющих полей используются поля (Что бы их увидеть alt+f9, что бы добавить ctrl+f9). Все управляющие команды имеют формат Функция(СписокПараметров). Команды разделяются на две категории: управление ходом выполнения, управление данными Управление ходом: Scan..EndScan Пара команд открывает данные и прокручивает блок для каждой строки if..elif..else..endif - Стандартное ветвление Для Вывода данных используется команда f(Поле) В самом Access нужно заполнить таблицу t_rep - Объект отчета, содержит ссылку на шаблон и таблицу t_repQuery содержит запросы используемые командой Scan Что бы распечатать отчет необходимо создать контекст Код: vbnet 1. 2.
инициализировать исходные данные Код: vbnet 1. 2. 3. 4.
а дальше запускаем формирование и чистим память Код: vbnet 1. 2.
более подробно как работают шаблоны см вложенную инструкцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2018, 20:57 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
Есть несколько вопросов к автору. Чем Ваше решение лучше использования обыкновенных закладок для вывода информации в Word? Там ведь тоже используется шаблон, в котором размещаются закладки (правда формата DOT), а потом на их место подставляется нужный текст. (пример la_automati с LeaderSoft.ru) Я в своё время собирал разные примеры по работе с Word из Access - Несколько советов по созданию документов в Word из Access вот тут на них можно посмотреть. Мне например, нравится формирование документа напрямую из программы без шаблонов. В некоторых случаях это хорошее решение. Но для больших документов, типа договоров или бланков, я использую шаблоны. Импорт в Word у Access организован из рук вон плохо. Ещё в Access XP/2003 для электронных документов я использовал формат PDF, который получал при помощи виртуального бесплатного принтера doPDF прямо из отчётов. Если же нужен был формат doc(rtf) то я полученные PDF документы обрабатывал программой SolidConverter. Получался довольно точный вид. Сейчас есть и другие программы для конвертации PDF в Word. Пример прямого формирования документа Word из программы на Access ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2018, 10:30 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
Из-за ограничения сессии по времени пока возился с перерегистрацией пример отвалился. Прикрепляю повторно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2018, 10:32 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
Joss, 1) Чем лучше закладок Если я правильно понял речь идет про механизм создания документов через рассылки? Более гибкий механизм, возможно создавать иерархическую структуру документа (до 16 уровней вложенности запросов), использование условий позволяет включать или отключать части документа. Не нужно перескакивать между приложениями. 2) Шаблон vs программного метода Минус программного метода: это необходимость программировать каждую часть документа. Документ на базе шаблона если в нем не меняется запрос, может поправить и пользователь. Документ на основе шаблона так же позволяет создавать более сложную структуру документа за более короткий срок, нежели полностью программным методом. Если не нравится факт что вместе с БД нужно тащить шаблоны, то ни кто не мешает их хранить в самой БД. 3) Access -> Pdf -> Word Костыли они конечно везде, но как то слишком много действий для конечного пользователя, да и в результате структура документа может не много отличаться от исходно задуманной. Я не претендую на единственный верный способ формирования, просто предлагаю вариант. Основная же идея данного поста протестировать механизм на большем полигоне, отловить ошибки которые не выявлены на моих частных примерах. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2018, 12:05 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
автор1) Чем лучше закладок Если я правильно понял речь идет про механизм создания документов через рассылки? ... Нет. Здесь ни слова о рассылках. Прикладываю пример la_automat . Смотрите 3 пример Создание документа с использованием шаблона. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2018, 13:43 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
автор2) Шаблон vs программного метода Минус программного метода: это необходимость программировать каждую часть документа. Документ на базе шаблона если в нем не меняется запрос, может поправить и пользователь. Документ на основе шаблона так же позволяет создавать более сложную структуру документа за более короткий срок, нежели полностью программным методом. Если не нравится факт что вместе с БД нужно тащить шаблоны, то ни кто не мешает их хранить в самой БД. Я не возражаю против использования шаблонов. Просто указал, что в некоторых случаях лучше использовать код. Кстати, я в некоторых программах , которые делаю для сторонних организаций храню шаблоны внутри программы. Причём предусмотрен механизм выгрузки и загрузки таких шаблонов в программу. Пример. Надо вывести в документ таблицу с переменным количеством строк (это чаще всего) или столбцов. Как Вы это сделаете при помощи шаблона? А кодом можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2018, 13:51 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
Joss, С столбцами согласен, предложенный вариант не справится, точнее не будет корректно построен. а вот с строками, легко. Сразу видно Вы не пробовали запустить пример, лучше сразу запустите "Печать за период" указав период с 01.12.2018 по 31.12.2018. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2018, 14:08 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
Да, согласен. Закладки с этим не справятся. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2018, 14:37 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
Маленький совет. В описании стоит указать сильные стороны вашего способа, его отличие от других, в каких случаях его предпочтительно использовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2018, 14:43 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
Прочитав описание, я не увидел, чем Ваш способ лучше тех же закладок. А вот если бы Вы указали, что при вашем способе легко формируются списки и таблицы с произвольным количеством строк, то это наверняка бы многих заинтересовало. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2018, 14:47 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
Joss, Под фразой "с почти любой сложностью" это и понималось, да и не считал что формирование таблиц это какая то архисложная задача ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2018, 14:50 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
предложенный вариант не выполняет задачу, которая стоит перед программируемым шаблоном - изменение пользователем структуры документа (добавление новых данных, либо удаление их) - для того чтобы это сделать нужно лезть в базу. вероятно каким-то промежуточным решением мог бы быть вывод полных данных, с названиями полей, их значениями и примером вызова этого поля (с учетом названия запроса) , также может быть функций с описанием, может ещё что - в эксель (ворд) (типа справки, просто чтоб знать как вызывать поле ИНН из базы например). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2018, 15:19 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
Swa111 , если хотите, чтобы Ваша разработка не затерялась в глубинах форума, разместите её на сайте Андрея Митина - am.rusimport.ru Там, в левом меню есть кнопка "Добавить статью". Подготовьте, добавьте. После оценки, Андрей её сделает доступной для всех. Правила там очень демократичны. Форум там практически не посещаем, зато есть много примеров и наработок. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2018, 08:56 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, благодарю за внимание! Исправлены некоторые ошибки, добавлены объявления переменным. Теперь транслированный шаблон хранится в самой БД, (преобразование не обратимо). Логика получения шаблона следующая: Проверяется есть ли на диске файл с шаблоном (имя хранится в таблице t_rep) Если время редактирования файла изменилось то запускается процесс трансляции во внутреннее представление Если файл не существует или он не изменился то шаблон берется непосредственно из БД Для переноса в свой проект необходимо: перетащить объекты t_rep t_repQuery Common Filter Report Так же в референсах необходимо подключить Microsoft Scripting Runtime Microsoft VBScript Regular Expressions 5.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2019, 17:11 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
JossЧем Ваше решение лучше использования обыкновенных закладок для вывода информации в Word? Закладки - это плохо. Я ваще не понимаю упертых идиотов, использующий этот механизм. Когда в Word уже 100 лет есть DocumentVariables. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2019, 19:10 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
Swa111Исправлены некоторые ошибки, добавлены объявления переменным. не всегда же количество платежей --четное добавила 13-й платеж --в ВОРД он не попал НеделяПлатежНеделяПлатеж110071202120812031209120412010120513011100613012100 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2019, 19:53 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
aleks222JossЧем Ваше решение лучше использования обыкновенных закладок для вывода информации в Word? Закладки - это плохо. Я ваще не понимаю упертых идиотов, использующий этот механизм. Когда в Word уже 100 лет есть DocumentVariables. необязательно применять закладки --можно ЗАМЕНУ, некое слово в скобках, а в программе прописать заменить "фио",cells(номер активной строки, некого столбца) ------------пример документа----------- договор (номер) от (дата) заключен между (клиент) (должность клиента) (фио) и фирмой РОГА И КОПЫТА в лице.... подписи клиент фирма (фирма) должность (должность клиента) фио (фио) .... ----------------------------------------------- если имена замен будут соответствовать первой(второй) строке ексель -листа(или именам полей таблицы/запроса аксесс), то код модуля будет единый для всех непустых столбцов заменить "(" cells(1, некого столбца) & ")",cells(номер активной строки, некого столбца) ---- для более полного понимания хотелок надо конечно сначала смотреть --пример типичной ексель/аксесс таблицы(данные можно условные) --пару примеров ворд-шаблонов(чистый договор без таблицы, договор с таблицей) таблицей считается только та, что показывает перечень услуг/работ таблица для форматирования шапок/подписей --это не таблица, а просто очень удобный прием для форматирования ворд-документа __________________ ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2019, 08:24 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
Внесены изменения в поиск параметров: Если параметр находится на форме, то теперь его можно не добавлять в контекст и использовать в запросе напрямую Код: sql 1.
Или же непосредственно в шаблоне { f(Forms!Контракты!Дата_контракта) } В результате код вызова будет таким Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2019, 12:49 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
В генератор добавлена возможность вывода картинок в документ RTF. Из настроек пока можно задать только высоту и ширину. Новые функции: Код: sql 1.
- открывает указанный файл. Если кодировка не указана, то файл открывается как бинарный и результат можно использовать для вставки изображения по имени файла. если имя файла начинается с ".\", то в начало подставляется имя папки, в которой размещена БД. Код: sql 1.
- вставляет в документ изображение из бинарных данных, полученных напрямую из поля или с помощью команды open. Поддерживаются изображения только форматов jpeg, png, emf Описание как создавать шаблон см. в предыдущем посте. Для добавления в свой проект необходимо перетащить таблицы t_Rep, t_RepQuery и модули Common и Report. Так же в референсах нужно добавить: Microsoft Scripting Runtime Microsoft VBScript Regular Expressions 5.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2019, 22:24 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
Добавлена возможность работы с изображениями из поля с типом Attachments. Например что бы вывести изображение из поля "Фото" нужно в шаблон добавить поле с содержанием Код: vbnet 1.
где функции: f - добавить значение в документ rtfimg - Преобразовать бинарное поле в картинку RTF c максимальными размерами 60 на 80 мм attach - Извлечь файл из поля с типом Attachment, Функция имеет второй параметр где указывается маска файла в формате RegExp . По умолчанию используется маска ".+\.(jpg|jpeg|png|emf)$". Если маске соответствует несколько файлов выбирается первый. На данный момент эта единственная функция, которая может работать с полями типа Attachments. База что то разрослась поэтому изображение только у первого клиента. Руководство по созданию шаблонов см. предыдущие посты. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2020, 00:40 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
Интересно, посмотрим. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2020, 08:56 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
Не много переработал генератор. Что нового:
Установка. Для установки в проект импортируйте файл Report.bas. Запустите процедуру InstallRepSystem, что бы создать таблицу для хранения шаблонов. Запустите процедуру InstallReportTemplate что бы добавить шаблон в хранилище; Подготовленные шаблоны хранятся в таблице t_rep. Большинство полей заполняются процедурой InstallReportTemplate. Наименование столбцаОписаниеsCaptionНазвание отчета. Может применяться в качестве параметра vReport функции PrintReport.sDescriptionБолее подробное описание отчета (опиши зачем отчет нужен)sOrignTemplateПуть до шаблона. При первом построении отчета шаблон переведется во внутреннюю форму и сохранится в clTemplate. В дальнейшем он будет обновляться если дата изменения файла будет больше чем в поле dEditTemplate. После сохранения шаблона внешний файл больше не нужен Так же возможно построение отчета напрямую из файла шаблона, без сохранения в t_rep. Для этого при вызове функции PrintReport в параметре vReport необходимо передать не код шаблона в таблице t_rep, а путь до файла шаблона. Данные метод не много медленнее, так как приходится каждый раз разбирать файл на части. Отчет готовится в текстовом процессоре MS Word, с включением управляющих инструкций-полей (добавляются сочетанием клавиш Ctrl + F9) и имеют формат <Команда>(<Аргумент>). Некоторые управляющие конструкции такие как IF, SCAN - парные и требуют соответствующих закрывающих команд. Инструкции. {Scan(Имя_курсора for Текст_запроса)} {EndScan()} – Открывает новый набор данных и подготавливает его. Если набор будет пуст то управление передается на позицию идущую за парной инструкцией EndScan(). Имя_курсора и Текст_запроса должны быть выражением или текстовым литералом заключенном в двойные кавычки. Имя курсора будет использовано как префикс к результатам полученным в ходе выборки. Пример: {scan("a" for "select 1 as b from dual"} {f(a.b)} {endScan()} Открывает курсор с именем а, считывает результаты запроса и укладывает результат в переменную с именем a.b Дополнительно создаются переменные Имя_Курсора.EOF возвращающие True на последней строке запроса и Имя_Курсора.rownum содержащей номер текущей строки. После endScan() значения переменных не очищается и их можно использовать. Явного запрета на переиспользование имени курсора во вложенном цикле - нет, но вложенный цикл может затереть данные родительского цикла. В тексте запроса можно обращаться к переменным окружения, для этого вставьте переменную обрамив ее символами %. Пример: {scan("a" for "select * from MyTable where id = %id%"} или пример с вложенными запросами {scan("Parent" for "select * from MyTable where id = %id%"}{scan("Child" for "select * from MyChildTable where idParent = %Parent.id%"}{endScan()}{endScan()} для некоторых типов возможно указать формат: %Имя_переменной; Формат% для создания критерия отбора необходимо использовать следующую подстановку %Имя_поля_Фильтра; stdf:Имя_поля% что означает примени параметр Имя_поля_Фильтра к полу Имя_поля. Для добавления параметра в окружение можно использовать функцию BuildParam совместно с GetFilter. См. примеры вызова ниже. {If(<Выражение>)}… {elif (<Выражение>)}…{else()}…{endif()} обычный оператор условия. {skip()} {endskip([skip_lf])} Вырезают из шаблона часть, если у endskip указан параметр skip_lf, то он заберет с собой перевод строки {f(<Выражение>)} Выводит выражение в отчете Выражения. Для упрощения парсера в выражениях используются только функции. Все операции так же заменены на функции. Например если нужно вычислить выражение 2+3 то необходимо записать это следующим образом: plus(2;3). Параметры функций отделяются друг от друга символом ;. Встроенные функции ФункцияСинонимКол-во операндовРезультатОписаниеplus+2..16DoubleСкладывает все операндыminus-2DoubleВычитаниеmul*2..16DoubleУмножениеdiv/2DoubleДелениеIdiv\2LongЦелочисленное делениеmod2LongОстаток от деленияconcat2..16StringОбъединяет все операнды в одну строкуeq=2BooleanПроверка на равенство ls<2BooleanИстина если первое меньше второгоgr>2BooleanИстина если первое больше второгоle<=2BooleanИстина если первое не больше второгоge>=2BooleanИстина если первое не меньше второгоne<> или !=2BooleanИстина если первое не равно второмуor2..16BooleanИстина если хотя бы один истинныйand2..16BooleanИстина если все истинныxor2..16BooleanСумма по модулю 2 всех параметровnot1BooleanИстина если параметр ложьisnull1BooleanИстина если значение Null rel1Вычисляет строковое значение и возвращает значение переменной с таким именемiif3Если выражение1 истинно то возвращает выражение2 в противном случае Выражение3calc2Вычисляет оба параметра и присваивает переменной с именем первого параметра значение второго параметра и возвращается имя переменнойopenимя_файла;кодировкаоткрывает указанный файл. Если кодировка не указана то файл открывается как бинарный и результат можно использовать для вставки изображения по имени файла. если имя файла начинается с ".\" то в начало подставляется имя папки в которой размещена БД.rtfimgбинарный_файл; ширина; высотаStringвставляет в документ изображение из бинарных данных полученных напрямую из поля или с помощью команды open. Поддерживаются изображения только форматов jpeg png emfattachИмя_поля; МаскаИзвлекает файл из поля с типом Attachment Функция имеет второй параметр где указывается маска файла в формате RegExp. По умолчанию используется маска ".+\.(jpg|jpeg|png|emf)$". Если маске соответствует несколько файлов выбирается первый. На данный момент эта единственная функция которая может работать с полями типа Attachments. Если Функция не будет найдена в предопределенном наборе, будет попытка вызвать пользовательскую. Пользовательская функция имеет следующий интерфейс Код: vbnet 1. 2. 3. 4.
Пример запуска отчета Все переменные хранятся в объекте типа Dictionary поэтому его необходимо создать, а после завершения операции уничтожить. Если объект не уничтожить то переменные созданные в первом отчете будут доступны и в последующих. Код: vbnet 1. 2.
Альтернативный вариант создания окружения это через функцию BuildParam. Первым параметром необходимо указать переменную с контекстом или Nothing если нужно создать новый контекст, Дальше следует набор пар Имя_параметра, Значение. Количество не ограниченное. Код: vbnet 1. 2.
Для создания критерия фильтра используйте функцию GetFilter. pParamName - Имя параметра. Префиксы параметров для getFilter жестко определяют, с какими типами данных работать: s – строки, n – число, d – дата. От них будет зависеть, как будет отформатирован запрос. pOperation - применяемая операция, перечень определен в перечислении tOperationType. Третьим и последующим параметром идут значения или 0 если критерий не применяется. Для многих операций должно быть только одно значение, для операций типа between - два значения, для операций типа in, not in может быть много значений. Множество значений можно передавать массивом Критерии фильтра можно перемежать с обычными параметрами. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
Запуск формирования отчета Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2020, 22:06 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
Joss Прочитав описание, я не увидел, чем Ваш способ лучше тех же закладок. А вот если бы Вы указали, что при вашем способе легко формируются списки и таблицы с произвольным количеством строк, то это наверняка бы многих заинтересовало. Лучше закладок Word - DOCUMENTVARIABLES. Это VBS, но переделать под VBA - нет проблем. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2020, 07:06 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
Может в силу своей тупости.может по какой другой причине, но я искренне не могу понять следующее:а занахрена заниматься экспортом,создавая в сторонней программе, такой же точно документ который можно без проблем (и громоздкого кода когда вполне достаточно OutputTo) создать и распечатать из ACCESS.Понимаю экспорт только в случае недостатка возможностей ACCESS(например форматирование внутри поля и т.п) растолкуйте, пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2020, 11:26 |
|
Создание пользовательских печатных форм из Access в Word (готовый вариант)
|
|||
---|---|---|---|
#18+
Вдогонку: Может авторы подобных кодов просто не знают ВСЕХ возможностей ACCESS и не используют их(например подчиненный отчет с переменным количеством столбцов,"переворачивание" таблицы и пр.) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2020, 11:46 |
|
|
start [/forum/topic.php?fid=45&msg=39769168&tid=1609987]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
157ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 303ms |
total: | 562ms |
0 / 0 |