Доброе утро!!!
Спасибо Derek, что откликнулся. Просмотрев твой скрипт - я все понял, что уже радует и обнадеживает)... Твой скрипт проще, а значит будет работать быстрей и однозначно в дальнейшем пригодится.
Суть вопроса немножко в другом:
Администратор подразделения должен не только редактировать конкретные, назначенные ему формы, таблицы и т.п., а должен при авторизации видеть информацию из единой таблицы - базы ответов таблица main, в которой ответы пользователей разных подразделений, и есть связанное поле id_otd.
Т.е. в базе ответов (таблица main) есть 90 ответов, по 10 ответов на каждого сотрудника. У первого подразделения сотрудника 01-01 -- 10 ответов, 01-02 -- 10 ответов, 01-03 -- 10 ответов - всего в первом подразделении 30 ответов (где 01-01, 01-02 это пользователи). Аналогично 2 подразделение 02-01, 02-02, 02-03 -- 30 ответов и 3 подразделение -- 30 ответов.
Так вот администратор подразделения 1 подразделения, который имеет id_podr = 2, должен видеть информацию во всех таблицах где связанное поле id_otd =1, а конкретно для таблицы main 30 записей первого подразделения.
Т.е. как-то при авторизации надо привязать, что пользователь у которого id_podr = 2, может работать только с записями где id_otd =1, я так понимаю, нужно ввести переменные но пока не хватает мозгов...
это нужно вставить где то здесь:
procedure frmLogin_bLogin_OnClick (Sender: string; var Cancel: boolean);
var
s: string;
begin
// SQL query for check user and password
s:= SQLExecute('SELECT count(id) FROM login WHERE (id = ''' + IntToStr(frm_Login.cbLogin.dbItemID) + ''') AND (password = ''' + frm_Login.edPassword.Text + ''');');
// SQL скрипт на проверку login и password
if (s <> '0') and (s<>'') then
begin
sUser := frm_Login.cbLogin.Text; // имя пользователя
idUser := frm_Login.cbLogin.dbItemID; // id имени пользователя в базе данных
idotdel := SQLExecute ('SELECT id_otd FROM login WHERE id =' + IntToStr(iduser));
iddolz := SQLExecute ('SELECT id_dolz FROM login WHERE id =' + IntToStr(iduser));
idpod := SQLExecute ('SELECT id_pod FROM login WHERE id =' + IntToStr(iduser));
// Определение Администратор - пользователь
if SQLExecute ('SELECT admin FROM login WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else Form2.bUsers.Visible:=False;
if SQLExecute ('SELECT admin FROM login WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else Form2.Button2.Visible:=False;
if SQLExecute ('SELECT admin FROM login WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else Form2.Button4.Visible:=False;