2016-09-30 1 views
0

У меня есть ComboBox состояний, который заполняет ListBox городов при выборе.Опция ComboBox исчезает, если выбрано

Я добавил параметр (все), используя запрос Союза в ComboBox, который успешно заполняет все города в ListBox, но после его выбора оставляет ComboBox пустой. Я хочу, чтобы «(все)» оставалось в этом ComboBox.

Источник строк для государств ComboBox является:

SELECT tblStatesProvince.ID, tblStatesProvince.LngState 
FROM tblStatesProvince 
UNION Select Null as AllChoice, "(all)" as Bogus From tblStatesProvince 
ORDER BY tblStatesProvince.LngState; 

Источник строки для городов Listbox является:

SELECT tblCities.ID, tblCities.City, tblCities.State 
FROM tblCities 
WHERE (((tblCities.State)=[Forms]![frmCities].[cboSelectState])) OR ((([Forms]![frmCities].[cboSelectState]) Is Null)) 
ORDER BY tblCities.City; 
+2

Вы могли бы рассмотреть вопрос о замене Null значения, так как даже Null не равно Null , что-то вроде -1 (учитывая, что tblStatesProvince.ID, скорее всего, числовое), а затем скорректировать оператор WHERE для OR ((([Forms]! [frmCities]. [cboSelectState]) = -1)) – SqlOnly

ответ

3

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

Я хотел бы переписать два заявление следующим образом (при условии, что tblStatesProvince.ID является числовым), который удаляет NULL из сравнения:

SELECT tblStatesProvince.ID, tblStatesProvince.LngState 
FROM tblStatesProvince 
UNION Select -1 as AllChoice, "(all)" as Bogus From tblStatesProvince 
ORDER BY tblStatesProvince.LngState; 

SELECT tblCities.ID, tblCities.City, tblCities.State 
FROM tblCities 
WHERE (((tblCities.State)=[Forms]![frmCities].[cboSelectState])) OR ((([Forms]![frmCities].[cboSelectState]) = -1)) 
ORDER BY tblCities.City;