Мне было поручено разработать систему временного отслеживания клиентов в MS Access 2007 (шеешь!). Таблицы и отношения были успешно установлены. Но я сталкиваюсь с небольшой проблемой, пытаясь спроектировать форму ввода данных для одной таблицы ... Сначала немного пояснений.
Экран содержит 3 раскрывающихся списка (кроме других полей).
1-й выпадающий список
Первый выпадающий список (cboMarket) представляет Рынок , позволяющий пользователям выбирать между 2 вариантами:
Поскольку первый выпадающий список содержит только 2 элемента, я не стал готовить для него таблицу. Я добавил их как предварительно определенные элементы списка.
2-й выпадающий список
Как только пользователь делает выбор, второй выпадающий список (cboLeadCategory) загружает список категорий потенциальных клиентов, а именно: ярмарки и выставки, агенты, реклама в прессе, онлайн-реклама и т. Д. Различные наборы ведущих категорий используются для 2 рынков. Следовательно, это поле зависит от 1-го.
Структура связанной таблицы с именем Lead_Cateogries для второго комбо:
ID Autonumber
Lead_Type TEXT <- actually a list that takes up Domestic or International
Lead_Category_Name TEXT
3-й выпадающий список
А исходя из выбора категории во 2-й, третья (cboLeadSource) должна отображать предварительно определенный набор источников отведений, принадлежащих к определенной категории.
Таблица с именем Lead_Sources и структурой:
ID Autonumber
Lead_Category NUMBER <- related to ID of Lead Categories table
Lead_Source TEXT
Когда я делаю выбор в 1-м раскрывающемся списке, вызывается событие AfterUpdate , которое указывает 2-му раскрывающемуся списку на загрузку содержимого:
Private Sub cboMarket_AfterUpdate()
Me![cboLead_Category].Requery
End Sub
Источник строки 2-й комбинации содержит запрос:
SELECT Lead_Categories.ID, Lead_Categories.Lead_Category_Name
FROM Lead_Categories
WHERE Lead_Categories.Lead_Type=[cboMarket]
ORDER BY Lead_Categories.Lead_Category_Name;
Событие AfterUpdate второго комбо:
Private Sub cboLeadCategory_AfterUpdate()
Me![cboLeadSource].Requery
End Sub
Источник строки 3-й комбинации содержит:
SELECT Leads_Sources.ID, Leads_Sources.Lead_Source
FROM Leads_Sources
WHERE [Lead_Sources].[Lead_Category]=[Lead_Categories].[ID]
ORDER BY Leads_Sources.Lead_Source;
Проблема
Когда я выбираю Тип рынка из cboMarket, вторая комбинированная категория cboLead загружает соответствующие Категории без заминки.
Но когда я выбираю определенную категорию из нее, вместо 3-го комбо, загружающего имена ведущих источников, появляется модальное диалоговое окно с просьбой ввести параметр .
альтернативный текст http://img163.imageshack.us/img163/184/enterparamprompt.png
Когда я вводю что-либо в это приглашение (действительные или недействительные данные), я получаю еще одно приглашение:
альтернативный текст http://img52.imageshack.us/img52/8065/enterparamprompt2.png
Почему это происходит? Почему 3-ий ящик не загружает имена источников по желанию. Кто-нибудь может пролить свет на то, что я делаю неправильно?
Спасибо,
м ^ е
=============================================== ====
UPDATE
Я обнаружил сбой в запросе для 3-го комбинированного списка. Он не совпадает со значением второго комбинированного списка. Я исправил это, и теперь запрос находится в:
SELECT Leads_Sources.ID, Leads_Sources.Lead_Source
FROM Leads_Sources
WHERE (((Leads_Sources.Lead_Category)=[cboLead_Category]))
ORDER BY Leads_Sources.Lead_Source;
Эти неприятные подсказки Enter Param УЖЕ !!! Тем не менее, третьи комбо до сих пор упорно отказывается загружать какое-либо значение. Есть идеи?