Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Нужна идея по организации многопользовательской mdb / 25 сообщений из 53, страница 1 из 3
05.06.2004, 13:52:54
    #32549570
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
Может кто поможет советом?
Есть многопользовательская база mdb, у нее около пяти пользователей.
Как сделать, чтобы каждый пользователь работал только со своими данными, т.е. есть четыре оператора, и каждый работает только с теми данными, которые он набил, есть один главный оператор, у которого есть доступ ко всем данным всех четырех операторов и + он тоже может набивать данные только для себя.
Как организовать такой ввод?

Конечно есть идея сделать 5 отдельных таблиц для всех пяти операторов и потом все данные сливать в одну общую таблицу, но наверно это как-то глупо.
Например завтра появится шестой оператор и что, ему еще одну таблицу заводить надо будет?

Как сделать, чтобы каждый оператор работал только со своими данными?
...
Рейтинг: 0 / 0
05.06.2004, 14:01:13
    #32549574
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
ну и сделай ключ в таблице ID оператора
а чтобы не лезли через таблицы - mde и убери окна базы
Shift я бы оставил если оператор умный против него нет приема
...
Рейтинг: 0 / 0
05.06.2004, 14:16:14
    #32549586
Omar_K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
У меня тоже такая есть необходимость есть 5 юзеров они заводят в форму данные которые потом инсертятся в общую таблицу правда ключ юзера не нужен мне. Вопрос такой
на кнопку я вешаю
CurrentDB.Execute Insert......Me!Combo
так вот если допустим mde будет лежать где-нить в сетевой папке и они все одновременно открывают этот файл и вводят данные. Могу ли я быть уверенным что после отработки процедуры онклик все записи нормально заинтесртятся, то есть не будет там всяких конфликтов
...
Рейтинг: 0 / 0
05.06.2004, 14:21:26
    #32549589
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
автор
то есть не будет там всяких конфликтов

зависит от устройства ключа в этой таблице ксли счетчик то OK
проблема будет когда оператору надо понять где на экране(списке) то что ввел он , а где сосед
...
Рейтинг: 0 / 0
05.06.2004, 14:31:08
    #32549596
Omar_K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
Ключ у меня счетчик, тогда может добавить таблицу юзеров ID Name например и добавить в главной таблице поле IDOperator.А форме комбо с фамилиями юзеров? Но тогда он может выбрать соседа и под ним забивать? есть ли в Аксе какой нибудь инструмент который бы инсертил бы код оператора(именно того под каким логином он зашел в базу) в таблицу, и еще как вобще можно сделать авторизацию юзеров в плане при запуске приложения выскакивает бокс с двумя полями логин и пароль?
...
Рейтинг: 0 / 0
05.06.2004, 15:29:01
    #32549615
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
2 Shuhard:
авторну и сделай ключ в таблице ID оператора
Т.е. сделать пять ключевых полей, по ключевому полю на каждого оператора?
Или я неправильно понял?
...
Рейтинг: 0 / 0
05.06.2004, 15:37:47
    #32549622
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
автор
Т.е. сделать пять ключевых полей, по ключевому полю на каждого оператора?
Или я неправильно понял?

одно(1,ОДЫН ДА) дополнительное поле содержащие Id оператора
+ табличка соответствия Id оператора его Nickу

соответственно запросы на выборку несут в where ... Id=Id_конкретного оператора
...
Рейтинг: 0 / 0
05.06.2004, 15:43:08
    #32549624
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
То Omar_K
автор
А форме комбо с фамилиями юзеров? Но тогда он может выбрать соседа и под ним забивать

способов много если проект mdb+mdb
то я кидаю на каждой машине поглубже в windows\system32 mdbу c 1 таблицей одним полем - Id оператора

если вопросу ДСП и коммерческой тайны то деоай стандартную как минимум защиту и привязывайся к User в Access(см конфа+фаги)


авторизовать можно своими средствами но лучше встроенными в Access
(сам использую в таких случаях Sql 2000 и знания по mdb гипотетические)
...
Рейтинг: 0 / 0
05.06.2004, 23:10:43
    #32549744
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
Хорошо, у меня в моих данных есть поле №пользователя (т.е. для каждого поля, занесенного пользователем есть числовое поле №пользователя), есть талбица соответствия №пользователя и имени_пользователя, сделал форму для ввода №пользователя и имени_пользователя, а как теперь сделать, чтобы у пользователя при вводе данных для каждой записи автоматически заносился в таблицу номер, который он ввел первоначально в поле №пользователя?

