Добрый день,
Подскажите пожалуйста, каким образом можно реализовать на Access 97 модель работы с данными, что бы люди, могли вносить информацию в базу, но не знали где храниться все данные. А лишь могли только вносить информацию, и редактировать только лично внесенную информацию. Без возможности просмотра внесенных данных другими. И уж тем более коррекции чужой информации.
По сути, могу организовать структурное хранение, сделать связи между данными. А вот распределение доступа по вводу информации, не знаю каким образом можно осуществить.
Есть такая идея, можно ли как то через Excel настроить макрос, который записывал бы в определенные таблицы в указанную базу, но и благодаря запросам, позволял бы редактировать данные. Внесенные этим же юзером.
Клиент Серверная работа в Access
Модератор: Naeel Maqsudov
-
- Сообщения: 163
- Зарегистрирован: 05 мар 2009, 11:27
Можете пожалуйста привести пример, подключения макросом к имеющейся базе данных. Access 97.
И добавление значений в ячейках ексель, в указанную табличку в Access. Это очень помогло бы в моей задачке.
Заранее благодарю !
И добавление значений в ячейках ексель, в указанную табличку в Access. Это очень помогло бы в моей задачке.
Заранее благодарю !
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Пользователям нужно дать форму в которой свойство "Ввод данных" = true
Такая форма не позволяет видеть уже имеющиеся данные, а только вводить и редактировать новые.
Редактирование разрешено только для записей которые только что введены. После переоткрытия формы эти записи такде станут недоступными.
В Access 97/2000 пока еще можно настраивать разные права для разных пользотелей и админитрировать рабочую группу Access, но в более поздних версиях эта возможность упразднена. (Кажется мы с Вами уже обсуждали тут эту тему) Т.е. даже если эта форма будет открываться автоматически, пользователи, открывая БД с клавишей shift, увидят все объекты БД и смогут посмотреть сырые данные в таблице.
Можно поступить еще таким образом: создать новую БД, создать там таблицу, как связь с целевой таблицей в основном хранилище. Затем установить этой таблице атрибут "Скрытая" (см. свойства таблицы). Ну а затем создать форму с "Ввод данных"=true. Т.е. получится БД как бы с единственным объектом - формой, которая по связи смотрит на основную БД. Показ скрытых объектов по умолчанию всегда выключен... Но это тоже не бог весть какая защита.
Записывать данные макросом просто. Есть много способов. Если у вас компьютеры в сети разнородны, то проще всего будет сделать так
Т.е. не открывая явно датасет, а используя SQL: INSERT INTO
Такая форма не позволяет видеть уже имеющиеся данные, а только вводить и редактировать новые.
Редактирование разрешено только для записей которые только что введены. После переоткрытия формы эти записи такде станут недоступными.
В Access 97/2000 пока еще можно настраивать разные права для разных пользотелей и админитрировать рабочую группу Access, но в более поздних версиях эта возможность упразднена. (Кажется мы с Вами уже обсуждали тут эту тему) Т.е. даже если эта форма будет открываться автоматически, пользователи, открывая БД с клавишей shift, увидят все объекты БД и смогут посмотреть сырые данные в таблице.
Можно поступить еще таким образом: создать новую БД, создать там таблицу, как связь с целевой таблицей в основном хранилище. Затем установить этой таблице атрибут "Скрытая" (см. свойства таблицы). Ну а затем создать форму с "Ввод данных"=true. Т.е. получится БД как бы с единственным объектом - формой, которая по связи смотрит на основную БД. Показ скрытых объектов по умолчанию всегда выключен... Но это тоже не бог весть какая защита.
Записывать данные макросом просто. Есть много способов. Если у вас компьютеры в сети разнородны, то проще всего будет сделать так
Код: Выделить всё
Sub qwe()
Set dbe = CreateObject("DAO.DBEngine.36")
Set db = dbe.OpenDatabase("D:\Path\Datafile")
db.Execute ("insert into t1 values(123)")
End Sub
-
- Сообщения: 163
- Зарегистрирован: 05 мар 2009, 11:27
Спасибо, Naeel Maqsudov !!Naeel Maqsudov писал(а):Пользователям нужно дать форму в которой свойство "Ввод данных" = true
Такая форма не позволяет видеть уже имеющиеся данные, а только вводить и редактировать новые.
Редактирование разрешено только для записей которые только что введены. После переоткрытия формы эти записи такде станут недоступными.
В Access 97/2000 пока еще можно настраивать разные права для разных пользотелей и админитрировать рабочую группу Access, но в более поздних версиях эта возможность упразднена. (Кажется мы с Вами уже обсуждали тут эту тему) Т.е. даже если эта форма будет открываться автоматически, пользователи, открывая БД с клавишей shift, увидят все объекты БД и смогут посмотреть сырые данные в таблице.
Можно поступить еще таким образом: создать новую БД, создать там таблицу, как связь с целевой таблицей в основном хранилище. Затем установить этой таблице атрибут "Скрытая" (см. свойства таблицы). Ну а затем создать форму с "Ввод данных"=true. Т.е. получится БД как бы с единственным объектом - формой, которая по связи смотрит на основную БД. Показ скрытых объектов по умолчанию всегда выключен... Но это тоже не бог весть какая защита.
Записывать данные макросом просто. Есть много способов. Если у вас компьютеры в сети разнородны, то проще всего будет сделать такТ.е. не открывая явно датасет, а используя SQL: INSERT INTOКод: Выделить всё
Sub qwe() Set dbe = CreateObject("DAO.DBEngine.36") Set db = dbe.OpenDatabase("D:\Path\Datafile") db.Execute ("insert into t1 values(123)") End Sub
Буду пробовать! Защиту данных необходимо произвести на очень простом уровне. И я уже придумал как я это сделаю !!!
я создам для каждой зоны ответственности, свой подкаталог на сетевом диске. И назначим доступ только к определенному под каталогу. В каждом подкаталоге, как Вы предложили, создам базу с формой работы, и связанной таблицей к форме. Каждый будет работать только лишь со своими данными. Но на этом же уровне, создам подкаталог, где создам консолидированную базу, со связями всех этих "мини-баз данных". И что бы увидеть всю информацию в одном месте, нужно иметь доступ ко всем вложенным подкаталогам, чего никому сделано не будет, кроме заинтересованных лиц.
ОГРОМНОЕ СПАСИБО ЗА СОВЕТ!!! думаю это сработает !!!