Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.60/1214: Рейтинг темы: голосов - 1214, средняя оценка - 4.60
БурундукЪ
9564 / 2580 / 83
Регистрация: 17.02.2009
Сообщений: 10,364
1

Делимся наработками

03.11.2009, 11:04. Просмотров 224059. Ответов 133
Метки нет (Все метки)

в этой теме предлагаю выкладывать интересные наработки по акцессу...

зы. в дальнейшем на основе их можно будет создать темы "важное"

Добавлено через 45 секунд
ззы. флуд и спам в этой теме будет награжден красными карточками
16
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2009, 11:04
Ответы с готовыми решениями:

Для рубрики "Делимся наработками", добить БД поставка-сделка авто
День добрый, форумчане. Хочу довести до ума БД, чтобы добавить в раздел форума "Делимся...

Обсуждение поста #137 в теме "Делимся наработками". Программный модуль контроля ресурсов принтеров сети.
Сейчас тестовая страница на каждом принтере выдаёт эту информацию.

Строковый тип данных. С наработками. Работает, но не верно
Написать программу определения в заданной строке номера первого по порядку слова, которое короче...

Кто занимался работой с timer поделитесь пожалуйста наработками интеренсыми
Например есть форма и на форме кнопка закрыть нажимая кнопку закрыть идет отсчет 10 9 8... и когда...

Делимся.
Доброго времени суток всем посетителям этой темы!=) Хочу попросить вас поделиться самой...

133
Silur
32 / 34 / 2
Регистрация: 16.01.2014
Сообщений: 41
04.11.2018, 08:58 121
Дополнительно. Такое сообщение бывает, если не подключены таблицы. Вообще то должно было подключаться автоматически.
1. Выполнить вручную. Открыть панель навигации (F11 или запуск с Shift). Открыть модуль basConnect, вручную запустить функцию fnConnectCureFolder(). Можно работать.
2. В макросе autoexec функцию fnConnectCureFolder() поднять в списке вверх на 3 место. Подправить написание (оказалась отсутствует закрывающая скобка в вызове.

Ну и версия с исправленным autoexec
0
Вложения
Тип файла: zip База Данных СИ 3.zip (1.86 Мб, 66 просмотров)
Silur
32 / 34 / 2
Регистрация: 16.01.2014
Сообщений: 41
04.11.2018, 09:48 122
Плохо, что сообщения можно менять только в течении 5 минут. Хотел подправить, но уже нельзя.

ProgressBar без ProgressBar-a

Взято очень давно с сайта http://www.jsilver.newmail.ru/ (страничка Джона Сильвера) Сайта такого уже нет. Программа была сделана в Access 97. Я её преобразовал в формат Access 2000.

Попробуйте, Вам понравится. Всё сделано средствами Access. Никаких ActiveX.

Дополнительно.

Последняя версия модуля sd_Connect. Добавлена возможность менять путь и пароль для файлов с таблицами. Таблицы SystemBases и SystemTables переименованы в USystemBases и USystemTables. Теперь они не видны при обычных настройках панели навигации. Чтобы их увидеть необходимо поставить флажок в поле "Показывать системные объекты"
В файле с суффиксом "i" поизвращался над интерфейсом. Сделал цветные овальные кнопки. Смотрится вполне неплохо.
0
Вложения
Тип файла: zip ProgrBarKidding.zip (20.7 Кб, 57 просмотров)
Тип файла: zip sd_Connect_v43.zip (518.8 Кб, 47 просмотров)
Eugene-LS
4885 / 2696 / 551
Регистрация: 05.10.2016
Сообщений: 7,503
04.11.2018, 13:36 123
Цитата Сообщение от Silur Посмотреть сообщение
Взято очень давно с сайта http://www.jsilver.newmail.ru/ (страничка Джона Сильвера) Сайта такого уже нет.
Ну уж действительно совсем давно, что и почти не правда.
Я был владельцем данного ресурса.
Его развитие и продолжение можно теперь найти тут: http://msa.polarcom.ru/
... сколько лет то прошло ... аж страшно ...

Silur, спасибо за приятные воспоминания, тут уместно добрым словом помянуть сайт Сергея Новикова (aka NSA) которого уже нет (сайта).
2
Silur
32 / 34 / 2
Регистрация: 16.01.2014
Сообщений: 41
04.11.2018, 22:49 124
"Ничто на Земле не проходит бесследно..."

Архивная версия сайта Новикова Сергея - MS Access 97 со всех сторон с примерами

Да, Евгений, мы с Вами заочно знакомы. На Вашем сайте есть и мои примеры. Вот хотя бы Пример использования модуля класса для работы с внешними устройствами (побитная обработка данных)
1
04.11.2018, 22:49
REALIST07
22.11.2018, 22:08
  #125

Не по теме:

Зашел выразить свое почтение всем вам,Господа, пожалуй за долгое время моего пребывания на этом форуме - это лучший раздел, который я видел

0
Silur
32 / 34 / 2
Регистрация: 16.01.2014
Сообщений: 41
24.11.2018, 16:01 126
Модуль авторизации

Данный модуль имеет 3 вида авторизации
1. без авторизации
2. Windows авторизация
3. авторизация по Login/Password
Выложен он будет в режиме "Без авторизации"

Переключать режимы авторизации может администратор программы (БД). Для этого надо нажать кнопку "Сервис" (ключ и молоток) Появляется форма "Сервис" с двумя кнопками (пока).
Нажимаем на кнопку "Настройка программы". Для режима без авторизации программа запросит пароль администратора. При других режимах программа проверит админские привилегии пользователя.

ВНИМАНИЕ! Сейчас для администратора установлен пароль "121212". Для всех остальных пользователей пароль не установлен. Логин администратора всегда "admin". Этот логин зарезервирован за системой. Пользователи не должны его использовать.

Вводим пароль. Откроется форма "Настройки программы". Выбираем нужный режим и закрываем форму.
Тут можно сменить и пароль администратора, нажав кнопку "Смена пароля текущего пользователя". У Вас снова будет запрошен пароль администратора, При правильном вводе будет предложено ввести новый пароль. Так меняется пароль администратора в режиме "Без авторизации"

Добавлять, удалять пользователя и изменять его параметры может только администратор БД (или пользователь "admin", который является администратором по умолчанию). Для этого в параметрах пользователя необходимо установить флажок "Администратор"
А вот пароль устанавливает сам пользователь.

Для изменения параметров пользователей нажмите на кнопку "Менеджеры" (два профиля). Откроется форма со списком пользователей. Внизу есть кнопки "Добавить", "Изменить", "Удалить".
Выберите пользователя и нажмите на кнопку "Изменить". Откроется соответствующая форма. Перейдите на закладку "Авторизация".
Там находятся два поля "Логин Windows" и "Логин программы"
В поле "Логин Windows" вносится логин под которым пользователь регистрируется в Windows. Предназначен для режима Windows авторизации.
В поле "Логин программы" вносится логин для режима авторизации Login/Password. При создании нового пользователя пароль всегда пустой. Чтобы его изменить, необходимо при заданном режиме "Авторизация по Login/Password" войти в программу по своим логином. В поле "Пароль" ничего не вводить. Затем выбрать режим "Сервис" и "Смена пароля текущего пользователя". Введите новый пароль и подтвердите его. Пробелы вводить нельзя. Регистры в пароле учитывается.
Кроме того там есть кнопка для сброса пароля. Если пользователь забыл свой пароль, то руководитель может его сбросить.

Логины и пароли пользователей хранятся в таблице UserManager. Режим авторизации и пароль администратора хранятся в таблице tbl_SetProgramm.

При "Windows авторизации" программа при запуске просматривает поле LoginWin в таблицы UserManager. В случае совпадения входит в программу под найденным логином.

При авторизация по Login/Password программа запрашивает логин и пароль пользователя.

Попробуйте, как работает и выскажите своё мнение.

Заданные мной логины для программы
Иванов - Ivan
Петров - Peter
Сидоров - Sidor
Александров - Alex
Фёдоров - Fedor
Ефимов - Efim
Сергеев - Serg
Регистр для логина неважен. т.е. Alex=alex=aLeX

Пользователь Иванов - Ivan указан как администратор БД.

P.S. Ещё раз напоминаю, пароль для администратора сейчас установлен 121212.

В приложении - описанный модуль и доработанная функция InputBox для ввода паролей (я не автор доработки, я её только дописал под 64 битную версию Access)
1
Вложения
Тип файла: rar Authorization_0.5.5.rar (122.1 Кб, 78 просмотров)
Тип файла: rar InputBoxEx.rar (17.4 Кб, 52 просмотров)
amd48
448 / 173 / 28
Регистрация: 18.05.2016
Сообщений: 446
Записей в блоге: 1
29.11.2018, 21:37 127
Создадим таблицу с названием dual (пасхалочка из Oracle) с одним текстовым полем, которое назовём любым образом. В таблицу вставим одну запись с текстом " " (т.е. просто один пробел)
Теперь эту таблицу можно использовать в запросах в качестве заглушки, когда нам надо ввести явное значение для какого-нибудь поля. Вместо dual можно использовать MSysObjects, но dual пишется короче и запомнить проще. И в этом контексте использования гуглится гораздо чаще.

Один селект без явного указания источника MSA ещё может обработать. Типа такого:
SQL
1
SELECT dateserial(1970,1,1)
А два селекта подряд типа этого он выполнять уже отказывается:
SQL
1
2
3
SELECT dateserial(1970,1,1)
UNION
SELECT dateserial(1980,1,1)
А с таким проблем уже нет:
SQL
1
2
3
SELECT dateserial(1970,1,1) FROM dual
UNION
SELECT dateserial(1980,1,1) FROM dual
А теперь
Создадим массив цифр от 0 до 9
SQL
1
SELECT 0 AS n FROM dual UNION SELECT 1 FROM dual UNION  SELECT 2 FROM dual UNION SELECT 3 FROM dual UNION SELECT 4 FROM dual UNION SELECT 5 FROM dual UNION SELECT 6 FROM dual UNION SELECT 7 FROM dual UNION SELECT 8 FROM dual UNION SELECT 9 FROM dual
Получаем 10 записей с цифрами от 0 до 9. Назовём этот запрос "nn"

Создадим последовательность календарных дней от 01.01.1970 до 24.01.2082
Такого календарика на 40932 дня должно хватить для большинства задач реальной жизни
SQL
1
2
3
4
5
6
7
8
9
10
11
SELECT * FROM (
SELECT dateserial(1970,1,(n1.n&n2.n&n3.n&n4.n)+1) AS dt FROM nn AS n1,nn AS n2,nn AS n3,nn AS n4 
UNION 
SELECT dateserial(1997,5,(n1.n&n2.n&n3.n&n4.n)+1) FROM nn AS n1,nn AS n2,nn AS n3,nn AS n4 
UNION 
SELECT dateserial(2024,9,(n1.n&n2.n&n3.n&n4.n)+1) FROM nn AS n1,nn AS n2,nn AS n3,nn AS n4 
UNION 
SELECT dateserial(2052,1,(n1.n&n2.n&n3.n&n4.n)+1) FROM nn AS n1,nn AS n2,nn AS n3,nn AS n4 
UNION 
SELECT dateserial(2079,5,(n1.n&n2.n&n3.n)+1) FROM nn AS n1,nn AS n2,nn AS n3
) ORDER BY 1
5847 воскресений за этот период
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT dt FROM (
SELECT dateserial(1970,1,(n1.n&n2.n&n3.n&n4.n)+1) AS dt FROM nn AS n1,nn AS n2,nn AS n3,nn AS n4 
UNION 
SELECT dateserial(1997,5,(n1.n&n2.n&n3.n&n4.n)+1) FROM nn AS n1,nn AS n2,nn AS n3,nn AS n4 
UNION 
SELECT dateserial(2024,9,(n1.n&n2.n&n3.n&n4.n)+1) FROM nn AS n1,nn AS n2,nn AS n3,nn AS n4 
UNION 
SELECT dateserial(2052,1,(n1.n&n2.n&n3.n&n4.n)+1) FROM nn AS n1,nn AS n2,nn AS n3,nn AS n4 
UNION 
SELECT dateserial(2079,5,(n1.n&n2.n&n3.n)+1) FROM nn AS n1,nn AS n2,nn AS n3
)
WHERE weekday(dt,2)=7
 ORDER BY 1
и MSA даже не поперхнулся. Экономьте дисковое пространство
3
АЕ
221 / 164 / 37
Регистрация: 13.12.2016
Сообщений: 799
Записей в блоге: 1
25.01.2019, 16:50 128
Кто использует микротик может быть полезным.
Набивает таблицу коментариями, IP и Именами хостов
Впоследствии можно использовать для доступа по удаленке или открытия в браузере и т.п.
1
Вложения
Тип файла: rar lease.rar (27.1 Кб, 45 просмотров)
АЕ
221 / 164 / 37
Регистрация: 13.12.2016
Сообщений: 799
Записей в блоге: 1
29.01.2019, 22:26 129
чтобы было нагляднее - пару скриншотов моего использования
0
Миниатюры
Делимся наработками   Делимся наработками  
АЕ
221 / 164 / 37
Регистрация: 13.12.2016
Сообщений: 799
Записей в блоге: 1
30.01.2019, 16:41 130
Еще одна наработка. В помощь сисадминам.
Зная IP адрес или имя хоста позволяет получить количество отпечатанных страниц
Позволяет следить за ресурсом принтеров сети.
Использует SnmpGet.exe ,которую легко найти в сети. Ссылок не даю.
1
Вложения
Тип файла: rar PrintAsk.rar (16.8 Кб, 31 просмотров)
АЕ
221 / 164 / 37
Регистрация: 13.12.2016
Сообщений: 799
Записей в блоге: 1
30.01.2019, 22:00 131
Скорее памятка, чем наработка.
Применял в отделе кадров
При передаче подпрограмме в качестве аргумента адреса в произвольном понятном формате как текста открывает в браузере карту с этим адресом
Visual Basic
1
2
3
Public Sub goadr(a As String)
Application.FollowHyperlink "https://www.google.com/maps/place/" & s
End Sub
0
АЕ
221 / 164 / 37
Регистрация: 13.12.2016
Сообщений: 799
Записей в блоге: 1
31.01.2019, 07:52 132
Для наглядности пример моего использования
0
Миниатюры
Делимся наработками  
Silur
32 / 34 / 2
Регистрация: 16.01.2014
Сообщений: 41
18.02.2019, 13:40 133
Программа учёта основных фондов

Не для бухгалтерии!

Лет 20 назад, на моей старой работе, меня попросили для завхоза, а официально - Начальника АХО, сделать небольшую программу учета основных средств: что имеется, где находится, за кем числится, и т.п. У неё был старенький ноут - 486 с 8 Мб ОЗУ, Windows 95 и 12 дюймовым экраном VGA(640x480). Поэтому и маленький размер экранных форм.
Она на нем составляла служебные записки и набирала документы. Так, что отсюда и требования к базе. Это небольшая база, написанная на Access 97, без всяких заморочек и украшательств. Позже я её конвертировал в Access 2000. Вдруг кому-то из начинающих приглянется? Жалко просто выбросить. В программе не работает только режим "Проводки оборудования". Я начал его писать по личной инициативе, но не закончил. А так всё более-менее рабочее. Сейчас бы я написал программу совсем иначе. Но нет стимула её переписывать.

Программа предназначена для ведения учета основных фондов: здание, оборудование, мебель и т.д. Программа была написана на Access 97 и работает под управлением операционной системы Windows 95/98. В формате Access 2000 программа может работать на всех 32-х разрядных версиях Access, включая 2016 (на 2019 не проверялась). Потом я слегка доработал программу, что бы она могла работать и в 64-х разрядных версиях Access Немного подправил интерфейс, убрал кое-какие ошибки.

Программа состоит из двух частей: части с программным кодом и части с таблицами данных. Это позволяет использовать задачу в сетевом многопользовательском варианте. А так же оперативно производить доработку программы.
Более подробно о работе с программой можно прочитать в справочном файле, доступном в прилагаемом архиве.
Справка дана в формате HLP. Для Windows Vista и выше для чтения таких файлов справки надо ставить специальные обновления.

Так же прикладываю последнюю версию модуля авторизации, где учтены все замечания.
3
Вложения
Тип файла: rar Uchet_0.5.2.rar (417.1 Кб, 95 просмотров)
Тип файла: rar Authorization_0.7.23.rar (134.3 Кб, 86 просмотров)
Capi
Модератор
Эксперт MS Access
2366 / 1279 / 314
Регистрация: 12.06.2016
Сообщений: 3,156
15.03.2019, 01:36 134
Silur,

Спасибо за #107.
Так мне кстати пример пришелся.)))
0
15.03.2019, 01:36
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2019, 01:36

Делимся vpn)
Ребят, накидайте vpn серверов работающих на просторах СНГ.

Делимся опытом
Добрый день! Давайте делиться мыслями о разработках, которые прямо не используются в работе, но...

Делимся знаниями по С++
По вашему зачем нужна виртуальная функция в программе? Какой от нее толк если она вызывается как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
134
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.