Как?
...
Рейтинг: 0 / 0
05.06.2004, 23:17:21
    #32549749
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
Не знаю, сработает ли как DefaultValue; если нет, то через BeforeInsert:

Код: plaintext
dlookup("№пользователя","талбица","имяпользователя='" & currentuser() & "'")
...
Рейтинг: 0 / 0
05.06.2004, 23:24:48
    #32549751
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
dlookup , для многопользовательской базы ? ? ?
Когда записей будет, хотя бы 10000, то база уже будет очень медленно работать!
К сожалению, наверно этот способ не подойдет.

А можно как-то программно сделать "значение по умолчанию", для поля, ведь если пользователь ввел свой идентификатор, то наверно можно использовать это значение по умолчанию, для поля №пользователя , для тех записей которые вводит именно он?
Или я не прав?
...
Рейтинг: 0 / 0
05.06.2004, 23:30:02
    #32549753
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
dlookup будет тормозить, если к нему обращаться в запросе. Если всего одно обращение за операцию, то это не страшно.

В принципе, можно так: сразу после входа посчитать это число по той же моей формуле, занести в глобальную переменную и потом уже брать из этой переменной, а не запускать каждый раз dlookup.
...
Рейтинг: 0 / 0
05.06.2004, 23:33:44
    #32549754
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
авторпосчитать это число по той же моей формуле, занести в глобальную переменную и потом уже брать из этой переменной
Саныч, я же только учусь, я еще не такой умный и не знаю, как это сделать.

Можно, PLS, немного поподробнее, как это сделать.

P.S. А идея - супер.
...
Рейтинг: 0 / 0
05.06.2004, 23:38:23
    #32549756
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
В каждой базе есть либо макрос по имени AutoExec, в котором указано, какую подпрограмму исполнять при запуске, либо форма, которая открывается первой и у которой есть OnOpen и OnLoad. Вот где-нибудь среди этого кода и пишем:

nCurUser = dlookup...

где nCurUser - это переменная, описанная как Integer или лучше Long. Дальше. Создаем где-нибудь функцию:

public function CurUserNumber()as long
CurUserNumber=nCurUser
end function

И в DefaultValue соответствующего текстбокса пишем:

=CurUserNumber()
...
Рейтинг: 0 / 0
07.06.2004, 16:31:22
    #32551109
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
Все работало бы нормально, но у меня запрос с параметрами.
и соответветственно строка
Код: plaintext
nCurUser = DLookup("[№пользователя]", "запрос_пароль", "[имя_пользователя]='" & CurrentUser() & "'")
не работает, т.к. у меня есть запрос_пароль вида:
Код: plaintext
1.
2.
SELECT тбл_пароль.имя_пользователя, тбл_пароль.№пользователя
FROM тбл_пароль
WHERE (((тбл_пароль.имя_пользователя)=[p1]) AND ((тбл_пароль.№пользователя)=[p2]));
Что в DLookup написать, чтобы Access переваривал запрос с параметрами?
...
Рейтинг: 0 / 0
07.06.2004, 21:36:24
    #32551518
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
Хотя бы намекните, пожалуйста, в какую сторону копать?
...
Рейтинг: 0 / 0
07.06.2004, 21:58:41
    #32551527
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
Не переварит. Нужен запрос без параметров.
...
Рейтинг: 0 / 0
07.06.2004, 22:06:33
    #32551530
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
2 ВС:
Спасибо.

2 Сам себе:
Я озадачен.
...
Рейтинг: 0 / 0
07.06.2004, 22:14:31
    #32551535
себесям
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
И чем же?
...
Рейтинг: 0 / 0
07.06.2004, 22:18:09
    #32551538
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
авторИ чем же?
Тем, что для авторизации пользователя нельзя сделать запрос без параметров - работать не будет.
...
Рейтинг: 0 / 0
07.06.2004, 22:22:43
    #32551543
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
Так сделай для дилукапа еще один запрос. Или у тебя в базе больше одного запроса не помещается?
...
Рейтинг: 0 / 0
07.06.2004, 22:23:43
    #32551544
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
Кстати, я-то предлагал запихивать в дилукап не запрос, а прямо таблицу. Зачем понадобился запрос, я не знаю.
...
Рейтинг: 0 / 0
08.06.2004, 10:45:19
    #32551900
