Запрос и ключевые поля

Шуримар
Дата: 07.01.2012 22:50:34
SELECT Заказы.[Фамилия], Заказы.[ Должность], IIf(IsNull([Фамилия])=-1,"",IIf(IsNull([Должность])=-1,[Фамилия],([Фамилия] & "  (" & [Должность] & ")"))) AS [Фамилия]
FROM Заказы;

Таблица Заказы имеет столбцы [Фамилия] и [Должность]. Данные в эти столбцы берутся через связь один-ко-многим из таблиц Сотрудники и Должность. Этим запросом хотел из [Фамилия][Должность] получить [Фамилия (Должность)]. Но в результате получается что вместо фамилии и должности выводится их ID - [1 (1)].

Как сделать так, чтобы вместо идентификационных номеров были значения?
Contrast
Дата: 07.01.2012 23:17:16
Шуримар
Как сделать так, чтобы вместо идентификационных номеров были значения?


Полагаю, их следует взять из таблиц Сотрудники и Должности.
Нужно добавить в предложение FROM эти таблицы с соответствующими JOIN-ами.
Ну и выбирать соответствующие поля из них же.

Если с JOIN-ами бороться не с руки, можно нарисовать схему данных, тогда эти связи получатся автоматом.
Contrast
Дата: 07.01.2012 23:21:41
Шуримар
Этим запросом хотел из [Фамилия][Должность] получить [Фамилия (Должность)]. Но в результате получается что вместо фамилии и должности выводится их ID - [1 (1)].


... Судя по этим словам, есть работоспособный запрос, который делает почти то, что хочется.
Может стоит лишь немного его "подрихтовать"?
Шуримар
Дата: 07.01.2012 23:34:03
Вот я и не могу догадаться как "рихтовать" Может где какие настройки есть. Как например, в комбобоксе на вкладке макет, можно указать что данные брать из второго (или любого) столбца, ширина первого с ID при этом равен нулю и его не видно. А в запросе не знаю как это сделать.
Программист-Любитель
Дата: 08.01.2012 00:32:49
Запрос никакого отношения к комбобокасам не имеет.

Полей подстановки в таблицах быть не должно. В таблицах должны лежать (и быть видны) только коды, айдишники.


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

Собсно этот совет вам уже был дан пару часов назад - последуйте ему.
mds_world
Дата: 08.01.2012 00:36:34
Шуримар
Вот я и не могу догадаться как "рихтовать" Может где какие настройки есть. Как например, в комбобоксе на вкладке макет, можно указать что данные брать из второго (или любого) столбца, ширина первого с ID при этом равен нулю и его не видно. А в запросе не знаю как это сделать.

Вообще-то, вам уже подсказали что делать. В конструкторе запросов добавить таблицу Сотрудники и связать ид сотрудника с соотвествующим полем таблицы заказов. Тогда появится возможность вывести ФИО из таблицы сотрудников
Шуримар
Дата: 08.01.2012 01:02:29
В таблице "Заказы" есть столбцы [Фамилия] и [Должность] и если я в запросе добавлю таблицы: Заказы, Сотрудники, Должность, то выдается сообщение: "Ссылка на поле [Должность] может относиться к полям нескольких таблиц, перечисленных в предложении FROM инструкции SQL"
Отсюда-то и родился вопрос.
Может сам текст запроса с ошибкой написан. Но так как советовали сделать, еще перед тем как это сообщение написать попробовал - не получилось. Вот и обратился за помощью.

А связи создавал при создании таблицы: Тип данных - числовой, затем - мастер подстановок выбрал таблицу из которой подставлять и связь готова. Только галочку "обеспечение целостных данных" и "каскадное обновление связанных полей" поставил.
ё
Дата: 08.01.2012 06:24:59
Шуримар
В таблице "Заказы" есть столбцы [Фамилия] и [Должность] и если я в запросе добавлю таблицы: Заказы, Сотрудники, Должность, то выдается сообщение: "Ссылка на поле [Должность] может относиться к полям нескольких таблиц, перечисленных в предложении FROM инструкции SQL"
Отсюда-то и родился вопрос.
Может сам текст запроса с ошибкой написан. Но так как советовали сделать, еще перед тем как это сообщение написать попробовал - не получилось. Вот и обратился за помощью.

А связи создавал при создании таблицы: Тип данных - числовой, затем - мастер подстановок выбрал таблицу из которой подставлять и связь готова. Только галочку "обеспечение целостных данных" и "каскадное обновление связанных полей" поставил.

где запрос-то ??

зы
вот был, как-то топик, что-то типа - "Чем плохи поля подстановок ?"
туда вместо ответов, можно тупо ссылки на такие топики, как этот, постить , просто - без слов
представления о данных, с которыми имеет дело - нет, как такового,
а причина, всего навсего - "поля подстановок" ))
alvk
Дата: 08.01.2012 06:55:16
ё,

плохо то, что их этому сейчас преподаватели учат.

p.s. "Папа, а как пишется правильно, хирург или херург?...."
Программист-Любитель
Дата: 08.01.2012 10:37:37
alvk
ё,

плохо то, что их этому сейчас преподаватели учат.

p.s. "Папа, а как пишется правильно, хирург или херург?...."

Во-во, тут в соседнем топике как раз такой новый "преподаватель" объявился.