|
19318 / 2626 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
|
|
Делимся наработками03.11.2009, 11:04. Показов 488357. Ответов 282
Метки нет (Все метки)
в этой теме предлагаю выкладывать интересные наработки по акцессу...
зы. в дальнейшем на основе их можно будет создать темы "важное" Добавлено через 45 секунд ззы. флуд и спам в этой теме будет награжден красными карточками
17
|
|
| 03.11.2009, 11:04 | |
|
Ответы с готовыми решениями:
282
Для рубрики "Делимся наработками", добить БД поставка-сделка авто Обсуждение поста #137 в теме "Делимся наработками". Программный модуль контроля ресурсов принтеров сети. Строковый тип данных. С наработками. Работает, но не верно |
|
1370 / 290 / 16
Регистрация: 16.01.2014
Сообщений: 922
|
|||||||||||||||||||||||||||||||||||||||||
| 05.09.2025, 09:51 | |||||||||||||||||||||||||||||||||||||||||
|
Как создать скомпилированный файл MDE/ACCDE с помощью VBA
Что такое скомпилированная версия (MDE/ACCDE)? MDE/ACCDE — это скомпилированная версия базы данных Access, которая обеспечивает повышенную безопасность и защиту структуры вашего приложения. Файл mdb компилируется в mde, а файл accdb — в accde. Зачем они нужны разработчикам? Существует ряд причин, по которым вы можете захотеть предоставить своим пользователям файл mde/accde, а не исходный файл mdb/accdb. К ним относятся: - Защита конструкции Файлы MDE/ACCDE не позволяют пользователям просматривать или изменять формы, отчёты и модули в режиме конструктора, защищая вашу интеллектуальную собственность. - Безопасность кода Код VBA в этих файлах скомпилирован и недоступен для просмотра или редактирования, что обеспечивает безопасность вашей логики программирования. - Целостность данных Хотя пользователи по-прежнему могут взаимодействовать с базой данных с помощью форм и отчётов, они не могут случайно или намеренно изменить дизайн приложения. - Производительность Скомпилированные базы данных могут работать быстрее, чем их редактируемые аналоги. - Уменьшенный размер файла В результате компиляции размер файла часто уменьшается, что может быть удобно при распространении и хранении. Важно отметить, что таблицы и запросы не защищены! Они остаются доступными для ваших пользователей, поэтому важно принять дополнительные меры для их защиты (отличным решением в этом случае будет скрытие панели навигации). Таким образом, хотя файлы MDE/ACCDE и обеспечивают определённую безопасность, они должны быть частью более масштабной стратегии обеспечения безопасности. Требования к компиляции файлов MDE/ACCDE Важно помнить, что скомпилированные базы данных (mde/accde) — это именно базы данных, в которых код … был скомпилирован и упакован. Таким образом, чтобы создать mde/accde, ваш код VBA должен компилироваться без ошибок, иначе создание mde/accde завершится неудачей. Это ещё одна причина, по которой рекомендуется постоянно компилировать код во время разработки. Сохраните исходный файл MDB/ACCDB!!! Важно! Всегда помните, что «как правило» невозможно преобразовать mde/accde обратно в формат mdb/accdb (если только вы не обратитесь в компанию, которая предлагает услуги по обратному проектированию файлов mde/accde). Поэтому очень важно всегда сохранять исходный файл mdb/accdb для дальнейшего использования. Использование VBA для создания скомпилированного MDE/ACCDE Для создания скомпилированной версии базы данных в основе кода лежит использование недокументированной функции SysCmd, в частности 603 AcSysCmdAction. Базовый синтаксис функции: SysCmd(AcSysCmdAction, [аргумент2], [аргумент3]) В случае создания файлов MDE/ACCDE: AcSysCmdAction => 603 => Создать файл mde/accde Argument2 => путь к входному файлу базы данных и его имя для преобразования Argument3 => Путь к выходному файлу mde/accde и его имя Таким образом, команду 603 можно сравнить с:
Теперь, когда мы это знаем, мы можем создать простые функции-обёртки для выполнения преобразования. Создание скомпилированного MDE/ACCDE для текущей базы данных Если вы хотите создать скомпилированную версию текущей базы данных, с которой вы работаете, и сделать это с помощью кода, то можете воспользоваться такой процедурой:
С другой стороны, если вы хотите создать скомпилированные версии других файлов базы данных, то, немного изменив приведённый выше код, мы можем сделать что-то вроде этого:
Его снова можно использовать следующим образом:
Вот и всё, теперь у вас есть две разные процедуры для компиляции баз данных с помощью кода VBA. Источник
0
|
|||||||||||||||||||||||||||||||||||||||||
|
1370 / 290 / 16
Регистрация: 16.01.2014
Сообщений: 922
|
||||||||||||||||
| 15.09.2025, 11:13 | ||||||||||||||||
|
Использование VBA для блокировки компьютера
Аналог нажатия клавиш Win+L или сочетание клавиш Ctrl+Alt+Del, а также нажатие Lock (заблокировать). Не знаю. Может кому пригодится. Возможно, после запуска вашего кода? Существует простой API, с помощью которого можно выполнить всю сложную работу. Всё, что нужно сделать, — это создать простую функцию-оболочку, как показано ниже:
Рабочая станция может быть разблокирована пользователем или администратором. Чтобы разблокировать систему, нажмите клавиши CTRL+ALT+DEL и войдите в систему. Да, ещё, пользователь должен быть авторизован, а рабочая станция не должна быть заблокирована. Источники: здесь и здесь
0
|
||||||||||||||||
|
1370 / 290 / 16
Регистрация: 16.01.2014
Сообщений: 922
|
|||||||||||||||||||||||||||||||||||||||||
| 18.11.2025, 10:19 | |||||||||||||||||||||||||||||||||||||||||
|
Открыть документ в родном приложении
АлексейЕ Функция, позволяющая открыть произвольный документ в родном для него приложении (в зарегистрированном в системе приложении для данного расширения)
Кроме того есть прекрасная API функция:
Использовал эту функцию, когда в базе хранятся не документы, а ссылки на файлы. Сразу можно открыть и просмотреть нужный документ. Здесь функция представлена для 32-х разрядной версии Access Добавлено через 20 минут И в догонку Функция API ShellExecute - описание и применение Так, для общего сведения Функция ShellExecute запускает программу по имени или по ассоциации с файлом документа. Объявление для VBA 6
Описание. Функция находит имя программы, связанной с заданным файлом, и либо запускает программу с загрузкой данного файла, либо выводит файл на печать. Типы файлов обычно связывается с конкретными приложениями в реестре Windows. Например, текстовые файлы с расширением .TXT обычно ассоциируются с приложением Windows Notepad (NOTEPAD.EXE). Если передать этой функции любой файл с расширением .TXT, функция либо запускает программу Notepad, указывая имя файла в качестве параметра, либо выводит файл на печать. Параметры. hwnd - Long/LongLong - манипулятор окна (хендл). Идентификатор родительского окна. Указывать родительское окно не обязательно, можно просто 0 lpOperation – String - операция, выполняемая с файлом. Может иметь следующие значения: «open», «print», «explore», «find», «edit». Если lpOperation="find", функция выводит диалоговое окно для поиска файлов по условиям. Параметр lpFile должен указывать путь к папке, начиная с которой будет выполняться поиск. Остальные параметры не используются. Если lpOperation="explore", функция выводит диалоговое окно - список папок. Параметр lpFile должен указывать путь к папке, содержимое которой нужно посмотреть. Остальные параметры не используются. Если lpOperation="edit", функция открывает файл на редактирование, загружая приложение, ассоциированное с расширением файла. Параметр Edit должен содержать имя файла, параметр plDirectory - указывать путь к этому файлу; если параметр lpDirectory не используется, то параметр lpFile должен указывать путь и имя файла. Если lpOperation="open", функция выполняет следующие действия: если в lpFile указан исполняемый файл (например, типа EXE), то он запускается на выполнение; загружаемой программе передаётся список параметров, указанных в lpParameters; в противном файл открывается на редактирование. Если lpOperation="print", то выполняется печать файла на принтере (фактически загружается ассоциированное с расширением файла приложение, которое и печатает документ). По умолчанию - "open", если указано Null (vbNullString) или значение опущено. lpFile – String – файл или папка, которую нужно открыть lpParameters – String – параметры открытия файла, т.ч. запуска приложения. Используется только при запуске приложений lpDirectory – String – рабочая директория nShowCmd – Long – параметры окна открытого файла (приложения, директории) Параметры lpOperation, lpParametrs и lpDirectory можно опускать Параметр nShowCmd может иметь значения от 0 до 10. Наиболее часто используемые значения: SW_HIDE = 0 - запускаемое приложение делается невидимым SW_SHOWMAXIMIZED = 3 - развернутое (максимальное) окно; SW_SHOWMINIMIZED = 2 - свернутое окно (значок) в панель задач; SW_SHOWNORMAL = 1 - нормальное окно. Более полный список параметров можно взять из описания функции ShowWindow Коды ошибок Если функция возвращает значение больше 32-х, то всё в порядке, иначе смотрите коды ошибок. 0 - Недостаточно памяти или ресурсов SE_ERR_FNF = 2 - Указанный файл не найден (ERROR_FILE_NOT_FOUND) SE_ERR_PNF = 3 - Указанный путь не существует (ERROR_PATH_NOT_FOUND) SE_ERR_ACCESSDENIED = 5 - Операционная система не имеет доступа к указанному файлу SE_ERR_OOM = 8 - Недостаточно памяти или ресурсов Windows ERROR_BAD_FORMAT = 11 - Формат .EXE неверен (не-Win32 .EXE или ошибка в .EXE файле). SE_ERR_SHARE = 26 - Произошла ошибка совместного доступа SE_ERR_DDETIMEOUT = 28 - Операция DDE не была закончена, потому что истекло время запроса SE_ERR_DDEFAIL = 29 - Операция ПРЯМОГО ВВОДА ДАННЫХ потерпела неудачу SE_ERR_DDEBUSY = 30 - Операция ПРЯМОГО ВВОДА ДАННЫХ(DDE) не может работать, потому что другие действия ПРЯМОГО ВВОДА ДАННЫХ находятся в процессе SE_ERR_NOASSOC = 31 - Нет никакого приложения, ассоциированного с расширением файла SE_ERR_DLLNOTFOUND = 32 - Указанный файл DLL не найден Пример использования
Как и у многих других функции WinAPI, у ShellExecute существует два варианта: ShellExecuteA и ShellExecuteW. A- и W-версии отличаются типом строк: A - ASCII, W - WCHAR (юникоде). Не путайте. В Access используется тип А. Используемые материалы Дан Эпплман - Win32 API и Visual Basic Сайт Cybite.ru - http://kbyte.ru/ru/Programming... &mode=show Сайт Тостер и вот здесь - http://platonov-andrei.narod.r... xecute.htm
1
|
|||||||||||||||||||||||||||||||||||||||||
| 18.11.2025, 10:19 | |
|
Кто занимался работой с timer поделитесь пожалуйста наработками интеренсыми Делимся. Делимся vpn) Делимся опытом Делимся знаниями по С++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс
Ссылка на сгенерированную музыкальную композицию:
https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013
Я говорю, что Время- как вода
течет. . .
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|