2011-12-28 1 views
1

Я разработал систему, в которой группа пользователей (около 50 человек прямо сейчас) регистрирует данные и постоянно просматривает зарегистрированные данные. Система хранит данные в базе данных Access, и в настоящее время я использую режим adModeShareDenyNone для всех пользователей, чтобы база данных никогда не блокировала доступ к базе данных.Есть ли способ открыть общее доступное только для чтения подключение к базе данных Access Access с использованием ADO?

Однако было прошено, чтобы я разработал простой рабочий лист Excel, действующий как интерфейс, в котором пользователь может написать оператор выбора sql, а затем извлекать данные на листе в соответствии с этим (через VBA). Это очень просто, и я создал такой, однако я хочу, чтобы он предотвратил выполнение манипулятивных утверждений (вставка, обновление, удаление), то есть действует как система только для чтения.

Однако я не могу найти способ сделать это, не забирая базу данных для другого пользователя, а это не значит, что база данных постоянно используется несколькими пользователями. Есть ли способ сделать то, что я хочу? Я думал о других режимах подключения, но все они (помимо adModeShareDenyNone), похоже, применяют какую-то блокировку.

+0

Чтобы уточнить, пользователь вводит свой собственный оператор SQL? Если да, не можете ли вы просто проверить или ограничить строку через VBA, прежде чем разрешить ее выполнение? – joshua9k

ответ

1

Что относительно adModeRead? Это указывает на разрешения только для чтения и отсутствие общего доступа.

+0

+1 Совершенно верно, соединение read_only является ответом, это также должно избегать любых проблем с блокировкой –