-1

ブール値を含むフィールド列があります。このブール値は、-1、0、または明らかに null を意味する 0 として表示されます。この値を where 句で使用して false かどうかをテストすると、必要に応じてすべての false レコードが取得されます。これを 3 状態のチェックボックスでテストしています。これを NULL に設定すると、レコードが取得されません (フィールドで null は許可されません)。ただし、それを true にすると、結果として何も表示されません。

何か案は?

編集:

私が使用しているクエリはあまり興味深いものではありません。基本的 "SELECT *a lot* FROM *a lot* WHERE T0001_orders.t0001_active = " & me.chkbx.value には、SQL サーバー (?) を使用していると思いますが、ODBC 経由で接続しています。それは間違っているかもしれませんが、私はその部分についてあまり気にしていないので、おそらくこれを理解できないのです.

4

1 に答える 1

1

null の問題が発生している可能性があります。where something = NULL を使用すると、msssql サーバーでは機能しません。

何かがnullの場所を使用する必要があります

これらの 3 つのステートメントを試してみると、おそらくエラーがどこにあるかがわかります。

SELECT a lot FROM a lot WHERE T0001_orders.t0001_active is null
SELECT a lot FROM a lot WHERE T0001_orders.t0001_active =0
SELECT a lot FROM a lot WHERE T0001_orders.t0001_active =1

Is null はすべての NULL 値を返します

フィールド = 1 はすべて true を返します

フィールド = 0 はすべて false を返します

于 2013-08-22T11:32:19.907 に答える