С Новым годом! Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
3 / 3 / 0
Регистрация: 20.11.2016
Сообщений: 88

Заблокировать все кроме одной строки в форме - в зависимости от данных одного поля строки

04.01.2020, 13:07. Показов 1310. Ответов 15

Студворк — интернет-сервис помощи студентам
Доброго времени суток,

Не могу решить одну (как мне казалось) простую задачу, а именно:

- есть форма с 17 строками,
- каждая строка соответствует одному сотруднику,
- у каждой строки есть свое уникальное значение,

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

Если есть другие , более простые способы решения, прошу поделиться идеями.

Заранее благодарен
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.01.2020, 13:07
Ответы с готовыми решениями:

Заблокировать все url кроме одного
Можно ли через cmd заблокировать все url кроме одного? (Начиная от Windows Xp до Windows 8.1 без программ и скриптов, только через cmd...

Как заблокировать все IP адреса кроме одного
У меня Windows 7 x64 максимальная Хочу запретить выход в Интернет по IP адресам, хочу заблокировать все IP адреса кроме одного. Хочу...

Изменить цвет строки в табличной форме в зависимости от значения 1 поля
Изменить цвет строки в табличной форме в зависимости от значения 1 поля. ?

15
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
04.01.2020, 14:55
обращение к полю user считаю оптимальным решением в данном случае, раз речь идёт о записи целиком.
1
Эксперт MS Access
2835 / 1377 / 215
Регистрация: 13.05.2011
Сообщений: 4,219
04.01.2020, 16:41
Дмитрий1905, Если одному работнику не нужны другие работники, то показывать каждому только его запись.
1
3 / 3 / 0
Регистрация: 20.11.2016
Сообщений: 88
04.01.2020, 17:31  [ТС]
Один работник должен видеть записи других работников.
Я не сказал - речь идет о планировщике отпусков и дней дежурства.
Нужно чтобы каждый мог только в своей строке "планировать" но при этом учитывать планы коллег.

Посмотрите пожалуйста скрин - выглядит громоздко, но главное - можно совместно планировать выбирая заранееопределенные опции ("отпуск", "обучение", "часы переработки" и так далее).
Миниатюры
Заблокировать все кроме одной строки в форме - в зависимости от данных одного поля строки  
0
3 / 3 / 0
Регистрация: 20.11.2016
Сообщений: 88
04.01.2020, 17:36  [ТС]
На каждого сотрудника 4 строки:

- данные из Системы (чтобы сотрудник видел, что "подписано"),
- Отпуск (выходные не в счет),
- Дежурство (каждый день возможно),
- Дежурство по субботам (только в субботу возможно).

Поле с галочкой - это если сотрудник запланировал отпуск и хочет отправить запрос руководителю (мне) на подпись. - здесь думаю ПДФ отчет сделать. Это легко.


ВСЕ ЭТО - ОДНА СТРОКА В ТАБЛИЦЕ (одна строка - на одного сотрудника). Я просто много столбцов сделал - и налепил их в форме один под другим.
0
Эксперт MS Access
2835 / 1377 / 215
Регистрация: 13.05.2011
Сообщений: 4,219
04.01.2020, 19:23
Дмитрий1905, А пример базы можете выложить, чтобы точнее понять как всё устроено и точнее порекомендавать действие.

Не по теме:

Ведь ответа: "Сделать можно" - это же мало.

0
3 / 3 / 0
Регистрация: 20.11.2016
Сообщений: 88
11.01.2020, 23:35  [ТС]
Доброго времени суток,

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

Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub Ctl01_dienst__Enter()
                            Dim US As String
                            US = Environ("USERNAME")
                                    If Forms!PLAN!q000 <> US Then
                                        Forms![PLAN]![01_dienst_].Locked = True
                                    Else
                                        Forms![PLAN]![01_dienst_].Locked = False
                                    End If
End Sub
Уверен, есть менее громоздкие способы, но я такой сделал.
Тема может быть закрыта.
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
12.01.2020, 00:08
Дмитрий1905,

Менее громоздкий способ?
Например, такой:
Visual Basic
1
2
3
Private Sub Ctl01_dienst__Enter()
 Forms![PLAN]![01_dienst_].Locked = Forms!PLAN!q000 <> Environ("USERNAME")
End Sub
1
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
12.01.2020, 01:58
Менее громоздкие способ такой:
В событии Текущая запись:
Visual Basic
1
2
3
4
5
6
                                
     If Forms!PLAN!q000 <> Environ("USERNAME") Then
        me.allowedits = false
     Else
        me.allowedits = true
     End If
124 поля
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
12.01.2020, 02:09
Цитата Сообщение от alvk Посмотреть сообщение
Visual Basic
1
2
3
4
5
6
                                
     If Forms!PLAN!q000 <> Environ("USERNAME") Then
        me.allowedits = false
     Else
        me.allowedits = true
     End If
me.allowedits - да, правильно, так и нужно.

И все же не пойму, в чем смысл блока If (а такое вижу очень часто) ?
Ведь это одна строчка:
Visual Basic
1
 me.allowedits = Forms!PLAN!q000 = Environ("USERNAME")
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
12.01.2020, 03:29
Цитата Сообщение от Capi Посмотреть сообщение
И все же не пойму, в чем смысл блока If
1) В читабельности.
2) Часто там не одна команда бывает.
3) Привычка или дело вкуса.

ну и так далее.
2
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
12.01.2020, 09:40
1) это вряд ли, тут скорее наоборот
2) я именно про эти простейшие случаи, а не про много команд
3) привычки на чем-то же основываются
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
12.01.2020, 11:49
Цитата Сообщение от Capi Посмотреть сообщение
это вряд ли
Вы тоже имеете право на своё мнение, я с этим не спорю.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
12.01.2020, 12:24
Цитата Сообщение от Capi Посмотреть сообщение
Ведь это одна строчка:
Visual BasicВыделить код
1
 me.allowedits = Forms!PLAN!q000 = Environ("USERNAME")
В ЯП, в которых оператор присваивания совпадает с логической операцией, таких строк лучше бы избегать. В разных ЯП такие строки выполняются по разному. В VB это одно выполнение, а в C - другое.
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
12.01.2020, 12:36
ltv_1953,

А скобки не спасут? Если так?
Visual Basic
1
me.allowedits = (Forms!PLAN!q000 = Environ("USERNAME"))

Не по теме:

На С я писала когда-то. Немного.

0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
12.01.2020, 13:07
В VB всегда ставлю скобки в таких выражениях (чтобы самому не задумываться). А вот в С a = (b = c) выполняется присваивание a = b = c справа налево (согласно "древней" документации).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.01.2020, 13:07
Помогаю со студенческими работами здесь

Вывод одной строки одного столбца из БД в label на форме
Пытаюсь разобраться, как можно сделать сделать вывод записей из MS SQL Server'a в отдельные Lable'ы, то есть что бы записи &quot;№...

Вывести все строки таблицы БД, кроме строк с пустыми значениями определенного поля
Нужно вывести все строки, кроме строк с пустыми значениями определенного поля Как написать это правильно? Так выдает...

Можно ли заблокировать нажатие на область DataGrid кроме строки?
private void grid_CellClick(object sender, DataGridViewCellEventArgs e) { id_box.Text =...

Очистить все TextBox на форме, кроме одного
Private Sub Image1_Click() Dim cntr As Control For Each cntr In Me.Controls If TypeOf cntr Is TextBox Then ...

Получить из строки все, кроме последней строки и переноса на последнюю строку
Помогите составить регулярное выражение. Использую библиотеку System.Text.RegularExpressions.Regex. Есть строка В блокноте выглядит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru