2016-09-30 7 views
0

私はComboBox of Statesを持っています。ComboBoxオプションが選択されていないと消えます

ComboBoxのUnionクエリを使用してListBox内のすべての都市を正常に埋め込むオプションを(すべて)追加しましたが、選択した後はComboBoxを空白のままにしました。私は "(すべて)"がComboBoxにとどまりたいと思っています。

国コンボボックスの行ソースがある:

SELECT tblStatesProvince.ID, tblStatesProvince.LngState 
FROM tblStatesProvince 
UNION Select Null 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]) Is Null)) 
ORDER BY tblCities.City; 
+2

あなたもヌルがNullと等しくないとして、null値を置き換えることを検討してください(tblStatesProvince.IDは可能性が高いので、WHERE文をORに調整します(([Forms]![frmCities]。[cboSelectState])= -1)) – SqlOnly

答えて

3

私は元SELECT文でNULLの使用があると思われるでしょう問題の根本原因。 NULLは実際には値のプレースホルダであり、文字列や数値などの(典型的な)データ型に匹敵しません。 NULLにはデータ型がありません。

次のように私は比較からNULLを除去する、(tblStatesProvince.IDが数値であると仮定して)二つの文を書き換えます:

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; 
関連する問題