Значения не отображаются в поле со списком формы доступа - PullRequest
4 голосов
/ 30 октября 2009

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

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

Затем я создал форму и установил запрос как RecordSource. Поля с ключевыми словами - это поля со списком в моей форме, а их ControlSource - это поле ключевого слова из запроса (как я упоминал ранее, значение может быть только одним ключевым словом из списка). Теперь проблема, с которой я сталкиваюсь, заключается в следующем: когда я хочу увидеть одну запись, она показывает правильное значение в ComboBox, но когда выпадающее меню, оно не показывает никаких других значений.

Каков наилучший способ сделать это? Я делаю это неправильно?

Спасибо

Ответы [ 4 ]

3 голосов
/ 30 октября 2009

Я бы подошел к этому немного по-другому, установив поле со списком «Источники строк», чтобы оно включало и поле идентификатора, и текстовое поле (при необходимости вы можете скрыть столбец идентификатора, установив его ширину в ноль). Теперь добавьте поля ID в запрос сотрудника; вам не нужно присоединять другие таблицы к таблице Employee в этом запросе, эти поля являются внешними ключами, и поля со списком должны автоматически отображать текст. Установите для этого запроса источник записи формы, а теперь установите для поля со списком Источник управления соответствующее значение идентификатора из источника записи формы.

Если вы позволите мастеру создать для вас форму на основе таблицы Employee, вы увидите этот подход в действии.

0 голосов
/ 06 ноября 2018

У меня была такая же проблема в Access 2016, и проблема была с моим типом данных. Поле со списком не принимало «Longtext», поэтому я просто изменил тип данных на «shorttext», и все значения появились.

0 голосов
/ 01 января 2018

ControlSource - это имя столбца таблицы, в которой будет сохранена любая запись пользователя.

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

RowSourceType должен быть установлен в Table / Query, который основан на вышеупомянутом методе RowSource.

Теперь, чтобы исправить проблему отображения только того, что вы начинаете вводить (т. Е. «Разрешить автозамену» в Таблица свойств> Другое ) или уже сохранили для этой записи без других опций, появляющихся после нажатия на раскрывающийся список является следующим:

  1. В представлении «Дизайн» щелкните соответствующий комбинированный список.
  2. Таблица свойств> Формат> Количество столбцов = установить нужное количество столбцов для отображения в раскрывающемся списке.
  3. Таблица свойств> Формат> Ширина столбца = установить нужную ширину столбца в раскрывающемся списке.
  4. Таблица свойств> Формат> Ширина списка = установить нужную ширину самого раскрывающегося списка.
  5. Таблица свойств> Данные> Связанный столбец = установить на столбец таблицы запросов (т. Е. 1 для идентификатора и 2 для опций списка, если у вас есть только две записи)

Примечание. Если желаемыми параметрами раскрывающегося списка являются столбец два, а не столбец один (кстати, проще), сделайте следующее изменение сверху:

  1. Таблица свойств> Формат> Количество столбцов = установить желаемое количество столбцов равным двум.
  2. Таблица свойств> Формат> Ширина столбца = добавить две записи 0 ", 1", что означает, что поле идентификатора не отображается (0 "), а поле параметров составляет один дюйм.

Самый простой способ разобраться в этом в начале - это просмотреть имена заголовков столбцов, чтобы узнать, что вы смотрите в это время, выполнив следующие действия: Таблица свойств> Формат> Заголовки столбцов = установить в значение да. По крайней мере, вы будете знать, что показывает, и находитесь ли вы на правильном пути.

0 голосов
/ 30 октября 2009

Вы установили запрос в качестве источника записей для формы. Форма показывает только (и связывает) одну запись за раз.

Поскольку вы хотите, чтобы в комбинированном окне отображались все значения, вы должны установить RecordSource ComboBox на ваш запрос.

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