powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Связь элементов управления в разных интерфейсах одной разделённой БД
26 сообщений из 26, показаны все 2 страниц
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39074411
sansanytch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте форумчане. Визуально себе задачу нарисовал легко и был уверен что легко справлюсь но на деле не так просто, сломал голову и никак не могу решить вот такую проблему:
1. Есть разделённая БД (т.е. таблицы отдельно, а интерфейсы для пользователей отдельно).
2. Интерфейс 1 имеет флажок который при включении должен активировать переключатель в Интерфейсе 2, и соответственно наоборот - флажок снял-переключатель стал не активным.
Доп. инф.: переключатели применяют в Интерфейсе 2 тот или иной фильтр по записям, записи все находятся в одной таблице. в голове крутится но наверно замыленым разумом уже не могу додуматься. натолкните на мысль кто чем сможет))) Можно языком встроеных макросов, можно на VB, как угодно!!! заранее всем большое спасибо.
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39074449
sansanytch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дополню: главное от вас ИДЕЯ, реализация за мной, просто кончились идеи через что связать эти элементы
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39074458
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскольку интерфейсы (как я понял, в данном случае имеется в виду не две разные формы в одной интерфейсной БД, а именно две разные интерфейсные БД, возможно, идентичные) независимы, и даже, возможно, исполняются на разных рабстанциях, единственным средством обмена данными между ними остаётся собственно БД с данными.
Так что заведи там служебную таблицу и клади в неё текущее состояние переключателя из первого интерфейса. А во втором по таймеру запрашивай его состояние, и в зависимости от полученного значения делай те или иные действия.
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39074487
sansanytch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina, Всё правильно поняли - одна БД - таблицы, интерфейсы тоже разные БД с разным набором форм. теперь собственно по Вашему предложению - эта мысль у меня и была первой. но вот в чем проблема. есть таблица ЗАДАЧИ, в которой собраны сотни записей. Оба интерфейса читают из этой таблицы. добавил таблицу с 1-м логическим полем в БД с таблицами, в которое собирался записывать значение с флажка в интерфейсе 1, НО при добавлении на форму интерфейса1 этого поля access запрашивает каким образом установить связь этого поля с таблицей ЗАДАЧИ, которая является источником записей для этой формы? а использовать поле из таблицы никак не связанной с формой не знаю как... прилагаю скрин схемы данных, в центре таблица ЗАДАЧИ и слева таблица Разрешения, там одно поле состояние(логическое), но записать в него ничего не получается...
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39074512
sansanytch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina, вкратце вопрос такой - как обратиться к полю не связанной ни с чем таблицы?
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39074539
sansanytch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
9090, растолкуй...
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39074540
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sansanytchAkina, вкратце вопрос такой - как обратиться к полю не связанной ни с чем таблицы?
LOOKUP.
Тынц:
http://www.sql.ru/forum/actualsearch.aspx?search=LOOKUP&sin=0&bid=4&a=&ma=0&dt=-1&s=1&so=1
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39074562
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС
Вам нужно узнать в реальном режиме времени изменились ли записи?
Если таблица прилинкованная ну и пишите че захотите в чем все таки проблема?
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39074565
sansanytch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
9090, ну и я это понимаю, НО конкретно через какой элемент этой БД связь создать, пробую поле отдельной таблицы, но как в него записать 0 или -1 (поле логическое) с формы, у которой источником записей одна таблица ЗАДАЧИ и связи у неё с таблицей Разрешения нет и быть не может. см. схему данных...
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39074571
sansanytch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI,