dkny
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
Саныч , а как можно вставить Dlookup в таблицу? Впрочем, вопрос у меня не об этом, это так, вырвалось :)

Вопрос вот какой: идея организовать доступ к данным на основе Login'a посещает, похоже, каждого, кто работает с многопользовательской mdb. У меня это находится на стадии идеи, соответственно, прежде чем огород городить, хотелось бы выяснить все более подробно.

У меня: вход по логину, есть таблица (или таблицы) с полем ID, этот ID однозначно связан с данными о сотруднике. ID в таблицах служит индикатором доступа к данным, т.е. человек с другим ID эти данные не прочитает.

Нужно: занести Login в глобальную переменную (или куда там оно может влезть) и в запросах/формах/отчетах брать этот Login (это то же самое, что и ID) для своих целей.

Я так понимаю, что сначала нужно создать функцию, забирающую Login. Не подскажете ли как? (прошу прощения, если повторяюсь) И из нее, как глобальную переменную брать ID (тоже с примерчиком на пару строк, если возможно, например, для запроса). Правильно?
...
Рейтинг: 0 / 0
08.06.2004, 13:15:42
    #32552349
neal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
авторЕсть многопользовательская база mdb, у нее около пяти пользователей.
Как сделать, чтобы каждый пользователь работал только со своими данными, т.е. есть четыре оператора, и каждый работает только с теми данными, которые он набил, есть один главный оператор, у которого есть доступ ко всем данным всех четырех операторов и + он тоже может набивать данные только для себя.
Как организовать такой ввод?

Конечно есть идея сделать 5 отдельных таблиц для всех пяти операторов и потом все данные сливать в одну общую таблицу, но наверно это как-то глупо.
Например завтра появится шестой оператор и что, ему еще одну таблицу заводить надо будет?

Как сделать, чтобы каждый оператор работал только со своими данными?
ИМХО, в таблице, где храняться эти данные сделать поле Доступ типа byte. Обязательное.
При входе брать идентификацию пользователя и/или компьютера через функции api.

Завести в таблицу где IDпользователя,ИмяПользователя поле УровеньДоступа типа byte.
Прописать для первого пользователя УровеньДоступа: 1
для второго: 2
для третьего: 4
для четвертого: 8
для пятого (в данном случае): 31 (1+2+4+8 его 16)

После идентификации в глобальную переменную (TheDostup) записывается его УровеньДоступа.
Создаются функции в каком-нибудь глобальном модуле:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
private TheDostup as byte

public function CurrDostup() as byte
    CurrDostup = TheDostup
end function

Public Function Crossbit(ByVal I1 As Byte, ByVal I2 As Byte) As Boolean
    Dim K As Byte
    Dim F As Boolean
    F = False
    K =  128 
    Do While (K >  1 )
        If (I1 >= K) And (I2 >= K) Then
            F = True
            Exit Do
        End If
        If (I1 >= K) Then
            I1 = I1 - K
        End If
        If (I2 >= K) Then
            I2 = I2 - K
        End If
        K = K /  2 
    Loop
    If (I1 =  1 ) And (I2 =  1 ) Then
        F = True
    End If
    Crossbit = F
End Function

При вставке новой записи не забывай присваивать полю Доступ значение =CurrDostup()

В запросах, которые выводятся на экран пишется дополнительное условие в раздел WHERE crossbit(Доступ,CurrDostup())

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

Этой системы хватит на 8 различных типов доступа,
если надо больше, то вместо byte - integer, long.

Good luck!
...
Рейтинг: 0 / 0
08.06.2004, 15:06:46
    #32552589
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по организации многопользовательской mdb
вот интересно
а чем вопрошающему не понравился
стандартный в Access способ раздачи прав
с использованием механизма раздачи логинов-паролей из system.mdw???

тут и автоматическая формочка авторизации при запуске
и currentuser() не сбрасывается при возникновении ошибки
в отличие от глобальной переменной
и в табличку с правами залезть-права себе поменять юзер просто так не сможет

что не так со стандартной системой безопасности?
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Нужна идея по организации многопользовательской mdb / 25 сообщений из 53, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]