|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.12.2009, 16:37 | #1 |
Регистрация: 06.12.2009
Сообщений: 6
|
Access 2003: как сделать изменяющийся список выбора в зависимости от значения в соседнем поле
Здравствуйте!
Нужен совет спеца по БД и, в частности, аксесу: Есть такая проблема: Делаю базу данных, в которую будут вноситься оплаченные счета по предприятию. У предприятия есть представительства в Петербурге, Москве и Самаре (поле "Город"). В Петербурге есть подразделения А, Б и В. В Москве - только Г, в Самаре - только Д (поле "Подразделение"). Вопрос: как сделать так, чтобы при выборе города менялись варианты выбора подразделения? Т.е. при выборе Петербурга был выбор из А, Б и В, при выборе Москвы или Самары выбора не было, были Г и Д соответственно. Нужно для дополнительного контроля за правильностью ввода данных: вот выберет тётенька лет 50ти Москву, попытается найти подразделение А, и поймёт, что надо было указывать Санкт-Петербург, исправлять надо. Или введёт Самару, увидит, что это Д без вариантов, и вспомнит, что счёт в Москве проходил. Кроме той таблицы, куда это вносится, есть ещё таблица "Города-подразделения", где есть столбец-ключ "Подразделения", и к каждому подразделению в соседнем столбце приписан город, где такое существует. Указана связь "один-ко-многим" с главной таблицей по полю "Подразделение". И ещё есть таблица "Города" с единственным столбцом "Города", из которой делается список выбора городов для главной таблицы. Из неё идут связи "один-ко-многим" как к главной таблице в поле "Город", так и в таблицу "Подразделения" к полю "Город." Аксес 2003. Максимум, до чего я дошла: при вводе данных я могу выбрать город, потом при попытке выбрать подразделение у меня ещё раз спрашивается город, в потом, в зависимости от того, что я ручками наберу во всплывающее окошко, появится выбор подразделений. И то, только если вбиваю данные в таблице, в форме это не работает. По сравнению с этим хотелось бы, чтобы он база не переспрашивала значение поля "Город", а считывала его самостоятельно из уже имеющихся. Да, и чтобы это можно было вводить через форму. Пример того, что у меня сейчас есть, лежит здесь: http://files.mail.ru/L7QYBH Что очень хочется: 1. Мою же базу, но с работающей "подстановкой с условием" (назовём это так), и комментарием, где что прописали 2. Комментарий о том, что куда надо прописать. Желательно "для чайников", ибо слэнгом не владею. Имейте совесть, и не делайте, пожалуйста, следующее: 1. Не отправляйте меня читать мануал: такой задачи в мануалах найдено не было 2. Не отправляйте меня гуглить: всю ночь сидела на разных форумах, ещё никому до меня нормально на этот вопрос не ответили 3. Не ругайтесь на счёт моих умственных способностей. Ноу коммент. 4. Не говорите, что это элементарно. Если это элементарно, то что Вам стоит это всё быстренько показать, а? Да, и тяжёлую артиллерию в виде брата-программера (но не БД-шника) и друга-БД-шника я уже в ход пускала. Пока безрезультатно. И вообще я дэвушка, и аксесом занималась 7 лет назад в универе в течение 4х занятий. Заранее спасибо! |
06.12.2009, 16:49 | #2 |
Пользователь
Регистрация: 29.11.2009
Сообщений: 51
|
Здравствуйте.
Необходимо в запросе на источник строк подразделения в поле, где указывается город поставить условие на значение [Город](название элемента в форме). |
06.12.2009, 17:59 | #3 |
Регистрация: 06.12.2009
Сообщений: 6
|
Изначально было:
Запрос на подразделения (источник строк) в SQL выглядел следующим образом: SELECT Подразделения.Подразделение FROM Подразделения WHERE ((([MAIN TABLE]![City])=[Подразделения]![Город])); Сейчас исправила на SELECT Подразделения.Подразделение FROM Подразделения WHERE ((([MAIN TABLE]![City])=[Forms]![MAIN TABLE]![City])); Всё равно просит вводить город ещё раз перед тем, как вводить что-то в подразделения. |
06.12.2009, 18:20 | #4 |
Регистрация: 06.12.2009
Сообщений: 6
|
Есть ещё мысль: такое сделать нельзя. Пока я вбиваю это всё в форму, это всё ещё не в базе данных. Следовательно, Аксес не может "обратиться к БД" и запросить, а какие же подразделения соответствуют этому введённому городу. Ибо пока всё это в форме, оно ещё не в БД, и Аксес не соотносит то, что сейчас видится на экране с тем, что есть внутри самой БД.
Это всё можно сделать через 1. формы (чтобы выпадающие списочки именно такими были, как я хочу) 2. при сохранении записи отдельной проверкой правильности введения. |
06.12.2009, 18:25 | #5 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
Здравствуйте tanchikb.
Для увеличения вероятности оказания помощи, выкладывайте архив с заранее подготовленным файлом БД (подготовка подразумевает - избавление от переизбыточных данных, избавление от OLE объектов и сжатие средствами MS Access) непосредственно на странице с вопросом. Сторонние сайты не всем доступны и нет желания вместе с Вашим продуктом получать "бесплатные банеры" с этих сайтов. Евгений. |
06.12.2009, 18:38 | #6 |
Пользователь
Регистрация: 29.11.2009
Сообщений: 51
|
я составляю такие запросы без указания пути к форме, те:
SELECT Подразделения.Подразделение FROM Подразделения WHERE ((([MAIN TABLE]![City])=[City])); |
06.12.2009, 18:43 | #7 |
Регистрация: 06.12.2009
Сообщений: 6
|
В приложении - база, на которой я прошу показать принцип работы
|
06.12.2009, 18:49 | #8 |
Пользователь
Регистрация: 29.11.2009
Сообщений: 51
|
В запрос на подразделения необходимо добавить таблицу город и в условии на значение поставить [City]
|
06.12.2009, 19:44 | #9 |
Регистрация: 06.12.2009
Сообщений: 6
|
В приложениях - avi с результатами в зависимости от запроса, который используется как источник строк
Zapros1: SELECT Подразделения.Подразделение FROM Подразделения WHERE ((([MAIN TABLE]![City])=[Подразделения]![Город])); Zapros2: SELECT Подразделения.Подразделение FROM Подразделения WHERE ((([MAIN TABLE]![City])=[Forms]![MAIN TABLE]![City])); Zapros3: SELECT Подразделения.Подразделение FROM Подразделения WHERE ((([MAIN TABLE]![City])=[City])); katrina-n, не могли бы Вы приложить какую-нибудь маааленькую базу, где это работает? Мало ли где я ещё могла ошибиться (например, в связях). |
06.12.2009, 19:57 | #10 |
Пользователь
Регистрация: 29.11.2009
Сообщений: 51
|
Окей У меня поле со списком.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
В зависимости от выбора в Select изменить значения другого Select | Tayfun | HTML и CSS | 3 | 18.08.2011 00:05 |
Помогите пожалуйста сделать поиск по базе данных в форме! Access 2003 | LilijaSt | Microsoft Office Access | 19 | 25.12.2010 10:13 |
Выбор списка в листбоксе в зависимости от выбора в Комбоксе | Артур Иваныч | Microsoft Office Excel | 7 | 13.11.2009 16:52 |
В зависимости от интервала как ставить значения | Apostolx | Microsoft Office Excel | 7 | 20.10.2009 17:21 |
Как сделать возможность выбора размещения алисаса? | artemavd | БД в Delphi | 4 | 25.03.2009 22:57 |