Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2009, 16:37   #1
tanchikb
 
Регистрация: 06.12.2009
Сообщений: 6
По умолчанию Access 2003: как сделать изменяющийся список выбора в зависимости от значения в соседнем поле

Здравствуйте!

Нужен совет спеца по БД и, в частности, аксесу:

Есть такая проблема:
Делаю базу данных, в которую будут вноситься оплаченные счета по предприятию. У предприятия есть представительства в Петербурге, Москве и Самаре (поле "Город"). В Петербурге есть подразделения А, Б и В. В Москве - только Г, в Самаре - только Д (поле "Подразделение").

Вопрос: как сделать так, чтобы при выборе города менялись варианты выбора подразделения? Т.е. при выборе Петербурга был выбор из А, Б и В, при выборе Москвы или Самары выбора не было, были Г и Д соответственно.

Нужно для дополнительного контроля за правильностью ввода данных: вот выберет тётенька лет 50ти Москву, попытается найти подразделение А, и поймёт, что надо было указывать Санкт-Петербург, исправлять надо. Или введёт Самару, увидит, что это Д без вариантов, и вспомнит, что счёт в Москве проходил.

Кроме той таблицы, куда это вносится, есть ещё таблица "Города-подразделения", где есть столбец-ключ "Подразделения", и к каждому подразделению в соседнем столбце приписан город, где такое существует. Указана связь "один-ко-многим" с главной таблицей по полю "Подразделение".

И ещё есть таблица "Города" с единственным столбцом "Города", из которой делается список выбора городов для главной таблицы. Из неё идут связи "один-ко-многим" как к главной таблице в поле "Город", так и в таблицу "Подразделения" к полю "Город."

Аксес 2003.

Максимум, до чего я дошла: при вводе данных я могу выбрать город, потом при попытке выбрать подразделение у меня ещё раз спрашивается город, в потом, в зависимости от того, что я ручками наберу во всплывающее окошко, появится выбор подразделений. И то, только если вбиваю данные в таблице, в форме это не работает.
По сравнению с этим хотелось бы, чтобы он база не переспрашивала значение поля "Город", а считывала его самостоятельно из уже имеющихся. Да, и чтобы это можно было вводить через форму.

Пример того, что у меня сейчас есть, лежит здесь:
http://files.mail.ru/L7QYBH

Что очень хочется:
1. Мою же базу, но с работающей "подстановкой с условием" (назовём это так), и комментарием, где что прописали
2. Комментарий о том, что куда надо прописать. Желательно "для чайников", ибо слэнгом не владею.

Имейте совесть, и не делайте, пожалуйста, следующее:
1. Не отправляйте меня читать мануал: такой задачи в мануалах найдено не было
2. Не отправляйте меня гуглить: всю ночь сидела на разных форумах, ещё никому до меня нормально на этот вопрос не ответили
3. Не ругайтесь на счёт моих умственных способностей. Ноу коммент.
4. Не говорите, что это элементарно. Если это элементарно, то что Вам стоит это всё быстренько показать, а? Да, и тяжёлую артиллерию в виде брата-программера (но не БД-шника) и друга-БД-шника я уже в ход пускала. Пока безрезультатно.
И вообще я дэвушка, и аксесом занималась 7 лет назад в универе в течение 4х занятий.

Заранее спасибо!
tanchikb вне форума Ответить с цитированием
Старый 06.12.2009, 16:49   #2
katrina-n
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 51
По умолчанию

Здравствуйте.
Необходимо в запросе на источник строк подразделения в поле, где указывается город поставить условие на значение [Город](название элемента в форме).
katrina-n вне форума Ответить с цитированием
Старый 06.12.2009, 17:59   #3
tanchikb
 
Регистрация: 06.12.2009
Сообщений: 6
По умолчанию

Изначально было:
Запрос на подразделения (источник строк) в SQL выглядел следующим образом:

SELECT Подразделения.Подразделение
FROM Подразделения
WHERE ((([MAIN TABLE]![City])=[Подразделения]![Город]));


Сейчас исправила на

SELECT Подразделения.Подразделение
FROM Подразделения
WHERE ((([MAIN TABLE]![City])=[Forms]![MAIN TABLE]![City]));

Всё равно просит вводить город ещё раз перед тем, как вводить что-то в подразделения.
tanchikb вне форума Ответить с цитированием
Старый 06.12.2009, 18:20   #4
tanchikb
 
Регистрация: 06.12.2009
Сообщений: 6
По умолчанию

Есть ещё мысль: такое сделать нельзя. Пока я вбиваю это всё в форму, это всё ещё не в базе данных. Следовательно, Аксес не может "обратиться к БД" и запросить, а какие же подразделения соответствуют этому введённому городу. Ибо пока всё это в форме, оно ещё не в БД, и Аксес не соотносит то, что сейчас видится на экране с тем, что есть внутри самой БД.
Это всё можно сделать через 1. формы (чтобы выпадающие списочки именно такими были, как я хочу) 2. при сохранении записи отдельной проверкой правильности введения.
tanchikb вне форума Ответить с цитированием
Старый 06.12.2009, 18:25   #5
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте tanchikb.
Для увеличения вероятности оказания помощи, выкладывайте архив с заранее подготовленным файлом БД (подготовка подразумевает - избавление от переизбыточных данных, избавление от OLE объектов и сжатие средствами MS Access) непосредственно на странице с вопросом. Сторонние сайты не всем доступны и нет желания вместе с Вашим продуктом получать "бесплатные банеры" с этих сайтов.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 06.12.2009, 18:38   #6
katrina-n
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 51
По умолчанию

я составляю такие запросы без указания пути к форме, те:
SELECT Подразделения.Подразделение
FROM Подразделения
WHERE ((([MAIN TABLE]![City])=[City]));
katrina-n вне форума Ответить с цитированием
Старый 06.12.2009, 18:43   #7
tanchikb
 
Регистрация: 06.12.2009
Сообщений: 6
По умолчанию

В приложении - база, на которой я прошу показать принцип работы
Вложения
Тип файла: zip example.zip (25.6 Кб, 70 просмотров)
tanchikb вне форума Ответить с цитированием
Старый 06.12.2009, 18:49   #8
katrina-n
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 51
По умолчанию

В запрос на подразделения необходимо добавить таблицу город и в условии на значение поставить [City]
katrina-n вне форума Ответить с цитированием
Старый 06.12.2009, 19:44   #9
tanchikb
 
Регистрация: 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, не могли бы Вы приложить какую-нибудь маааленькую базу, где это работает? Мало ли где я ещё могла ошибиться (например, в связях).
Вложения
Тип файла: zip zapros1.zip (1.96 Мб, 57 просмотров)
Тип файла: zip zapros2.zip (2.41 Мб, 43 просмотров)
Тип файла: zip zapros3.zip (2.27 Мб, 55 просмотров)
tanchikb вне форума Ответить с цитированием
Старый 06.12.2009, 19:57   #10
katrina-n
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 51
Радость

Окей У меня поле со списком.
Вложения
Тип файла: zip БД (2).zip (112.0 Кб, 296 просмотров)
katrina-n вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В зависимости от выбора в 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