Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/22: Рейтинг темы: голосов - 22, средняя оценка - 4.91
Эксперт MS Access
2841 / 1381 / 217
Регистрация: 13.05.2011
Сообщений: 4,224

Запрет изменения записи

30.10.2013, 11:07. Показов 4778. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Возникает такая проблема. В таблицу, через форму, заносятся данные. Записей соответственно много. Необходимо, чтобы на некоторых записях нельзя было делать изменения или вообще ее удалять. Я сделал логическое поле [Не_удалять]. Вопрос: как запретить изменение и удаление записи, если поле[Не_удалять] = True. Если можно, то покажите на примере. Пример ниже. Спасибо.
Вложения
Тип файла: rar Пример.rar (23.1 Кб, 53 просмотров)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.10.2013, 11:07
Ответы с готовыми решениями:

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

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

Запрет изменения отображения формы при движении по записям
Есть форма Form1. На ней подчиненная форма Form1_1 в режиме таблицы. В коде vba осуществляется следующее движение по записям: ...

7
3357 / 1776 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
30.10.2013, 11:12
Только если программно в форме проверять.
0
Эксперт MS Access
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
30.10.2013, 11:58
Цитата Сообщение от Вячеслав Я Посмотреть сообщение
Вопрос: как запретить изменение и удаление записи, если поле[Не_удалять] = True.
В событии формы Текушая запись (Current) и на событии После обновления (AfterUpdate) чекбокса Не_удалять напишите код
Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub Form_Current()
    Me.AllowDeletions = Not Me.Не_удалять
    Me.AllowEdits = Not Me.Не_удалять
End Sub
 
Private Sub Не_удалять_AfterUpdate()
    Me.AllowDeletions = Not Me.Не_удалять
    Me.AllowEdits = Not Me.Не_удалять
End Sub
2
Эксперт MS Access
2841 / 1381 / 217
Регистрация: 13.05.2011
Сообщений: 4,224
30.10.2013, 13:32  [ТС]
Спасибо! Все четко работает.
0
Эксперт MS Access
2841 / 1381 / 217
Регистрация: 13.05.2011
Сообщений: 4,224
16.11.2013, 20:47  [ТС]
Все работает хорошо. Но есть один большой минус. Раньше (пока не записал Ваш код) форма "Учет отработанного времени изменения1" открывалась пустая и при заполнении в верхней части полей (они у меня как фильтр) в которые вводятся Год и месяц, Фамилия, Имя и Отчество при нажатии кнопки Обновить в нижней части выводятся данные про работника за данный период.
Сейчас при открывании формы "Учет отработанного времени изменения1" вылетает сообщение Invalid use of Null. Нажимаю ОК и продолжаю работать далее нормально. Вся беда в том, что мои пользователи работают в RunTime и у них при открывании сообщение не вылетает, а программа закрывается полностью без комментариев. Не могу прицепить фото формы и предупреждения для наглядности (внутренняя ошибка сервера).

P.S. Выяснил, что если убрать вильтры по фамилии, имени и отчеству, то все работает нормально. Вот код фильтра (ужасно длинный, но так надо):
((([Учёт отработанного времени изменения1].[Год_и_месяц_Накладные]=[Формы]![Учёт отработанного времени изменения1]![Год_и_месяц1]))) AND ([Учёт отработанного времени изменения1].[Фамилия]=Формы![Учёт отработанного времени изменения1]!Фамилия1 or [Учёт отработанного времени изменения1].[Фамилия]=Формы![Учёт отработанного времени изменения1]!Фамилия1 is null) AND ([Учёт отработанного времени изменения1].[Имя]=Формы![Учёт отработанного времени изменения1]!Имя1 or [Учёт отработанного времени изменения1].[Имя]=Формы![Учёт отработанного времени изменения1]!Имя1 is null) AND ([Учёт отработанного времени изменения1].[Отчество]=Формы![Учёт отработанного времени изменения1]!Отчество1 or [Учёт отработанного времени изменения1].[Отчество]=Формы![Учёт отработанного времени изменения1]!Отчество1 is null)

Спасибо!
0
Эксперт MS Access
2841 / 1381 / 217
Регистрация: 13.05.2011
Сообщений: 4,224
19.11.2013, 20:24  [ТС]
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
Private SUB Form_Current()
    Me.AllowDeletions = NOT Me.Не_удалять
    Me.AllowEdits = NOT Me.Не_удалять
END SUB
 
Private SUB Не_удалять_AfterUpdate()
    Me.AllowDeletions = NOT Me.Не_удалять
    Me.AllowEdits = NOT Me.Не_удалять
END SUB
Добавлено через 12 минут
Извеняюсь! На верху ошибка. Вот, что должно быть:

А можно еще вопрос: а как сделать, чтобы нельзя было изменять запись в форме, если стоит ИСТИНА хотя бы одного из логических полей [Не_удалять] или [Отгул]? Я дополнил код вот так. На ИСТИНУ в поле [Отгул] не реагирует.

Private Sub Form_Current()
Me.AllowDeletions = Not Me.Не_удалять
Me.AllowEdits = Not Me.Не_удалять

Me.AllowDeletions = Not Me.Отгул
Me.AllowEdits = Not Me.Отгул
End Sub

Private Sub Не_удалять_AfterUpdate()
Me.AllowDeletions = Not Me.Не_удалять
Me.AllowEdits = Not Me.Не_удалять
End Sub

Private Sub Отгул_AfterUpdate()
Me.AllowDeletions = Not Me.Отгул
Me.AllowEdits = Not Me.Отгул
End Sub
Подскажите: в чем ошибка?
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
19.11.2013, 21:27
Лучший ответ Сообщение было отмечено mobile как решение

Решение

Вячеслав Я, попробуйте так
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Form_Current()
Me.AllowDeletions = Not (Me.Не_удалять Or Me.Отгул)
Me.AllowEdits = Not (Me.Не_удалять Or Me.Отгул)
End Sub
 
Private Sub Не_удалять_AfterUpdate()
Form_Current
End Sub
 
Private Sub Отгул_AfterUpdate()
Form_Current
End Sub
1
Эксперт MS Access
2841 / 1381 / 217
Регистрация: 13.05.2011
Сообщений: 4,224
20.11.2013, 09:41  [ТС]
спасибо! Сработало!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.11.2013, 09:41
Помогаю со студенческими работами здесь

Запрет изменения свойств форм и таблиц (про безопасность)
Доброго времени суток! Взяла меня паника. Вот у меня 10 пользунов пользуются базой, всем делаю личные файл-клиенты. работаем в 2016...

Запрет на повторяющиеся записи
Здравствуйте! Подскажите пожалуйста, как сделать, чтобы запись не записывалась (и выводилась "Данная запись существует"), если...

Запрет на изменение/удаление записи
Как в форме ввести запрет на удаление/изменение существующих записей, но при этом дать возможность ввода новых?

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

Запрет изменения даты
Здравствуйте уважаемые Гуру. Есть обработка реализующая печать чеков за текущую дату. Проблема в том, что заведение закрывается в 3.00,...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru