|
|
|
Вводишь город и улицу получаеш адрес?
|
|||
|---|---|---|---|
|
#18+
Есть таблицы Город - Key, City Улица - Key, Street Адрес - Key, KeyCity, KeyStreet человек - Key, KeyAddress, Name На форме есть город, улица, ИмяЧеловека Нужен запрос который по вводу города и улицы в таблицу человека вставлял KeyAddress но не создавал новые город и улицу если они уже есть, а находил их в базе, то-же касается и адреса - если такой уже есть то его и подставляет, а если чего-то нет то только это что-то и создал. У меня он создаёт всё новые и получается что Краснодар`ов у меня уже десяток хотя хватило-бы и одного. Подскажите как создать такой запрос? На данном этапе я борюсь с этим средствами VB но эти FindFirst мне не очень нравятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2004, 19:08 |
|
||
|
Вводишь город и улицу получаеш адрес?
|
|||
|---|---|---|---|
|
#18+
Я б убрал таблицу Адрес, а в таблице "человек" сделал внешние ключи на город и улицу и индекс на их сочетание, если надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2004, 19:33 |
|
||
|
Вводишь город и улицу получаеш адрес?
|
|||
|---|---|---|---|
|
#18+
Дело в том что в Адресе не только ключи к городу и улице там есть страна, область ... и к адресу обращаются не только Человек но и Фирма, Событие и т.д. и мне показалось что Адрес будет удобней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2004, 19:42 |
|
||
|
Вводишь город и улицу получаеш адрес?
|
|||
|---|---|---|---|
|
#18+
Создаешь два комбобокса cbx1 b cbx2, у первого источник данных - "select Key, City from город" у второго "select Key, Street" from улица. после того как город и улица выбраны, а в таблице адрес есть уникальный индекс на их сочетание, находишь Key Адреса запросом "select key from Адрес where Адрес.KeySity= " & cbx1.value & "and адрес.KeyStreet=" & cbx2.Value. И никаких findFirst. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2004, 20:21 |
|
||
|
Вводишь город и улицу получаеш адрес?
|
|||
|---|---|---|---|
|
#18+
то Осёл: Да но ведь разве это не тоже самое что и set rs = OpenRecordset("Address") str = "КодГорода=" & cbCity.value & " and КодУлицы=" & cbStreet.value rs.findfirst str Здесь я таким-же образо нашёл Address или нет то тогда if rs.NoMatch then ... Я думал можно как-то универсально, автоматом. а если данные этих боксов привязывать к данным таблицы то и получиться дубликат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2004, 21:48 |
|
||
|
Вводишь город и улицу получаеш адрес?
|
|||
|---|---|---|---|
|
#18+
Andrik, Автоматом я не вижу способа сделать это. К тому же мы не учли,что город и улица - это еще не адрес. Может быть несколько адресов (сам говорил, что столбцов в таблице адреса больше) и искать ID адреса только по значению этих полей - неправильно. Короче, структура кривая...(по-моему) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 19:10 |
|
||
|
Вводишь город и улицу получаеш адрес?
|
|||
|---|---|---|---|
|
#18+
Согласен, что возможно кривая но мне показалось лучше будет когда в адрес входит Страна-Область-Город-Улица. Если это со стороны баз данных не верно то как лучше не писть же всё в основную таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 22:15 |
|
||
|
Вводишь город и улицу получаеш адрес?
|
|||
|---|---|---|---|
|
#18+
Попробую понять, что надо... Есть таблица "Человек" с полями - код улицы - код города - код адреса Причем для каждого человека и только для него, есть одна и только одна запись адреса. Т.е. кол-во людей = кол-во адресов. Если так, то очевидно, что содержимое таблицы "адрес" следовало бы перенести в состав таблицы "человек" и не страдать садомазохизмом. Порядок заполнения адреса, вернее удобство его ввода - другой вопрос. Если хочется сделать пользователям подарок, имхо, лучший способ, проставиться администратору ближайшего загса, или, лучше, налоговой (у них база побольше) и взять у него базы стран, городов, районов и улиц. И проставить наиболее часто встречающиеся как значения по умолчанию. Какие города содержат какие улицы ты все равно не найдешь, иначе только служебные таблицы будут больше сотни твоих баз, но вводить "Абаканский/Абырвалгский район" будет куда как проще. Т.е. хранить в таблице "человек" либо индекс страна (код) регион (код) район (код) нас. пункт (код) улица (код) дом корпус квартира , либо страна (код) город (код) район (код) строка- полный адрес , где город, район - "мусорные" поля, нужные лишь для удобства редактирования записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 22:49 |
|
||
|
Вводишь город и улицу получаеш адрес?
|
|||
|---|---|---|---|
|
#18+
Большое спасибо за разьяснения, я пришёл к выводу что действительно лишняя таблица [Адрес] не нужна хотя на на одной улице в одном городе в одной стране может находится множество фирм. Вообщем для этого и была созданна таблица, для экономии места. Я просто не понял почему при вводе уже существующего города даже без таблицы [Адрес] всё равно создаётся ещё одна запись несмотря на то что такая уже есть. Пришлось из свободного Edit`а брать Город и самому искать есть ли уже такой и если нет то самому добовлять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 17:41 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32376377&tid=1677175]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
186ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 499ms |

| 0 / 0 |
