|
46 / 31 / 1
Регистрация: 28.09.2012
Сообщений: 974
|
|
Согласование документации ( Фильтрация записей при открытии, значение поля по умолчанию, доступ к редактированию поля)18.07.2013, 15:21. Показов 4171. Ответов 36
Метки нет (Все метки)
Доброго времени суток!
Организую согласование документации в АКсесс. Возникли мне не понятные в решении трудности,хотелось бы: 1 . при открытии программы под конкретным "UsersPassword" и открытии формы " frmIzvesheniy_Cogl_Glavn" должны выводиться записи "Код_tblIzvesheniy" в которых :Код_tblCtatyc_Izv =1 и поле "Кому_Направлено" = тому сотруднику к кому относится "UsersPassword" при входе через форму "fEnter1" Если вошел Авдеев И.В. под "UsersPassword"=2 то должна открыться только одна запись "Код_tblIzvesheniy =49 т.к. только в ней Авдеев И.В есть в списке "Кому_Направлено". 2. в форме" frmIzvesheniy_Cogl_Glavn" поля :"Кто_Согласовал";"Дата_Согласования";"К омментарий_Согл" подчиненной формы "frmIzvesheniy_Cogl_1" были доступны для редактирования только тому сотруднику чья фамилия стоит в поле "Кому_Направлено" формы "frmIzvesheniy_Cogl_1" ( т.е.= тому кто под кодом "UsersPassword" вошел в "Поле1" формы "fEnter1".). Если вошел Авдеев И.В. под "UsersPassword"=2 то в открывшейся одной записи "Код_tblIzvesheniy =49 для Авдеев И.В должны быть доступны для редактирования поля "Кто_Согласовал";"Дата_Согласования";"Ко мментарий_Согл" подчиненной формы "frmIzvesheniy_Cogl_1" ) напротив его фамилии стоящей в поле "Кому_Направлено" В этой же записи для Анисимова В.А. и Анохина Н.Ю. доступны для редактирования поля напротив их фамилии. и только они. Для Авдеев И.В поля напротив Анисимова В.А. и Анохина Н.Ю. недоступны для редактирования и наоборот. 3. при открытии формы" frmIzvesheniy_Vvod" значение поля "ФИО_Разработчика" было по умолчанию = "chrСотрудники" того кто под своим кодом "UsersPassword" вошел в "Поле1" формы "fEnter1". "UsersPassword" находится в таблице tblСотрудники Для меня это слишком сложно, может кто поможет?
0
|
|
| 18.07.2013, 15:21 | |
|
Ответы с готовыми решениями:
36
Задание ключом в объекте - значение поля ввода при динамическом создании поля
|
|
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
|
||
| 19.07.2013, 04:21 | ||
|
Кто так формы делает? Не войти не выйти!
В первом пункте вы ведёте речь о форме, источник данных которой - таблица, а должен быть запрос с условием на ваш пароль. А где взять пароль? Я когда его ввожу, где он сохраняется? Как называется таблица соответствия ФИО и паролей для этого? -->
1
|
||
|
46 / 31 / 1
Регистрация: 28.09.2012
Сообщений: 974
|
|
| 19.07.2013, 09:08 [ТС] | |
|
В таблице tblСотрудники берете пароль ( например "2" )
Вводите его в "Поле1" формы fEnter1 нажимаете кнопку OK ( Может сработать не сразу , нажмите еше раз) далее откроется форма в которой есть несколько кнопок в числе прочих кнопка "Извещения" Нажимаете кнопку "Извещения" Открывается форма с тремя кнопками "Ввод извещения", "Согласование" "Просмотр" "Ввод извещения "открывает форму " frmIzvesheniy_Vvod" "Согласование" открывает форму " frmIzvesheniy_Cogl_Glavn" "Просмотр" открывает форму форме" frmIzvesheniy_Procmotr_1" Добавлено через 3 минуты alvk, модуль modByPassworg имеет непосредственное участие в открытии программы, Также используются код VBA При нажатии кнопки OK формы fEnter1
0
|
|
|
46 / 31 / 1
Регистрация: 28.09.2012
Сообщений: 974
|
|
| 23.07.2013, 17:12 [ТС] | |
|
Доброго времени суток!
Судя по немногим откликам моя просьба оказалась или не интересной или не совсем простой в решении, попробую переформулировать просьбу. В форме "fEnter1" вводим пароль ( например "2") Запускается запрос "gryIzv_Cogl_1" на создание таблицы"tblIzv_Cogl_1" куда вставляются данные вошедшего пользователя.( просьба посмотреть код VBA, я его скопировал с процедуры при нажатии кнопки - желательно поправить. также просьба убрать всплывающие окошки с вопросами по выполнению запроса"gryIzv_Cogl_1 ) В открывшейся форме нажимаем кнопку "Извещения" В открывшейся форме нажимаем кнопку " Согласование Извещений" В форме "frmIzvesheniy_Cogl_Glavn " выбираем запись "Код_tblIzvesheniy" = 49 Нажимаем кнопку"Открыть форму" открывает форму "frmIzvesheniy_Cogl_2" поля которых "Кто_Согласовал", "Дата_Согласования","Комментарий_СОГ Л" должны редактироваться , но НЕ редактируются по факту. Просьба помочь решить эти проблемы!
0
|
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 23.07.2013, 22:01 | |
|
ankan, форма "frmIzvesheniy_Cogl_2" не редактируемая, потому что запрос-источник формы не модифицируемый. Попробуйте в Запрос1 что-либо изменить или добавить. Не получится. А не получится потому, что в таблицы запроса связаны не по ключевому полю. И акс совершенно добросовестно полагает, что такая связь может привести к неоднозначному выбору и, соответственно, запрещает редакцию. Разбирайтесь именно с этим.
Кстати, совершенно непонятно зачем при инциализации с паролем нужно удалять и заново создавать какую-то таблицу.
1
|
|
|
46 / 31 / 1
Регистрация: 28.09.2012
Сообщений: 974
|
|
| 23.07.2013, 22:21 [ТС] | |
|
mobile, Спасибо , попробую завтра разобраться в содеянном.
"при инциализации с паролем нужно удалять и заново создавать какую-то таблицу."- связано с тем что база многопользовательская, таблиц на сервере, эталонный интерфейс копируется на локальные компьютеры пользователей.Соответственно каждый пользователь использует "свой" интерфейс и при инициации с паролем создает таблицу с его данными. Таблица затем удаляется. Проблему с всплывающими окнами при инициации с паролем решить не поможете?
0
|
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||
| 23.07.2013, 22:29 | ||
|
Currentdb.Execute выполняет исполняемые запросы - INSERT INTO, SELECT ... INTO, UPDATE, DELETE и запросы DDL. Запрос на выборку (Select) не исполняемый и с помощью Currentdb.Execute его не выполнить. Команда OpenQuery не разбирает тип запроса и выполняет любой. Но при этом, поскольку это команда Access, а не DAO, что-то спрашивает. Замените ее на Currentdb.Execute, отпадут и вопросы.
1
|
||
|
46 / 31 / 1
Регистрация: 28.09.2012
Сообщений: 974
|
|
| 24.07.2013, 11:27 [ТС] | |
|
mobile, Спасибо завтра попробую!
Добавлено через 12 часов 38 минут mobile, заменить OpenQuery на Currentdb.Execute не получается ( этой функции нет в списке функций который открывается при постановке точки). Может посмотрите код VBA Form Unload формы fEnter1 ?
0
|
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 24.07.2013, 14:08 | |
|
Заменил в запросе ссылку на поле формы функцией GetPWD (в модуле basPassword)
OpenQuery заменил на Currentdb.execute. Расставил там Onerror для обхода ошибки при отсутствии таблицы.
1
|
|
|
46 / 31 / 1
Регистрация: 28.09.2012
Сообщений: 974
|
|
| 25.07.2013, 08:55 [ТС] | |
|
mobile, Ваша последняя рекомендация решила проблему с всплывающими окнами при запуске интерфейса через форму "fEnter1".Спасибо!.(кстати, я поменял наименование объектов)
Если еще поможете , скажу спасибо еще раз! В форме "frmIzvesheniy_Vvod" поле "ФИО_Разработчика" должно быть по умолчанию= "chrСотрудники" таблицы "tblEnter1" Приложение аксес у пользователя должно открываться не формой "fEnter" а сразу формой "fEnter1" При смене статуса извещения в форме "frmIzvesheniy" и при дальнейшем просмотре извещений через фильтр"frmIzvesheniy_Procmotr_Filtr" переходом из формы "frmIzvesheniy" через кнопку "Кнопка18" а также через кнопки формы "frmIzvesheniy_Knopki" статус извещения САМОПРОИЗВОЛЬНО возвращается на прежний.(например запись с код_tblIzvesheniy= 47). Такое происходит также и с другой группой информации ( не представленной в данном примере) уловить какую-то четкую систему ,почему и после каких действий пользователя такое происходит мне не удалось.Есть догадка что это может быть связано с фильтром "frmIzvesheniy_Procmotr_Filtr" ( при смене статуса в фильтре для поиска -это каким-то образом меняет статус текущей записи в таблице tblIzvesheniy а запись код_tblIzvesheniy= 47 как раз является первой в tblIzvesheniy и следовательно находится в "frmIzvesheniy_Procmotr_Filtr" при ее открытии. Непонятно!!!
0
|
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||||
| 25.07.2013, 12:40 | ||||||||
Остальное не понял. Не увидел где в форме frmIzvesheniy можно менять статус. Соответственно, дальше уже не смотрел
1
|
||||||||
|
46 / 31 / 1
Регистрация: 28.09.2012
Сообщений: 974
|
|
| 25.07.2013, 15:00 [ТС] | |
|
mobile, Вставил код VBA, все получилось, единственное при открытии формы frmIzvesheniy_Vvod сразу образуется запись( даже без вставки значений в поля).Это не критично, но жалко зазря использованного кода tblIzvesheniy
В аксесс 2003 в меню "Файл" нет вкладки "Параметры" Вкладка "Параметры" есть в "Сервис", но в ней нет "Форма просмотра". Поэтому Вашу рекомендацию не внедрил. По поводу самопроизвольно меняющегося статуса- то в форме frmIzvesheniy есть раскрывающийся список Код_tblCtatyc_Izv ( в правом углу) в котором можно менять статус. Я кое - какие изменения внес, посмотрим, может проблема с самопроизвольно меняющимся статусом решена. Сгенерированное Вами решение по повторному запуску приложения без ввода пароля в примере работает , но в разделенной БД ( в реальных условиях ) не работает - требует пароль !
0
|
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|||||||
| 25.07.2013, 19:44 | |||||||
|
ankan, чтобы не возникакла новая запись, немного переделайте код. Вместо присваивания значения контролу, можно установить для него значение по умолчанию
О статусе извещений. Для поля со списком Код_tblCtatyc_Izv формы frmIzvesheniy_Vvod свойство Enabled (Доступ) установлено в Нет. Я конечно могу поменять доступ на Да, но вы ведь из каких-то соображений запретили доступ к этому полю. Или я опять не на тот контрол смотрю? Добавлено через 1 минуту
0
|
|||||||
|
46 / 31 / 1
Регистрация: 28.09.2012
Сообщений: 974
|
|
| 25.07.2013, 21:21 [ТС] | |
|
[quote="mobile;4878010"]
«О статусе извещений. Для поля со списком Код_tblCtatyc_Izv формы frmIzvesheniy_Vvod свойство Enabled (Доступ) установлено в Нет. Я конечно могу поменять доступ на Да, но вы ведь из каких-то соображений запретили доступ к этому полю. Или я опять не на тот контрол смотрю?» - поле «Код_tblCtatyc_Izv» в форме «frmIzvesheniy» «Совершенно не понял о чем это...»- Заменил в запросе ссылку на поле формы функцией GetPWD (в модуле basPassword) OpenQuery заменил на Currentdb.execute. Расставил там Onerror для обхода ошибки при отсутствии таблицы. Если я правильно понял идея в том что-бы при повторном запуске приложение открывалось без ввода пароля? А если произошло обновление тогда пароль ввести 1 раз необходимо, а затем открывается без него до нового обновления? «О стартовой форме. Для А2003: меню Сервис-Параметры запуска-Вывод формы/страницы» нашел в локальном примере! Завтра попробую в рабочем интерфейсе!
0
|
|
|
46 / 31 / 1
Регистрация: 28.09.2012
Сообщений: 974
|
|
| 30.07.2013, 14:27 [ТС] | |
|
mobile, Все работает достаточно хорошо, спасибо Вам большое!
Возникла не предвиденная проблема с форматом дат . Дело в том что у нескольких пользователей краткий формат даты в " язык и региональные стандарты" изменен с dd.MM.yyyy на dd.MM.yy В связи с этим ввод дат затруднен. Нет ли какого-либо нетрудоемкого способа решить эту проблему? ( конкретно в форме frmIzvesheniyVvod заполнение поля Data_Bipycka_Razrab у пользователей с кратким форматом даты dd.MM.yy невозможен) И еще несколько общих вопросов: стоит ли в таблицах указывать маску ввода? В формах? Может есть иной , лучший способ? mobile, может нужно выделить этот вопрос в отдельную тему?
0
|
|
|
9131 / 6141 / 593
Регистрация: 27.03.2013
Сообщений: 20,006
|
|
| 30.07.2013, 14:48 | |
|
ankan - Может тогда имеет смысл разделить БД (раз уж пользователи все такие разные и не хотят под одну гребенку и в одну ногу с общепринятыми нормами организации идти). Таблицы отдельно, а Формы, запросы и отчеты отдельно,
Кликните здесь для просмотра всего текста
Мухи отдельно, котлеты отдельно
![]() Или все пользователи работают на одном ПК по очереди??, Тогда сложнее
1
|
|
|
46 / 31 / 1
Регистрация: 28.09.2012
Сообщений: 974
|
|
| 30.07.2013, 15:04 [ТС] | |
|
kmv-puh, БД по факту разделена как Вы и советуете таблицы отдельно формы , запросы, отчеты отдельно. Некоторые пользователи используют другой формат даты т.к они вставляют даты в основную надпись чертежей( формат dd.MM.yyyy просто не помещается в размеры поля основной надписи чертежей)
0
|
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 30.07.2013, 15:11 | |
|
ankan, проблема с датой не более чем проблема форматов. Дата, в каком бы она представлении ни была, это все тот же тип Double - число с плавающей запятой, где целая часть количество дней от 31.12.1899, а мантисса доля суток с точностью до секунд. И если где-то не помещается дата с 4-значным годом, то мой совет переделать в этих местах дату для 2-значного года. Для всех. Дата от этого не изменится.
1
|
|
|
9131 / 6141 / 593
Регистрация: 27.03.2013
Сообщений: 20,006
|
|
| 30.07.2013, 15:14 | |
|
ankan - А может стоит попробовать уменьшить масштаб в клеточке чертехей. Кстати, в чем, в ком делаются чертежи??? Скиньте примерчик, если в компасе, то там вроде можно задать в табличеке масштаб для каждой ячейки, правда из акса ни разу не пробовал, нужно репку почесать КАК
, или вы имеете в виду что то другое?
0
|
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 30.07.2013, 15:15 | |
|
Насчет масок ввода. В таблицах точно не стоит указывать. В формах? Это вопрос удобств. Если пользователям удобнее с маской, дайте им маску. Но лично я стараюсь масок не применять (за исключением особых случаев). От нее чаще больше хлопот, чем реальной пользы. Маска хороша, где есть длинная постоянная часть, а где-то в середине надо прописывать изменения. Это не случай даты.
1
|
|
| 30.07.2013, 15:15 | |
|
Помогаю со студенческими работами здесь
20
Значение поля по умолчанию Значение поля формы по умолчанию Значение по умолчанию из другого поля Значение по умолчанию поля со списком
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|