в реальном времени не нужно, буду проверять по событию обновления формы. проблема как заставить форму проверить состояние (0 или -1) записано в поле не связанной с этой формой таблицы...
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39074577
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sansanytch9090, ну и я это понимаю, НО конкретно через какой элемент этой БД связь создать, пробую поле отдельной таблицы, но как в него записать 0 или -1 (поле логическое) с формы, у которой источником записей одна таблица ЗАДАЧИ и связи у неё с таблицей Разрешения нет и быть не может. см. схему данных...
Ну создайте поле "состояние " в "Задачи".
Мне непонятна логика чего этим полем вы хотите добиться, по этому такие ответы.
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39074621
sansanytch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI,
Может и я чего то не так объясняю... попытаюсь более детально и по существу:
таблица ЗАДАЧИ содержит все задания БД, к ней привязано несколько таблиц как источники для полей со списком. далее имею форму где отображаются записи, исходя из примененного к ним фильтра, фильтры применяются в виде переключателей. в Интерфейсе1-(босс) хочет ставить\снимать галочку чтобы в Интерфейсе2-(исполнитель) активировался\деактивировался переключатель для применения фильтра. ОБА интерфейса - это разделенная форма с источником записей - таблица ЗАДАЧИ, таблица Разрешение НИКАК не свазана, поэтому как бы я с формы не обращался к таблице Разрешения (а точнее полю Состояние этой таблицы) - ничего не получается, ни записать 0\-1 из интерфейса1 через флажок, ни прочитать из Интерфейса2 что там в поле Состояние, чтобы исходя из результата сделать активным или нет фильтр. вот как то так. добавляю пару картинок обоих интерфейсов и обведенных элементов управления, которые собссно и нужно увязать в одно целое, схема данных БД с таблицами выше.
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39074625
sansanytch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
интерфейс 1
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39074626
sansanytch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
интерфейс 2
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39074808
sansanytch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
9090,
в смысле не моё??? не могу объяснять или БД не моя? с первым может и соглашусь а второе - БД моя с нуля созданная...
интересует чтобы Флажок из одной БД (интерфейс1) отключал или включал переключатель в другой БД (интерфейс2). Флажок и переключатель обвел красным на скринах. как я понял реализовать нужно через таблицу в основной БД(скрин её схемы данных выложил выше). Но вот как???
полагаю логика такая:

это в обработчик событий для флажка на форме Интерфейса1
if [флажок_на_форме]=0 then [Разрешения].[состояние]=0 else [Разрешения].[состояние]=-1

и
это в обработчик событий при обновлении формы или в таймер на форме Интерфейса2
if [Разрешения].[состояние]=0 then [переключатель_на_форме].[включено]=False else [переключатель_на_форме].[включено]=True

как то так... поправьте если что-то не так мыслю... проблема в том что в первом случае как записать в таблицу состояние флажка и соответственно во втором как считать его из таблицы...
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39074915
sansanytch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
9090,

ну пусть БД - файл с расширением accdb
под интерфейсами имею ввиду разные accdb-файлы, в каждом из которых разные формы, запросы и макросы для работы с одной и той же таблицей записей, находящейся в другом файле accdb.(разделённая база данных) Т.е. руководитель, открывет свой файл и с помощью формы работает с записями по своим нуждам, а подчиненный открывает свой файл и работает в похожей форме но с немного ограниченными возможностями. каждый запускает свой файл(интерфейс) локально с своего рабочего стола, а основная база данных лежит на серваке...
вот шеф захотел теперь посредством своего волеизъявления клацанием на флажок у себя на форме включать или отключать подчинённым один из переключателей, отвечающий за применение определенного фильтра в ихней форме.
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39074956
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sansanytch,

фигня какая-то...
но реализовать как два пальца об асфальт:
1. Делаем общую таблицу с туевой хучей полей типа логическое и привязываем ее по сетке к приложению...
2. Делаем форму на основании этой таблицы - и проверяем что чеки боксы меняются и сохраняются...
такая форма будет у всех (и абсолютно одинаковая).
3. Делаем форму идентификации для входа в приложение, если вошел шеф - все чеки боксы на этой форме делаем
.Enabled = True, если это не шеф, то .Enabled = False...

Делать разные (совсем разные) интерфейсы для каждого юзера - дурдом.... ну или я вообще ничё не понял,
ориентируюсь на помыслы Акины...
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39074961
sansanytch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,самих интерфейсов всего 2 - в одном экземпляре для шефа и пару троек одинаковых у секретарей...

Делаем общую таблицу с туевой хучей полей типа логическое
есть такая таблица, правда там уева туча а только одна запись, но дело не в количестве а вто м что она никак не связана ни с одной таблицей...
и привязываем ее по сетке к приложению...
к чему именно???
Делаем форму идентификации для входа в приложение
так и сделано...
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39074992
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sansanytchесть такая таблица, правда там уева туча а только одна запись,
Ну да, одна запись с нужным количеством логических полей...
sansanytchк чему именно???
ни к чему конкретно... просто у приложения в закладке таблицы должна быть и эта таблица как и те,
которые валяются на сервере...
Шеф её может править (через форму, которая создана на базе этой таблицы) а остальные нет - только смотрят...
но у остальных, в зависимости от сочетания состояния этих комбобоксов делается алгоритм обработки и
естественно при помощи vba
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39074997
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sansanytch,

см. форму для шефа и форму не для шефа (естественно это для наглядности, а так вообще-то это должна быть одна форма,
с результатом доступности после авторизации), ну и таблица у всех одна (одинаковая, прилинкованная с сервера)
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39075004
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sansanytchполагаю логика такая:

это в обработчик событий для флажка на форме Интерфейса1
if [флажок_на_форме]=0 then [Разрешения].[состояние]=0 else [Разрешения].[состояние]=-1

