Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Microsoft Office и VBA > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 11.11.2011, 07:50   #1
Казанский
Профессионал
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,001
Репутация: 741
Вопрос Запретить изменение существующих данных в таблице

Привет!
Есть проект, который состоит из базы данных .mdb и интерфейса с формами .mde, все в формате Access 2000. Нужно запретить изменение существующих данных через форму, но при этом желательно оставить возможность создания новой записи.
Проблема в том, что исходника .mde нет, так что конструктор форм недоступен. Что можно сделать с таблицей?

Например, в таблице есть поле "Дата", у существующих данных все даты прошлые. Можно ли сделать так, чтобы при изменении ЛЮБОГО ПОЛЯ записи это поле сравнивалось с текущей датой? Если я ставлю условие на значение =Date(), то после изменения этого поля, при попытке сохранения записи ошибка, конечно, возникает, но как сделать, чтобы она возникала после изменения любого поля?
Может, можно создать какой-то макрос на событие сохранения записи?

Все это нужно как временная мера, чтобы показать аудиторам, что наша БД защищена - позволяет создавать новые записи, но не позволяет изменять уже созданные.

Выручайте!

PS Сервис - Защита - Разрешения. Все галки снял, но по-прежнему могу делать с таблицей что угодно. Почему? Защита работает только с паролем, что ли? Но если ставлю пароль, .mde не получает доступ к БД

Последний раз редактировалось Казанский; 11.11.2011 в 08:57.
Казанский вне форума   Ответить с цитированием
Старый 11.11.2011, 09:10   #2
Woodlin
Форумчанин
 
Регистрация: 30.03.2010
Адрес: Россия, Челябинская обл., г. Пласт
Сообщений: 153
Репутация: 34

icq: 487781187
По умолчанию

Казанский, приветствую.
Может я очень ошибаюсь, если так пусть более опытные коллеги поправят. Насколько помню где то натыкался на статейку, что если к примеру какой то пользователь первым открыл свою интерфейсную часть с определённой политикой блокировок записей, то настройки интерфейсных частей пользователей, подключившихся позже уже по барабану.
В общем попробуйте быстренько состряпать форму с запретом изменений записей, откройте её, а потом подключите интерфейсную часть и с неё попробовать изменить данные.
Woodlin вне форума   Ответить с цитированием
Старый 11.11.2011, 11:33   #3
Казанский
Профессионал
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,001
Репутация: 741
По умолчанию

Woodlin,

действительно работает, но проблема в том, что если я ставлю

разрешить изменение... нет
разрешить добавление... да
блокировка записей... всех записей

, то у другого юзера в полях формы вообще невозможно редактирование и создание новой записи.
А если я ставлю блокировка записей - Изменяемой записи, то другой юзер может все менять, даже открытую тут запись.

В общем, острота проблемы исчезла, аудитора убедили, что так оно и должно быть для работы
Казанский вне форума   Ответить с цитированием
Старый 11.11.2011, 11:58   #4
Woodlin
Форумчанин
 
Регистрация: 30.03.2010
Адрес: Россия, Челябинская обл., г. Пласт
Сообщений: 153
Репутация: 34

icq: 487781187
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
... но проблема в том, что если я ставлю

разрешить изменение... нет
разрешить добавление... да
блокировка записей... всех записей

, то у другого юзера в полях формы вообще невозможно редактирование и создание новой записи.
А если я ставлю блокировка записей - Изменяемой записи, то другой юзер может все менять, даже открытую тут запись...
вот оно как оказывается, без побочных эффектов никуда.
Woodlin вне форума   Ответить с цитированием
Старый 11.11.2011, 13:26   #5
Казанский
Профессионал
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,001
Репутация: 741
По умолчанию

Хотел так сделать: добавить в таблицу текстовое поле и вписать туда сцепленные значения полей, которые надо контролировать. В условие на значение вписать
Код:

"" Or [Date] & [SerialNumber] & и т.д.

Смысл такой: если одно из сцепленных полей меняется - условие не выполняется и запись не сохраняется. У новой записи поле пустое и оно удовлетворяет условию.

Но получил ошибку "Недопустимый синтаксис SQL - невозможно использовать несколько столбцов в ограничении CHECK уровня столбца."
Может, можно как-то обойти эту ошибку?
Казанский вне форума   Ответить с цитированием
Старый 11.11.2011, 13:49   #6
Woodlin
Форумчанин
 
Регистрация: 30.03.2010
Адрес: Россия, Челябинская обл., г. Пласт
Сообщений: 153
Репутация: 34

icq: 487781187
По умолчанию

Я с форматом mde никогда не работал, помочь ничем не смогу.
Мне интересно, в формате mde вообще нельзя редактировать формы, отчёты, модули, макросы? Или всё же новые объекты, к примеру формы, можно добавить?
Woodlin вне форума   Ответить с цитированием
Старый 11.11.2011, 14:02   #7
gluk_fm
Участник клуба
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Адрес: Киев
Сообщений: 515
Репутация: 24
По умолчанию

Если как временная мера для вида - то посоветовал бы всётаки запаролить или побалываться с параметрами защиты админ - юзер.
gluk_fm вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение данных в одной таблице, с последующими заменами в другой. Delphi, ADO. RuthlessD БД в Delphi 5 17.06.2011 13:34
Запретить изменение форматов Psisa Microsoft Office Excel 15 10.11.2010 12:19
Изменение данных в таблице через форму. Blah Blah Помощь студентам 2 07.04.2010 16:04
Запретить изменение размеров формы larin1974 Общие вопросы Delphi 9 12.09.2009 20:27
Изменение данных в таблице access AD_min БД в Delphi 2 27.10.2008 13:23


01:17.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru