powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вводишь город и улицу получаеш адрес?
9 сообщений из 9, страница 1 из 1
Вводишь город и улицу получаеш адрес?
    #32376347
Andrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблицы
Город - Key, City
Улица - Key, Street
Адрес - Key, KeyCity, KeyStreet
человек - Key, KeyAddress, Name

На форме есть город, улица, ИмяЧеловека
Нужен запрос который по вводу города и улицы в таблицу человека вставлял KeyAddress но не создавал новые город и улицу если они уже есть, а находил их в базе, то-же касается и адреса - если такой уже есть то его и подставляет, а если чего-то нет то только это что-то и создал.
У меня он создаёт всё новые и получается что Краснодар`ов у меня уже десяток хотя хватило-бы и одного.
Подскажите как создать такой запрос?
На данном этапе я борюсь с этим средствами VB но эти FindFirst мне не очень нравятся.
...
Рейтинг: 0 / 0
Вводишь город и улицу получаеш адрес?
    #32376377
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я б убрал таблицу Адрес, а в таблице "человек" сделал внешние ключи на город и улицу и индекс на их сочетание, если надо.
...
Рейтинг: 0 / 0
Вводишь город и улицу получаеш адрес?
    #32376381
Andrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том что в Адресе не только ключи к городу и улице там есть страна, область ... и к адресу обращаются не только Человек но и Фирма, Событие и т.д. и мне показалось что Адрес будет удобней.
...
Рейтинг: 0 / 0
Вводишь город и улицу получаеш адрес?
    #32376400
Осел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создаешь два комбобокса cbx1 b cbx2, у первого источник данных - "select Key, City from город" у второго "select Key, Street" from улица. после того как город и улица выбраны, а в таблице адрес есть уникальный индекс на их сочетание, находишь Key Адреса запросом "select key from Адрес where Адрес.KeySity= " & cbx1.value & "and адрес.KeyStreet=" & cbx2.Value. И никаких findFirst.
...
Рейтинг: 0 / 0
Вводишь город и улицу получаеш адрес?
    #32376448
Andrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
то Осёл:
Да но ведь разве это не тоже самое что и
set rs = OpenRecordset("Address")
str = "КодГорода=" & cbCity.value & " and КодУлицы=" & cbStreet.value
rs.findfirst str
Здесь я таким-же образо нашёл Address или нет то тогда
if rs.NoMatch then ...
Я думал можно как-то универсально, автоматом.
а если данные этих боксов привязывать к данным таблицы то и получиться дубликат
...
Рейтинг: 0 / 0
Вводишь город и улицу получаеш адрес?
    #32377706
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrik,
Автоматом я не вижу способа сделать это. К тому же мы не учли,что город и улица - это еще не адрес. Может быть несколько адресов (сам говорил, что столбцов в таблице адреса больше) и искать ID адреса только по значению этих полей - неправильно. Короче, структура кривая...(по-моему)
...
Рейтинг: 0 / 0
Вводишь город и улицу получаеш адрес?
    #32377811
Andrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Согласен, что возможно кривая но мне показалось лучше будет когда в адрес входит Страна-Область-Город-Улица. Если это со стороны баз данных не верно то как лучше не писть же всё в основную таблицу?
...
Рейтинг: 0 / 0
Вводишь город и улицу получаеш адрес?
    #32377824
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробую понять, что надо...

Есть таблица "Человек" с полями
- код улицы
- код города
- код адреса

Причем для каждого человека и только для него, есть одна и только одна запись адреса. Т.е. кол-во людей = кол-во адресов.

Если так, то очевидно, что содержимое таблицы "адрес" следовало бы перенести в состав таблицы "человек" и не страдать садомазохизмом. Порядок заполнения адреса, вернее удобство его ввода - другой вопрос. Если хочется сделать пользователям подарок, имхо, лучший способ, проставиться администратору ближайшего загса, или, лучше, налоговой (у них база побольше) и взять у него базы стран, городов, районов и улиц. И проставить наиболее часто встречающиеся как значения по умолчанию. Какие города содержат какие улицы ты все равно не найдешь, иначе только служебные таблицы будут больше сотни твоих баз, но вводить "Абаканский/Абырвалгский район" будет куда как проще.

Т.е. хранить в таблице "человек" либо
индекс
страна (код)
регион (код)
район (код)
нас. пункт (код)
улица (код)
дом
корпус
квартира
, либо
страна (код)
город (код)
район (код)
строка- полный адрес
, где город, район - "мусорные" поля, нужные лишь для удобства редактирования записи.
...
Рейтинг: 0 / 0
Вводишь город и улицу получаеш адрес?
    #32378942
Andrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо за разьяснения, я пришёл к выводу что действительно лишняя таблица [Адрес] не нужна хотя на на одной улице в одном городе в одной стране может находится множество фирм. Вообщем для этого и была созданна таблица, для экономии места.
Я просто не понял почему при вводе уже существующего города даже без таблицы [Адрес] всё равно создаётся ещё одна запись несмотря на то что такая уже есть. Пришлось из свободного Edit`а брать Город и самому искать есть ли уже такой и если нет то самому добовлять.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вводишь город и улицу получаеш адрес?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]