MS-Access, связанный контроль на форме, показывать текст пользователя, но записывать PK для этого текста - PullRequest
0 голосов
/ 29 августа 2010

Все, кроме первого и последнего бита здесь скопированы с вопроса другого автора. Тема - формы MS-Access с привязанными элементами управления. Я новичок в Access. Я ценю все «уровни косвенности», которые он предоставляет для форм, но я не могу найти пример того, что я считаю очень, очень распространенной задачей ... вот ответ (Спасибо, Томас) на вопрос другого пользователя, за которым следует мой поворот:

Источник строки обычно используется для определения того, как составить список элементов, тогда как Источник управления определяет, какое поле будет использоваться для хранения или получения значения. Например, в поле со списком у вас есть оба свойства. Источник строки определяет, как построить список, который видит пользователь, когда нажимает стрелку вниз. Источник управления определяет, где хранить значение, выбранное пользователем.

ПРИМЕР Предположим, у нас есть форма, связанная с таблицей, которая называется Автомобили, в которой содержится информация об автомобилях. Один из столбцов в этой таблице используется для хранения цвета автомобиля. Давайте предположим, что этот столбец называется BodyColor. У вас также есть другая таблица допустимых цветов (например, синий, желтый, зеленый, стальной синий, полуночный синий и т. Д.). Вы хотите, чтобы пользователи выбирали из этого списка цветов при вводе значения для цвета автомобиля.

В нашей форме мы добавляем поле со списком, в котором мы устанавливаем следующие свойства:

Control Source  :   BodyColor
Row Source      :   SELECT Colors.Name FROM Colors ORDER BY Colors.Name;
Row Source Type   :   Table/Query

Когда пользователь увидит ваше поле со списком, он сможет нажать стрелку вниз на поле со списком и увидеть список цветов. Когда они выбирают цвет, форма сохраняет их выбор в столбце BodyColor.

В конкретной ситуации, как получить форму для хранения первичного (автономного) ключа для BodyColor? Я все еще хочу, чтобы пользователь выбрал BodyColor из поля со списком, но я не хочу, чтобы он видел / выбирал ПК. Спасибо.

1 Ответ

1 голос
/ 29 августа 2010

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

 Row Source : SELECT Colors.PK, Colors.Name FROM Colors ORDER BY Colors.Name

 Column Widths: 0; 2cm

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

Кстати, я действительно надеюсь, что ваша таблица не содержит столбца (поля) с именем name, потому что это действительно очень зарезервированное слово, которое сделает вашу жизнь крайне неприятной.

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