Страницы: 1
RSS
Подключение БД Access к Excel, с контролем доступа
 
Уважаемые форумчане, такой вопрос:

Есть таблица в Access. Вопрос в том, чтобы иметь возможность подключить ее к Excel. Разрешить одновременную работу с базой нескольким пользователям. Каждый чтобы мог загружать локальной экселевский файлик и далее в нем ковырять и записывать в базу.
Т.е. загрузить в Excel базу Aceess в таком же виде табличном, как она в Access и представлена.
Но при этом логгировать действия пользователей (по-возможности) и сделать запрет на изменение определенных диапазонов (либо столбцов).

Как это вообще делается? Со связкой Access + Excel ранее не сталкивался, только с Excel.

Нашел тут пример, но как решить вопрос с ведением лога, общим доступом к базе из локального файла и запретом на изменение некоторых столбов?
Изменено: w00t - 26.02.2016 11:47:30
 
Цитата
w00t написал:
Разрешить одновременную работу с базой нескольким пользователям
- для небольшого кол-ва пользователей и лучше и проще - прямо в акцесс
Цитата
w00t написал:
загружать локальной экселевский файлик и далее в нем ковырять и записывать в базу
- загружать - да, можно (с пом. DAO, ADO, MS Query);
- в нем ковырять - да, можно;
- записывать в базу - нет, скорее всего - "нахлебаетесь", лучше и проще это делать прямо в акцесс
Цитата
w00t написал:
Т.е. загрузить в Excel базу Aceess в... и далее - до конца
- "с наскоку" - точно не сделаете. логгирование, запреты на диапазоны и столбцы - ... в акцессе нет диапазонов, нет номеров записей... В общем, я в свое время намучился и не советовал бы. Редактирование записей лучше делать в самом акцессе

В акцесс до 2007 была возможность защиты на уровне пользователя. Сейчас осталась защита только на уровне БД. Логгирование стало гораздо проблематичнее.
Именно поэтому многие не хотят переходить на А-2007 и выше.

PS Всё написанное - лично мое мнение, лично мной "выстраданное" :)
Изменено: Михаил Лебедев - 26.02.2016 11:55:21
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Понял Вас. Можно тогда еще проконсультироваться? Может не вижу просто правильного и простого решения. Нужно сделать так, чтобы несколько человек отредактировали (имели возможность как вручную править, так и формулы наподобие ВПР или ИНДЕКС/ПОИСКПОЗ использовать для  сравнения с другими своими файлами*) файлик в экселе, который будет размещен на SharePoint (либо куда-то в сетевое местоположение). И сделать им запрет на изменение некоторых диапазонов (это просто решить штатными средствами экселя).

Другое дело, что сводить потом придется приличное количество файликов, если каждый будет работать с локальной копией. Поэтому хотелось бы дать совместно поработать над одним.

Т.е. в моем случае эксель решает вопрос: общая книга позволит отследить изменения. Можно запретить изменение некоторых столбов. Но как дать им возможность ковырять общую большую базу (база размера подходящего для PowerPivot, но не вполне для стандартных ограничений Excel).

*т.е. в общем могут применять формулы и тянуть со своих вспомогательных файлов данные, а потом в итоге естественно убирают формулы (делают копи/паст как значений).
Изменено: w00t - 26.02.2016 12:19:06
 
Не работал с Share Point. Всегда обходился локальной сетью. М.б. кто-то из планетян подключится и что-то посоветует по теме Share Point?
У меня возникли вопросы:
Цитата
w00t написал:
несколько человек отредактировали файлик в экселе, который будет размещен на SharePoint
и
Цитата
w00t написал:
Другое дело, что сводить потом придется приличное количество файликов, если каждый будет работать с локальной копией
1. Зачем Вам несколько файликов ексель, если "...запрет на изменение некоторых диапазонов... ...просто решить штатными средствами экселя..."?
2. Отсюда вытекает второй вопрос. Зачем сводить приличное кол-во файлов, если изначально будет один?
3. У Вас база акцесс уже есть? Спросил, потому что при создании БД сразу предлагается сделать в виде Web-приложения с размещением на Share Point и т.п.

А вообще - если у Вас будет итоговый файл ексель со всеми внесенными изменениями - его всегда можно вернуть в БД. Конкретнее - нужен конкретный пример БД. А пока - сплошная теория :)
У локальной базы - больше возможностей, у web-базы - возможность размещения в инете
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Да, пока действительно теория. Попытался представить просто совместную работу большого количества юзеров - от 10 до 50 (у которых навыки только с экселем есть) с очень большим файлом (файл пока что в эксель, стандартная табличка, разве что на 500 тысяч строк и 50 столбов).

Наверное, логичнее сделать общую книгу в эксель тогда, чем подтягивать из Access. Тем более, что, как понял, действительно будет сложно реализовать (если БД подключать к экселевскому файлу):

1. Ведение лога изменений БД;
2. Запрет изменения определенных областей (режим "только чтение") - хотя бы этот пункт, если с первым вообще не вариант.

Какова была логика: загрузить файл на sharepoint, предоставить ссылку и далее - пусть все внесут свои изменения в файл (а с файлом каждый юзер может выполнять разные действия, к примеру ВПР на все 500 тысяч строк с другим своим локальным экселевским фаликом). Просто с файлом каждый будет работать локально, а не через интернет-браузер. Поэтому и задумался - как лучше осуществить - тянуть из access и потом записывать в базу, или забить на sharepoint (не морочиться и сделать просто общую книгу excel). С учетом того, что хотелось бы вести и лог изменений и запретить менять некоторые области.
Изменено: w00t - 27.02.2016 20:46:21
 
Во все не вникал. Но делал как-то симбиоз БД с Excel. Все действия с БД производились из Excel. Каждый пользователь работал в своей копии файла программы(файл Excel с кодом). При открытии файла выходило окно авторизации и в зависимости от пользователя выгружались доступные только этому пользователю данные из БД. Следовательно он работал только с разрешенными ему столбцами и имел возможность делать только то, что доступно для группы пользователей, в которую он входит(только чтение, добавление данных, редактирование существующих, изменение прав доступа и пр.).
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Угу, нашел похожую тему (для Access). Правда теперь понимаю, что есть существенный минус. Нет возможности запретить/разрешить работу с конкретной "ячейкой" или "диапазоном" БД (в акцессе; в экселе получится - но код в модуле разрастется). И, вызывая обращение из экселя к БД - каким образом вести лог пользовательских действий (записывать на сервер в ту же базу к примеру, в отдельную таблицу)?

То есть пока логичнее для моих целей оставить экселевскую версию в общем доступе. Представил просто трудозатраты того, что нужно сделать и не уверен в необходимости использования подключения к БД Access для случая "чтобы пользователи, которые только более-менее понимают эксель, внесли свои корректировки в одну базу данных, используя методы и средства экселя". В общем, понял, нужно будет подумать, потому как обычно логично Excel данные в Access, но не наоборот. Наоборот, так понимаю, - "неканонично", если мягко выразиться.
Страницы: 1
Читают тему
Наверх