Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 двойная подмена???  [new]
Андрей Стадников
Member

Откуда: Люботин, Харьковской обл., Украина
Сообщений: 369
Помогите решить проблему:

есть справочник с полями код, тип улицы и название улицы
есть таблица, связанная с данным справочником и содержащая поле код (связь код-код, разумеется).

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

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

Заранее благодарен.
15 июн 06, 11:03    [2773321]     Ответить | Цитировать Сообщить модератору
 Re: двойная подмена???  [new]
NG
Member

Откуда: Екатеринбург
Сообщений: 1492
Андрей Стадников
при вводе в форме поле со списком для ввода данного поля в таблицу не подходит, так как подстановка работает только для кода, а выбирать из раскрывающегося списка из нескольких тысяч улиц неудобно.

Не работающая подстановка в поле со списком -- известный глюк в Access, начиная с 2000. Проблема в использовании синтаксиса ANSI 92. Попробуйте изменить запрос, являющийся источником строк для поля со списком.
Вместо:
SELECT Field1, Field2 FROM Table1 ...
Напишите:
SELECT DISTINCT Field1, Field2 FROM Table1 ...
Должно помочь. Пробуйте!
15 июн 06, 11:57    [2773754]     Ответить | Цитировать Сообщить модератору
 Re: двойная подмена???  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Андрей Стадников
какой код нужно повесить на "после обновления" названия улицы, чтобы по данным этих двух полей со списками в таблицу записался соответствующий код?
Вам надо записать КОД УЛИЦЫ, так? Значит и взять вы его должны из того списка, где он у вас есть. Очевидно тот список, что выводит у вас названия улиц, должен возвращать коды этих улиц.

Любой список содержат несколько столбцов, часть из них при этом можно отображать часть - нет, один из этих столбцов - связанный столбец (BoundColumn). Его значения и возвращаются данным списком в качестве Value. То есть, в вашем случае, вам надо иметь два столбца в списке - КОД и Наименование. Код не показывать, Наименование показывать, столбец Код - связанный. Тогда выражение Me("СписокУлиц") дает вам код выбранной в списке улицы.

Потом этот код вам надо записать в таблицу. Если эта таблица - источник текущей формы, и вам надо код этой улицы записать в текущую ее запись, то все дело сводится к одной строчке:
Me("ПолеКодаУлицыТаблицы")=Me("СписокУлиц")

Который и можно повесить на "после обновления".Пробуйте
15 июн 06, 11:58    [2773769]     Ответить | Цитировать Сообщить модератору
 Re: двойная подмена???  [new]
Андрей Стадников
Member

Откуда: Люботин, Харьковской обл., Украина
Сообщений: 369
дело в том. что в свободных полях со списками, привязанными к типу улицы и названию улицы не будет обнозначного определения кода (см. приложенный рис.)
Однозначно код определяется только по значениям обеих(!) полей

напр.: улиц, переулков может быть много; объектов с одним названием тоже - ул. Островского, пер. Островского - а коды будут разные.

если бы код определялся по обному полю, было бы просто :)

К сообщению приложен файл. Размер - 0Kb
16 июн 06, 09:46    [2777682]     Ответить | Цитировать Сообщить модератору
 Re: двойная подмена???  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Андрей Стадников
напр.: улиц, переулков может быть много; объектов с одним названием тоже - ул. Островского, пер. Островского - а коды будут разные.
Так и пишите эти коды (которые разные).
Андрей Стадников
в свободных полях со списками, привязанными к типу улицы и названию улицы не будет обнозначного определения кода
А вы сделайте чтоб он там был. В итоге ведь из ваших структур наверняка (запросом) можно получить такой список:
Уникальный код  Название
------------------------------
2222            Островского (пер)
3333            Островского (ул)
Вот этот список вы и используйте в качестве источника строк вашего списка. При выборе берите "Уникальный код" и пишите его куда вам надо. Если вы не можете получить подобный список, тогда бессмысленно говорить о реляциях вообще.
16 июн 06, 10:05    [2777780]     Ответить | Цитировать Сообщить модератору
 Re: двойная подмена???  [new]
Андрей Стадников
Member

Откуда: Люботин, Харьковской обл., Украина
Сообщений: 369
Karfaqen

Уникальный код  Название
------------------------------
2222            Островского (пер)
3333            Островского (ул)


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

Спасибо
16 июн 06, 11:52    [2778610]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить