Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
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Сотрудники

Для меня это слишком сложно, может кто поможет?
Вложения
Тип файла: rar Извещения .rar (178.7 Кб, 22 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.07.2013, 15:21
Ответы с готовыми решениями:

Задание ключом в объекте - значение поля ввода при динамическом создании поля
$(function() { var values = {}; $('<br />'+ '<input type="text" class="field" name="field" value="12345">'+ ...

Не заполняет значение поля, при выборе другого поля
У меня есть справичник ТарифЗарплатыВодителя, который имеет реквизиты: КатегорияВодителя и ТарифВодителя, документ Заявка и документ Доход....

Значение поля по умолчанию
Доброе время суток. В общем такой вопрос как вернуть значение по умолчанию, если ничего не присваиваешь переменной. Например вводишь с...

36
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
19.07.2013, 04:21
Кто так формы делает? Не войти не выйти!
В первом пункте вы ведёте речь о форме, источник данных которой - таблица, а должен быть запрос с условием на ваш пароль. А где взять пароль? Я когда его ввожу, где он сохраняется? Как называется таблица соответствия ФИО и паролей для этого? -->
Цитата Сообщение от ankan Посмотреть сообщение
и поле "Кому_Направлено" = тому сотруднику к кому относится "UsersPassword" при входе через форму "fEnter1"
Если вошел Авдеев И.В. под "UsersPassword"=2 то должна открыться только одна запись "Код_tblIzvesheniy =49 т.к. только в ней Авдеев И.В есть в списке "Кому_Направлено".
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" поля которых "Кто_Согласовал", "Дата_Согласования","Комментарий_СОГ Л" должны редактироваться , но НЕ редактируются по факту.

Просьба помочь решить эти проблемы!
Вложения
Тип файла: rar Извещения_1 .rar (218.2 Кб, 6 просмотров)
0
Эксперт MS Access
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
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
23.07.2013, 22:29
Цитата Сообщение от ankan Посмотреть сообщение
Проблему с всплывающими окнами при инициации с паролем решить не поможете?
Имеется в виду подтверждения удаления, записи и прочая? Решаются элементарно. Заменой OpenQuery на Currentdb.Execute.
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
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
24.07.2013, 14:08
Заменил в запросе ссылку на поле формы функцией GetPWD (в модуле basPassword)
OpenQuery заменил на Currentdb.execute. Расставил там Onerror для обхода ошибки при отсутствии таблицы.
Вложения
Тип файла: rar Извещения_1 .rar (107.5 Кб, 7 просмотров)
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" при ее открытии.

Непонятно!!!
Вложения
Тип файла: zip Извещения_24.07.2012.zip (597.9 Кб, 13 просмотров)
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
25.07.2013, 12:40
Цитата Сообщение от ankan Посмотреть сообщение
В форме "frmIzvesheniy_Vvod" поле "ФИО_Разработчика" должно быть по умолчанию= "chrСотрудники" таблицы "tblEnter1"
На событии Загрузка (Load) формы frmIzvesheniy_Vvod запишите код
Visual Basic
1
2
3
Private Sub Form_Load()
    Me.ФИО_Разработчика = DLookup("idsКодСотрудника", "tblEnter1")
End Sub
Цитата Сообщение от ankan Посмотреть сообщение
Приложение аксес у пользователя должно открываться не формой "fEnter" а сразу формой "fEnter1"
Меню Файл-Параметры-Текущая база данных-Форма просмотра - напишите fEnter1

Остальное не понял. Не увидел где в форме frmIzvesheniy можно менять статус. Соответственно, дальше уже не смотрел
1
46 / 31 / 1
Регистрация: 28.09.2012
Сообщений: 974
25.07.2013, 15:00  [ТС]
mobile, Вставил код VBA, все получилось, единственное при открытии формы frmIzvesheniy_Vvod сразу образуется запись( даже без вставки значений в поля).Это не критично, но жалко зазря использованного кода tblIzvesheniy

В аксесс 2003 в меню "Файл" нет вкладки "Параметры"
Вкладка "Параметры" есть в "Сервис", но в ней нет "Форма просмотра". Поэтому Вашу рекомендацию не внедрил.

По поводу самопроизвольно меняющегося статуса- то в форме frmIzvesheniy есть раскрывающийся список Код_tblCtatyc_Izv ( в правом углу) в котором можно менять статус. Я кое - какие изменения внес, посмотрим, может проблема с самопроизвольно меняющимся статусом решена.

Сгенерированное Вами решение по повторному запуску приложения без ввода пароля в примере работает , но в разделенной БД ( в реальных условиях ) не работает - требует пароль !
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
25.07.2013, 19:44
ankan, чтобы не возникакла новая запись, немного переделайте код. Вместо присваивания значения контролу, можно установить для него значение по умолчанию
Visual Basic
1
Me.ФИО_Разработчика.DefaultValue = DLookup("idsКодСотрудника", "tblEnter1")
О стартовой форме. Для А2003: меню Сервис-Параметры запуска-Вывод формы/страницы

О статусе извещений. Для поля со списком Код_tblCtatyc_Izv формы frmIzvesheniy_Vvod свойство Enabled (Доступ) установлено в Нет. Я конечно могу поменять доступ на Да, но вы ведь из каких-то соображений запретили доступ к этому полю. Или я опять не на тот контрол смотрю?

Добавлено через 1 минуту
Цитата Сообщение от ankan Посмотреть сообщение
Сгенерированное Вами решение по повторному запуску приложения без ввода пароля в примере работает , но в разделенной БД ( в реальных условиях ) не работает - требует пароль !
Совершенно не понял о чем это...
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, может нужно выделить этот вопрос в отдельную тему?
Вложения
Тип файла: rar Извещения_24.07.2012.rar (300.2 Кб, 20 просмотров)
0
 Аватар для VinniPuh
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
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
30.07.2013, 15:11
ankan, проблема с датой не более чем проблема форматов. Дата, в каком бы она представлении ни была, это все тот же тип Double - число с плавающей запятой, где целая часть количество дней от 31.12.1899, а мантисса доля суток с точностью до секунд. И если где-то не помещается дата с 4-значным годом, то мой совет переделать в этих местах дату для 2-значного года. Для всех. Дата от этого не изменится.
1
 Аватар для VinniPuh
9131 / 6141 / 593
Регистрация: 27.03.2013
Сообщений: 20,006
30.07.2013, 15:14
ankan - А может стоит попробовать уменьшить масштаб в клеточке чертехей. Кстати, в чем, в ком делаются чертежи??? Скиньте примерчик, если в компасе, то там вроде можно задать в табличеке масштаб для каждой ячейки, правда из акса ни разу не пробовал, нужно репку почесать КАК , или вы имеете в виду что то другое?
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
30.07.2013, 15:15
Насчет масок ввода. В таблицах точно не стоит указывать. В формах? Это вопрос удобств. Если пользователям удобнее с маской, дайте им маску. Но лично я стараюсь масок не применять (за исключением особых случаев). От нее чаще больше хлопот, чем реальной пользы. Маска хороша, где есть длинная постоянная часть, а где-то в середине надо прописывать изменения. Это не случай даты.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.07.2013, 15:15
Помогаю со студенческими работами здесь

Значение поля по умолчанию
Есть нескольно полей. asd и qwe надо чтоб если asd = 1 то qwe :=5 Как это реализовать? Я пробовал: if =1 then :=5 if =1 then 5 ...

Значение поля формы по умолчанию
Как поменять значение поля формы по умолчанию после нажатия ентер или потери фокуса? (что бы в свойствах поля это значение осталось)

Значение по умолчанию из другого поля
Все доброго времени суток. Вопрос вроде простой, но сам не решил, изрыл гугл и форум, но ничего похожего не нашел. Есть таблица, два...

Значение по умолчанию поля со списком
Добрый день. Мне кажется, что я делаю что-то не так. Реализована форма входа в БД, путем несложных преобразований я получаю UserName...

Значение по умолчанию из другого поля
Добрый день! Хочу сделать в форме, чтобы вводя некоторое значение в поле, к которому уже привязана некоторая дата, в другом поле...


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

Или воспользуйтесь поиском по форуму:
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 позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru