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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Помогите с запросом (2003)
 
 автор: koralnik   (07.07.2010 в 06:11)   личное сообщение
 
 

Нужна помощь в решении такой задачи:
Есть таблица в которой 1 столбец - перечень областей, 2 столбец - перечень городов
Нужно сделать форму в которой есть два поля со списком в 1 выберается область, а во втором в списке должны оказаться только те города которые в таблице принадлежат этой области.
Короче нужно иметь возможность выбора города только из конкретной области
Очень надо! (насколько я понимаю нужно сделать запрос на выборку - как?)
Заранее благодарю!

  Ответить  
 
 автор: snipe   (07.07.2010 в 06:55)   личное сообщение
14 Кб.
 
 

Тут на форуме масса примеров - если поискать то можно все найти
ну как вариант (не блещущий оригинальностью) - в прицепе =>

  Ответить  
 
 автор: koralnik   (09.07.2010 в 10:30)   личное сообщение
 
 

Пример меня полностью устроил, но самостоятельно повторить пока не удалось!
Разбираюсь с обработчиками событий!

  Ответить  
 
 автор: snipe   (09.07.2010 в 11:06)   личное сообщение
 
 

сложного ни чего нет
у комбобокса есть источник строк для списка ( свойство RowSource) - этим источником может служить таблица, сохраненный запрос или запрос написанный на SQL - последним и воспользуемся
кроме того есть событие После обновления (AfterUpdate) - Т.е. когда Вы делаете выбор в комбобоксе возникает это событие

Кроме того у формы (или подчиненной формы) есть свойство Источник записей (свойство RecordSource) - этим источником может служить таблица, сохраненный запрос или запрос написанный на SQL - последним утверждением и будем пользоваться

теперь при возникновении события После обновления комбобокса Область нужно изменить Источник строк комбобокса Город (запрос лежащий в основе источника строк меняется в зависимости от значения комбобокса) и меняется Источник записей подформы в зависимости от состояния комбобоксов (там функция специальная есть а вызов функции идет из события AfterUpdate каждого комбобокса)

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

  Ответить  
 
 автор: Stanislav   (07.07.2010 в 12:48)   личное сообщение
22 Кб.
 
 

Принцип такой:
1. Создаешь 2 таблицы: Area, City.
2. Создаешь третью таблицу Area_City, которая будет связующей между таблицами Area, City.
3. На форме по событию AfterUpdate комбобокса, в котором указаны области, изменяешь источник данных комбобокса, в котором указаны города.
См. пример.

  Ответить  
 
 автор: Мюллер   (07.07.2010 в 13:49)   личное сообщение
 
 


1. Создаешь 2 таблицы: Area, City.
2. Создаешь третью таблицу Area_City, которая будет связующей между таблицами Area, City.



Плохой совет. Достаточно одной таблицы.

  Ответить  
 
 автор: kot_k_k   (07.07.2010 в 13:49)   личное сообщение
 
 

обоснуй - как это одной

  Ответить  
 
 автор: Мюллер   (07.07.2010 в 13:52)   личное сообщение
 
 

Посмотри пример snipe-a.

  Ответить  
 
 автор: kot_k_k   (07.07.2010 в 13:57)   личное сообщение
 
 

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

вот он так создаст а потом у него будет Москва, Мсква, москва.

судя по его вопросу - начинает. так что совет считаю правильным.

  Ответить  
 
 автор: Мюллер   (07.07.2010 в 14:05)   личное сообщение
 
 


вот он так создаст а потом у него будет Москва, Мсква, москва.


Справочники из нескольких таблиц не смогут предотвратить это.

  Ответить  
 
 автор: Силblч   (07.07.2010 в 14:08)   личное сообщение
 
 

ключи и автоподстановка сможет, по крайней мере, предупредить :)

  Ответить  
 
 автор: kot_k_k   (07.07.2010 в 14:16)   личное сообщение
 
 

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

  Ответить  
 
 автор: Силblч   (07.07.2010 в 14:22)   личное сообщение
 
 

а я создал справочник городов, районов, областей.... сам заполнил его руцями :)) согласно данным с Почты... и всё... никому больше не надо вводить ничего

  Ответить  
 
 автор: Lukas   (07.07.2010 в 14:54)   личное сообщение
 
 

Радикальный метод, но не панацея.
Завтра, к примеру, Львов переименуют в Бендеровск.
Или построят новую деревню "Нью Васюки".
Или объединят две деревни "Старые живопырки" и "Новые живопырки" в "Большие живопырки".
То есть вводить/изменять все равно придется.
Хорошо, если Магистр под боком, а если где-то пузо греет на лазурном берегу?

  Ответить  
 
 автор: Мюллер   (07.07.2010 в 15:41)   личное сообщение
 
 


Или объединят две деревни "Старые живопырки" и "Новые живопырки" в "Большие живопырки".


У нас это случается значительно чаще, чем это может показаться на первый взгляд.
По поводу одинаковых названий - таких названий полно. Деревень с названием углы, заречье и пр. полно в каждой области. Зачастую встречаются в одном районе деревни с одинаковым названием.
Так, что сделать защищенную систему можно только разрешением добавления записей путем считывания информации из официальных справочников Минстата.
В рФ - это называется, по-моему, КЛАДР, В РБ - это СОАТО.
Таким образом разбивать на несколько таблиц справочник населенных пунктов нецелесообразно.

  Ответить  
 
 автор: Силblч   (07.07.2010 в 16:02)   личное сообщение
 
 

я сомневаюсь в этом :)

  Ответить  
 
 автор: Мюллер   (07.07.2010 в 16:45)   личное сообщение
 
 


я сомневаюсь в этом :)


В чем именно?

  Ответить  
 
 автор: Силblч   (07.07.2010 в 17:05)   личное сообщение
 
 

там Лукас раскрыл тему сисег :)

  Ответить  
 
 автор: Lukas   (07.07.2010 в 16:12)   личное сообщение
 
 

Тут еще зависит от масштаба задачи:
Одно дело серверное решение уровня предприятия(холдинга), где все дОлжно быть по уму,
другое дело адресная книга одноклассников, где все лежит в плоской табличке в абсолютно ненормализованном виде.

  Ответить  
 
 автор: Силblч   (07.07.2010 в 16:17)   личное сообщение
 
 

100пудов!

  Ответить  
 
 автор: Силblч   (07.07.2010 в 16:01)   личное сообщение
 
 


Радикальный метод, но не панацея.
Завтра, к примеру, Львов переименуют в Бендеровск.
...
Хорошо, если Магистр под боком, а если где-то пузо греет на лазурном берегу?


[панацея]
Магистр, перед тем как уехать на лазурный берег греть пузо,
всегда оставляет на своем рабочем столе или на рабочем столе того, кто остается выполнять обязанности Магистра, ярлык к текстовому файлу с названием "Что делать, Достоевский"
тама все ходы записаны :)

Ваш случай конкретно к справочнику "Города и веси" не критичен :)
Одну-две записи можно исправить (в отдельном справочнике - дата переименования, IDOBJOLD, IDOBJNEW)
это правильный подход, я так щетаю
[/панацея]

  Ответить  
 
 автор: Lukas   (07.07.2010 в 16:14)   личное сообщение
 
 

"Что делать, Достоевский"



Как в анекдоте про три конверта в сейфе начальника.

...тама все ходы записаны :)


Абсолютно грамотный подход.

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