Пользовательский источник строки для поля со списком в непрерывной форме в Access - PullRequest
12 голосов
/ 17 сентября 2008

Я искал вокруг, и кажется, что это ограничение в MS Access, поэтому мне интересно, какие творческие решения другие нашли для этой головоломки.

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

Следующим шагом, который мы все пытаемся, конечно же, является использование события onCurrent для запроса поля со списком, которое фактически ограничивает параметры данной строкой. Однако в этот момент Access сходит с ума и запрашивает все полей со списком для каждой строки, и в результате часто происходит исчезновение и повторное появление параметров в других строках в зависимости от того, выбрали ли они опция, действительная для источника строки текущей записи.

Единственное решение, которое я нашел, это просто перечислить все доступные варианты, все время. Есть какие-нибудь креативные ответы?

Редактировать Кроме того, я должен отметить, что причиной этого поля со списком является запрос в виде таблицы поиска, реальное значение должно быть скрыто и сохранено, пока отображается читаемая человеком версия. .. несколько столбцов в источнике строки поля со списком. Таким образом, изменение предела для списка не помогает, потому что идентификаторы, которых нет в текущем запросе источника строки, не будут иметь подходящей для чтения человеком части.

В данном конкретном случае непрерывные формы имеют большой смысл, поэтому, пожалуйста, не говорите мне, что это неправильное решение. Я прошу любые творческие ответы.

Ответы [ 13 ]

0 голосов
/ 08 марта 2009

Лучше ...

Установите в поле «Источник управления» для поля со списком запрос, в котором будут храниться значения из поля со списком.

0 голосов
/ 17 сентября 2008

Что если вы отключите опцию «Ограничить списком» и проведете некоторую проверку перед обновлением, чтобы подтвердить, что то, что пользователь мог набрать, соответствует чему-то в списке, который вы им представили?

0 голосов
/ 17 сентября 2008

Отказ от ответственности: я ненавижу Доступ со страстью.

Не используйте непрерывные формы. Они красная сельдь для того, чего ты хочешь достичь. Непрерывные формы - это одна и та же форма, повторяемая снова и снова с разными данными. Это уже мешает нормальному режиму работы Access, поскольку одна и та же форма не может быть открыта несколько раз. Поведение, которое вы видите, «как задумано» в Access. Каждый из этих элементов управления ComboBox фактически является одним и тем же элементом управления. Вы не можете влиять на одного, не затрагивая других.

По сути, здесь вы наткнулись на область, в которой Access больше не подходит для вашего проекта (но не может отказаться, потому что он уже представляет собой большой объем работы).

То, что кажется наиболее вероятным способом действий здесь, это подделать это действительно хорошо. Запустите запрос к данным, а затем создайте элементы формы программно на основе результатов. Это достаточный объем работы, так как вы будете самостоятельно дублировать функциональность обработки данных в Access.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...