|
19318 / 2626 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
|
|
Делимся наработками03.11.2009, 11:04. Показов 488930. Ответов 282
Метки нет (Все метки)
в этой теме предлагаю выкладывать интересные наработки по акцессу...
зы. в дальнейшем на основе их можно будет создать темы "важное" Добавлено через 45 секунд ззы. флуд и спам в этой теме будет награжден красными карточками
17
|
|
| 03.11.2009, 11:04 | |
|
Ответы с готовыми решениями:
282
Для рубрики "Делимся наработками", добить БД поставка-сделка авто Обсуждение поста #137 в теме "Делимся наработками". Программный модуль контроля ресурсов принтеров сети. Строковый тип данных. С наработками. Работает, но не верно |
|
1370 / 290 / 16
Регистрация: 16.01.2014
Сообщений: 922
|
|
| 27.06.2018, 14:24 | |
|
А можно здесь критиковать выложенные примеры? Просмотрел пример, выложенный в предыдущем посте. Оказалось очень много замечаний. Например, зачем закрывать пример паролем? Его лучше убрать перед публикацией. Есть замечания по интерфейсу, оформлению, обработке ошибок и т.д. Если это что-то типа курсовой, то ещё сойдёт. Но если это программа для работы, то её надо дорабатывать, и очень серьёзно. Но может быть это интересно только разработчику? Так что на этом заканчиваю. Если нужны подробности, спрашивайте. Личку ещё никто не отменял.
0
|
|
|
1370 / 290 / 16
Регистрация: 16.01.2014
Сообщений: 922
|
|
| 27.06.2018, 15:14 | |
|
Ещё один небольшой модуль
Когда-то мне досталось задание написания базы данных, одной из задач в которой было определение даты окончания определенной работы. Например: обработка различных типов документов. Вы получаете документы для обработки, и Вам на это отводится определенный срок, разный, для разных типов документов. На одни надо ответить в течение двух рабочих дней, на другие – пяти, ну и так далее… Надо вести учет, к какому числу должен быть подготовлен ответ (или проделана какая-то определенная работа). Сроки на это обычно задают в рабочих днях. Дополнительным условием было максимально автоматизировать настройку календаря и сделать её как можно проще, так как работать с программой будут люди, далекие от вычислительной техники. Всё должно быть сделано через формы, а не через прямую правку таблиц. И вот что у меня получилось. В программе используются таблицы. Таблица рабочих дней (заполняется для каждого года) – tblRabDay, содержит список календарных дней, с разбивкой по годам, месяцам, числам, дням недели, с признаком рабочий день или нет. Таблица tblWeekDay – хранит недельный график работы, содержит номера и названия дней недели и признак - рабочий день или нет. Таблица tblNewFRDay - хранит список переносов рабочих дней, перечень новых рабочих и выходных дней (содержит столбцы с годом, месяцем, днем и признаком – рабочий день или выходной). Таблица tblMonth - содержит список месяцев. Таблица tblFriDay – содержит список государственных праздников. Использование программы очень простое. Вводишь дату начала работы, задаешь срок, возле окошка "Окончание" жмешь кнопку с тремя точками, и в окошке видишь дату. График работы для недели задается в таблице "Рабочие дни недели" (одноименная кнопка на главной форме). Список государственных праздников в таблице "Государственные праздники" (одноименная кнопка на главной форме). Добавить переносы рабочих дней, новые праздничные и рабочие дни можно через специальный справочник. Для его вызова нажмите кнопку "Переносы, новые рабочие и выходные дни" на главной форме. Переносы рабочих и выходных дней задаются как парные добавление нового рабочего и нового выходного дней. Сейчас в таблице рабочих дней данные за 3 года 2005, 2006, 2007. Для добавления нового года нажмите кнопку "стрелочка со звездочкой" на форме "Переносы, новые рабочие и выходные дни" и в диалоговом окне введите год. В таблицу tblRabDay добавляется календарный список дней на указанный год с расстановкой признака рабочий/выходной день. Для этого используется таблица tblWeekDay. Программа была первоначально разработана как часть большой системы, но потом я решил оформить её как отдельный модуль. Вам представлен, так сказать, облегченный вариант программы. Что она не может делать? Не может автоматически составить календарный список для графиков со скользящими выходными днями. В этом случае в таблице tblWeekDay необходимо указать рабочими все дни недели, а потом через форму "Переносы, новые рабочие и выходные дни" задать вручную выходные дни. Не может автоматически составить календарный список, если у Вас на предприятии раз в месяц есть рабочие субботы (хотя такое и маловероятно). В этом случае в таблице tblWeekDay необходимо указать выходными субботу и воскресение, а потом через форму "Переносы, новые рабочие и выходные дни" задать вручную дополнительные рабочие дни. Не может изменить график выходных и рабочих дней, если он у Вас изменился в середине года. В этом случае новые выходные и рабочие дни необходимо задать через форму "Переносы, новые рабочие и выходные дни». Вот вроде и все особенности программы. Примечание. В таблице «Государственные праздники», занесены государственные праздники РБ. Приложенный пример выполнен в формате Access 2000. P.S. Программа была написана в 2006 году. Сейчас я бы сделал её немного по другому
1
|
|
|
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
|
|
| 29.06.2018, 02:43 | |
|
0
|
|
|
13254 / 5933 / 1526
Регистрация: 05.10.2016
Сообщений: 16,598
|
||
| 23.07.2018, 01:28 | ||
|
0
|
||
|
1370 / 290 / 16
Регистрация: 16.01.2014
Сообщений: 922
|
|||||||||||
| 23.07.2018, 11:27 | |||||||||||
|
Игры с анимацией формы
Разгребал сегодня свой архив. Наткнулся на старый пример, который разрабатывал, когда хотел немного украсить программы. Немного доработал. Для анимации использовал функцию AnimateWindow. Функция AnimateWindow
Возвращаемое значение В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае возвращается ненулевое значение Параметры hwnd Описатель окна для анимации dwTime Время, отведенное для анимации(в миллисекундах). Обычно используют 200 миллисекунд dwFlags Флаг, определяющий тип анимации. Можно комбинировать несколько значений: AW_SLIDE = &H40000 - Эффект слайда. Данный параметр игнорируется при использовании AW_CENTER AW_ACTIVATE = &H20000 - Активизирует окно. Не используйте с AW_HIDE AW_BLEND = &H80000 - Эффект проявления. Может использоваться, только, если окно поверх остальных AW_HIDE = &H10000 - Скрытие окна. По умолчанию окно видимо AW_CENTER = &H10 - Сжимание окна по центру AW_HOR_POSITIVE = &H1 - Анимация окна слева направо. Флаг игнорируется при использовании AW_CENTER или AW_BLEND AW_HOR_NEGATIVE = &H2 - Анимация окна справа налево. Флаг игнорируется при использовании AW_CENTER или AW_BLEND AW_VER_POSITIVE = &H4 - Анимация окна сверху вниз. Флаг игнорируется при использовании AW_CENTER или AW_BLEND AW_VER_NEGATIVE = &H8 - Анимация окна снизу вверх. Флаг игнорируется при использовании AW_CENTER или AW_BLEND Примечание: Можно комбинировать флаги AW_HOR_POSITIVE или AW_HOR_NEGATIVE с AW_VER_POSITIVE или AW_VER_NEGATIVE для анимации окна по диагонали Пример
Замечания. Форма разворачивается как черный прямоугольник. Чтобы сделат видимым наполнение формы необходимо после анимации по очереди использовать свойства формы Visible = False и Visible = True. Описание функции желательно помещать в той форме, где она используется. Почему-то иногда в некоторых программах Access отказывался работать с функцией, если её описание помещено в глобальном модуле, хотя она и описана как Public. Пример выполнен в формате Access 2000, показывает, как можно анимировать открытие/закрытие форм на экране. Вообще-то это по большому счёту баловство, но иногда помогает развлечь пользователя.
4
|
|||||||||||
|
1370 / 290 / 16
Регистрация: 16.01.2014
Сообщений: 922
|
|
| 25.07.2018, 10:35 | |
Сообщение было отмечено Capi как решение
Решение
Программное создание водяных знаков в отчёте (фоновый рисунок)
Однажды у меня возникла необходимость вставлять в отчёт фоновые надписи (водяные знаки). Причём, в зависимости от условий, водяные знаки могли присутствовать, могли отсутствовать и иметь разные значения. На сайте SQL.RU я нашел топик Андрея Усачёва "Как создать водяной знак в виде даты в отчёте?", которым и воспользовался. Там описано несколько способов получения требуемого результата. Я воспользовался последним, когда необходимый результат получается при помощи метафайла. Неплохое решение. Пример рассчитан на 32-х разрядную версию офиса. Для 64-х разрядной надо переписать вызов API.
3
|
|
|
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
|
|
| 25.07.2018, 22:40 | |
|
Ссылки на другие форумы запрещены.
0
|
|
|
0 / 0 / 0
Регистрация: 14.08.2018
Сообщений: 1
|
|
| 15.08.2018, 17:24 | |
|
Нашёл на компе, скачал для себя с уже-не-помню какого источника, может кому нужна будет, описание в архиве
0
|
|
|
1370 / 290 / 16
Регистрация: 16.01.2014
Сообщений: 922
|
|
| 16.08.2018, 13:17 | |
|
Это пример с сайта Евгения Серебрякова. Когда-то он назывался "Кирпичики кода". Сейчас сменил дизайн и название. На нём находится много примеров и справочной информации. Форум отсутствует. Ресурс довольно старый, известен с 2000 года. Меня уже предупреждали, что ссылки на сторонние сайты размещать нельзя. Но в представленном примере есть ссылка на ресурс с которого он скачан. Успехов в изучении ресурса.
1
|
|
|
9147 / 6179 / 594
Регистрация: 27.03.2013
Сообщений: 20,048
|
|
| 16.08.2018, 17:16 | |
|
3
|
|
|
13254 / 5933 / 1526
Регистрация: 05.10.2016
Сообщений: 16,598
|
||||
| 17.08.2018, 22:09 | ||||
|
Я и сам тащю с инта, и разглядываю потом - как умные люди делают, но при этом подписываю: - Когда - Откуда - Описание (Зачем и для чего) ... и рядом укладываю этот текстовичёк ... Признаю! - Пример мой! Делал вообще и публиковал на форуме как одно из решений задачки. (Сыла работает: Подчинённые поля со списком (ComboBox-ами) в ленточной (табличной) форме (+ Пример)) Хотя... страна должна знать своих героев! ![]() Добавлено через 24 минуты Время шло ... Конструкции кода усложнялись ... Вот "приехал" к тому что есть теперь, и старое название уже не подходило к содержимому. Надеюсь что ресурс всё ещё полезен.
5
|
||||
|
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
|
|
| 18.08.2018, 10:27 | |
|
Кирпичики помню, 10 лет назад их изучал
Хорошая подборка.
1
|
|
|
13254 / 5933 / 1526
Регистрация: 05.10.2016
Сообщений: 16,598
|
||
| 18.08.2018, 12:29 | ||
|
Ну просто мёд на сердце. Спасибо на добром слове. (А всё Пух виноват - сдал меня с потрохами)
1
|
||
|
1370 / 290 / 16
Регистрация: 16.01.2014
Сообщений: 922
|
|
| 28.08.2018, 15:06 | |
|
Автоматическое подключение внешних таблиц
Для чего разделяют базы? Для того, чтобы при модификации кода, разработке новых форм и отчетов можно было легко заменить файл с кодом и оставить базу с таблицами нетронутой. (Разбиение производится так же при построении сетевых систем, но это мы оставим в стороне) После разделения получаются два файла, один из них будет иметь старое имя и в нем будет содержаться програмный код, запросы, формы, отчеты, а другой будет иметь имя "ИмяБазы_be.mdb" или "ИмяБазы_be.accdb" (расширение зависит от версии файла), и в нем будут содержаться таблицы с данными. Предлагаемый пример позволяет автоматизировать подключение базы с таблицами к базе с кодом, а не возиться с ручным подключением таблиц при смене размещения программы или при получении новой версии. Необходимо соблюдать только одно условие: файл с кодом и файл с таблицами должны находится в одном разделе. Теперь достаточно макрос autoexec вставить функцию fnConnectCureFolderCheck() и программа сама найдет базу с таблицами и подключит все таблицы, находящиеся в базе. Примечание: функция fnConnectCureFolderCheck() отличается от функции fnConnectCureFolder() наличием блока контроля предыдущего подключения. Ограничения: такой способ не годится для сетевых версий программ, т.к. в этом случае база с таблицами располагается на сервере и требуется явно указать путь к ней. Хотя саму подпрограмму подключения всех таблиц из указанной базы можно использовать. В приложении содержатся два примера: для формата MDB (Access 2000) и формата ACCDB. Если место не менялось, то происходит контроль подключения. Функцию перелинковки всех связанных таблиц можно отключить для ускорения запуска программы
4
|
|
|
1370 / 290 / 16
Регистрация: 16.01.2014
Сообщений: 922
|
|
| 29.08.2018, 11:35 | |
|
И ещё немного о подключении таблиц из других баз.
Программный модуль, облегчающий подключение таблиц из внешних баз Возможности: можно подключать произвольное число баз и таблиц (в пределах разумного) можно сохранять выбранные подключения/линковки можно линковать как все, так и отдельные таблицы из выбранной базы можно присваивать линкованным таблицам новые имена можно осуществлять подключения/отключения как всех сразу так и отдельных баз Список таблиц подключаемой базы программа создаёт автоматически (по нажатию кнопки) Краткая инструкция в приложенном примере. Пример дан в форматах MDB и ACCDB Дополнительно приложен пример Крамарева Владимира. Взят на сайте Новиков Сергея в далёком 2002 году. Описание в архиве. P.S. Интерфейс красивее чем у меня. Завидую. Делает практически то же что у меня. Пример как-то затерялся у меня в архивах. Пришлось разрабатывать свой. И только через пару лет после создания своего модуля я наткнулся на этот пример. Ещё одно доказательство того, что появление "новых" велосипедов - недостаточная информированность разработчиков. "Всё уже украдено до нас" операция Ы (с)
3
|
|
|
1370 / 290 / 16
Регистрация: 16.01.2014
Сообщений: 922
|
|
| 23.09.2018, 22:54 | |
|
И снова новая версия модуля подключения.
Теперь модуль может работать с запароленными базами данных, а так же в 32-х и 64-х битных версиях Access.
4
|
|
|
1 / 1 / 0
Регистрация: 29.10.2018
Сообщений: 26
|
||||||||
| 29.10.2018, 15:33 | ||||||||
![]() Может быть кто-то выложит жизнеспособный вариант? Пожалуйста ![]()
0
|
||||||||
|
1 / 1 / 0
Регистрация: 29.10.2018
Сообщений: 26
|
|
| 31.10.2018, 15:32 | |
|
Как-будто бы ожило творение из 2012го...
Но я не шарю в Accesse и прошу помощи с этим справиться ![]() Пароль такой же - 12345
0
|
|
|
1370 / 290 / 16
Регистрация: 16.01.2014
Сообщений: 922
|
|
| 02.11.2018, 15:31 | |
|
Попробуй вот этот вариант. У меня открывается нормально в 32-х разрядном Access. Сделал однопользовательской. Лень было делать многопользовательской. Ставлю: Завод 3, Admin Admin, ну и пароль тот же 12345.
1
|
|
| 02.11.2018, 15:31 | |
|
Кто занимался работой с timer поделитесь пожалуйста наработками интеренсыми Делимся. Делимся vpn) Делимся опытом Делимся знаниями по С++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|