и
это в обработчик событий при обновлении формы или в таймер на форме Интерфейса2
if [Разрешения].[состояние]=0 then [переключатель_на_форме].[включено]=False else [переключатель_на_форме].[включено]=True

как то так... поправьте если что-то не так мыслю... проблема в том что в первом случае как записать в таблицу состояние флажка и соответственно во втором как считать его из таблицы ...Если уж Вам так нравится такой подход, то

1. "как записать в таблицу состояние флажка"
Код: vbnet
1.
CurrentDb.Execute "UPDATE [Разрешения] SET [состояние] = " & [флажок_на_форме] & " WHERE <условие отбора нужной единственной записи>"


2. "как считать его из таблицы"

- Я правильно понимаю, что радиокнопки "все (Действ...+Архив)", "все (Действ...)", "на будущее", "на сегодня" - это группа переключателей,
а "все ПЮИ разрешены" - это дополнительный признак, не входящий в эту группу?
Если да, то "все ПЮИ разрешены" лучше сделать флажком.

- Источник данных для "все ПЮИ разрешены"
Код: sql
1.
 = DLookUp("[состояние]"; "[Разрешения]; <условие отбора нужной единственной записи>"

По таймеру обновление (вариант с таймером для меня сомнителен, но потом сами определитесь)
Код: vbnet
1.
[все ПЮИ разрешены].Requery

и, наверное, отключение/включение доступа к радиокнопкам "все (Действ...+Архив)" и "все (Действ...)"
Код: vbnet
1.
2.
[все (Действ...+Архив)].Enabled = [все ПЮИ разрешены]
[(Действ...)].Enabled = [все ПЮИ разрешены]

возможно, потребуется сначала обновить набор задач в соответствии с запретом
и перевести фокус, если он был на "все (Действ...+Архив)" или "все (Действ...)".
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39075144
sansanytch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle,
спасибо за пункт 1, а вот по пункту 2 немного неточно:
- Я правильно понимаю, что радиокнопки "все (Действ...+Архив)", "все (Действ...)", "на будущее", "на сегодня" - это группа переключателей,
а "все ПЮИ разрешены" - это дополнительный признак, не входящий в эту группу?
последний "все ПЮИ разрешены" тоже переключатель как и все остальные, просто разместил его так, он тоже как и все остальные применяет к записям определенный фильтр, просто шеф имеет некоторые свои записи, которые не хочет показывать секретарям, но в какой то момент он ставит у себя отметку что можно и после этого флажком включает этот переключатель и секретари могут применить фильтр, отобразив эти записи. планирую проверять состояние флажка с формы шефа, чтобы как можно быстрее активировать или деактивировать переключатель "все ПЮИ разрешены" через событие "после обновления" самой формы, думаю, что при переходе на другую запись или любого изменения должно срабатывать это событие, тем самым состояние переключателя всегда будет в актуальном состоянии. Подскажите только макрос или код VBA.
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39075153
sansanytch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

спасибо за пример, интересное решение, немного не то, т.к. формы шефа и не_шефа находятся в разных файлах но ваш пример думаю найдет своё применение ибо шеф любитель таких фич)))
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39075166
sansanytch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle,

допилил ваш пункт 1 - ЗАРАБОТАЛО!!! с небольшими поправками, а именно в событие После обновления разместил вот это:
CurrentDb.Execute "UPDATE [Разрешения] SET [состояние] = " & [разрешить_АДМ] & " "
Огромное спасибо, первая подсказка и в точку!!!
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39075566
sansanytch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle,

Огромное спасибо по Варианту 2.
как раз то что нужно с DLOOKUP
в таймер воткнул вот такое:
Dim varX As Boolean
varX = DLookup("[состояние]", "Разрешения")
If varX = False Then всеПЮИразр.Enabled = False Else всеПЮИразр.Enabled = True
где "всеПЮИразр" - имя переключателя
и ВСЁ заработало как часики!!! огромное Вам спасибо!!!

ВСЕМ ПРИНИМАВШИМ УЧАСТИЕ ТАКЖЕ ВЫРАЖАЮ БЛАГОДАРНОСТЬ. СЧИТАЮ ТЕМУ ЗАКРЫТОЙ!
...
Рейтинг: 0 / 0
Связь элементов управления в разных интерфейсах одной разделённой БД
    #39075609
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sansanytch,

Достаточно так
Код: vbnet
1.
ПЮИразр.Enabled = DLookup("[состояние]", "Разрешения")
...
Рейтинг: 0 / 0
26 сообщений из 26, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Связь элементов управления в разных интерфейсах одной разделённой БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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