Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запрос с условием из поля со списком
 
 автор: ??????   (08.09.2006 в 00:00)
 
 

Доброго времени суток всем!

Вопрос следующего содержания:

Есть таблица, в ней три поля код, фамилия и адрес.
Есть форма на которой расположено поле со списком (его источник - это код) и два поля (для фамилии и адреса).

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

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

  Ответить  
 
 автор: osmor   (08.09.2006 в 00:00)
 
 

сделайте простую форму на основании вашей таблицы (можно мастером) октройте форму в режиме редактирования
в [red]заголовок[/red] формы вставьте поле со списком.
Дальше мастер спросит о способе получения значений
укажите "поиск записи в форме...."
далее следуйте указаниям мастера

  Ответить  
 
 автор: Вячеслав   (29.09.2006 в 17:07)   личное сообщение
 
 

Для вставки данных в другие поля на основе выбранного значения из справочной таблицы, нужно использовать функцию DLookup.
Например:
Ваша таблица содержит данные: Код, Фамилия, Адрес
Если у Вас есть другая таблица в которой нужно при выборе фамилили чтобы автоматически вставлялся адрес, пользуйтесь функцией DLookup.
В форме к создайте поле со списком "Выбор сотрудников" (например), в источнике строк с помощью мастера ... выберите вашу таблицу, выведите два поля Код и Фамилия (по возрастанию), укажите в свойствах поля число столбцов 2, присоединенный столбец 1, ширина столбцов 0см;5см, ширина списка 6см. Это Ваш список сотрудников по алфавиту.
Затем в событии поля После обновления, в процедуре сделайте следующее:
Me![Адрес] = DLookup("[Адрес]", "[Название Вашей таблицы]", "[Фамилия] = Forms![Название Вашей формы]![Фамилия]")
Ме![Адрес].Requery

  Ответить  
 
 автор: Explorer   (02.10.2006 в 10:14)   личное сообщение
23 Кб.
 
 

дополню, что...

в таких полях формы, как правило приходится отображать данные вида
[FirstName] & ", " & [LastName] & " " & [MiddleName] AS Employee

или например
[Country] & ", " & [PostalCode] & ", " & [City] & " " & [AddressLine] AS Address


отбирать такие данные Dlookup' ом и прописывать длинное условие запроса в десятке разных мест очень неудобно...

имеет смысл создать сохраненный запрос с заранее объединенными данными и уже из него подставлять сведения в поле на форме - что-то вроде

SELECT

CompanyCode, [LegalStatus] & ' "' & [CompanyName] AS Company, 
[Country] & ", " & [PostalCode] & " " & [Region] & " " & [City] & ", " & [AddressLine] AS Address


FROM tblCompanies;

как вариант можно сделать в глобальном модуле функцию с запросом и обращаться к ней передавая аргумент и Dlookup'ом забирая значение для поля формы:

ControlSource = q([EmployeeCode])

или

ControlSource = s([CompanyCode])

эз дискрайбд ин зе эттэчмент

  Ответить  
 
 автор: amba-l   (02.10.2006 в 12:58)   личное сообщение
 
 

а зачем сложности типа Dlookup ?
он тормозит сильно
можно
сделать источником данных формы-запрос на основании таблицы, который будет использовать значение поля со списком в качестве значения на отбор
или применить фильтр на форме
или, если вы вводите код в поле со списком, то увеличив кол-во столбцов в полесосписком вы можете отобразить еще два поля

  Ответить  
 
 автор: Explorer   (02.10.2006 в 13:37)   личное сообщение
22 Кб.
 
 

>а зачем сложности типа Dlookup ?

конечно, использование того или иного приема зависит от конкретной ситуации и решать нужно именно в контентексте - где длукапом, где селектом

в примере на скриншоте - скорость DlookUp вообще никакого значения не имеет

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList