Доступ: привязать Combobox к набору записей, но запретить изменения к набору записей при изменении / обновлении - PullRequest
0 голосов
/ 22 февраля 2019

Я сталкиваюсь с проблемой со списком доступа, которая может быть ужасной идеей или неправильным использованием инструмента.

Допустим, у меня есть форма, которая показывает метаданные «отчета» (вещи, которыераспространены в отчете изо дня в день, как репортер, проект, целевой срок исполнения, ожидаемая общая стоимость и т. д.) с непрерывной подчиненной формой отчетных позиций (например, стоимость рабочей силы, материалы, накладные расходы и т. д.).)

В бэкэнде у меня есть 2 таблицы для представления этого.Таблица «Метаданные» и таблица «позиции».При попытке зафиксировать отдельные элементы, о которых сообщают, репортер имеет право называть элемент так, как он считает нужным, однако в системе мы хотим сопоставить наименование этого элемента репортера с нашим внутренним наименованием элемента.

Для того, чтобы сделатьэто у меня есть несколько вспомогательных таблиц и таблица сопоставления для создания этой ссылки.Таблица «Внутренний элемент строки», таблица «DataType» и таблица «Отображение элемента строки».

Структура будет выглядеть следующим образом:
- Таблица «Элемент строки» с идентификатором, именем, метаданными_IDи данные (типичный формат Excel)
- таблица «Метаданные» с идентификатором и метаданные, общие для всех отчетов
- таблица «Внутренняя позиция» с идентификатором и именем
- таблица «Отображение элемента строки» с Internal_ID, LineItem_ID и DataType
- Таблица «DataType» с идентификатором и именем

Итак, к чему у меня возникают проблемы.

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

Затем я попытался привязать блок к набору записей, используя ControlSource, но при этом он изменил номера идентификаторов (очевидно, не в порядке).

Я тогдаTпытался привязать коробку к самой таблице сопоставления, но не знаю, как также связать ее с набором записей ...

Что я хочу сделать, это связать эту коробку с набором записей, не позволяя ейИзмените любые данные в таблице «Элемент списка», поскольку это поле предназначено для изменения таблицы отображения.Затем я мог бы использовать событие OnChange для заполнения или обновления таблицы сопоставления правильными данными.

Можно ли создать такую ​​привязку (когда элемент управления привязан к набору записей, что позволяет мне получить идентификатор LineItem, но не может изменить набор записей, в то же время позволяя пользователю взаимодействовать с ним)?Или есть лучший способ подойти к этому вопросу?

1 Ответ

0 голосов
/ 14 марта 2019

Оказывается, что я просто делал что-то глупое с моей моделью данных, которая приводила к моим неприятностям.

полный ответ можно найти здесь: https://answers.microsoft.com/en-us/msoffice/forum/msoffice_access-msoffice_custom-mso_2013_release/bind-a-control-without-data-alteration-access-2013/51a98460-6e1a-425d-8f7b-eba5f2825ba9?tm=1552503037022&auth=1&page=2

но кратков том, что я неправильно помещал все свои ФК в одну таблицу, пытаясь создать форму таблицы «отображения».С тех пор я исправил свою структуру и заставил свой комбобокс работать так, как предполагалось.

...