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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

nCurUser = dlookup...

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

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

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

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

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

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

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

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

Я так понимаю, что сначала нужно создать функцию, забирающую Login. Не подскажете ли как? (прошу прощения, если повторяюсь) И из нее, как глобальную переменную брать ID (тоже с примерчиком на пару строк, если возможно, например, для запроса). Правильно?
...
Рейтинг: 0 / 0
Нужна идея по организации многопользовательской mdb
    #32552349
Фотография neal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕсть многопользовательская база 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
Нужна идея по организации многопользовательской mdb
    #32552589
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот интересно
а чем вопрошающему не понравился
стандартный в Access способ раздачи прав
с использованием механизма раздачи логинов-паролей из system.mdw???

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

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


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