我有一个包含 2 个嵌入子表单的表单。
subform_1 上的点击事件设置 subform_2 的记录源,引用所选 subform_1 记录(所有文本字段)中的 5 个属性。
strSQL = "SELECT Table_1.* FROM Table_1 " & _
"WHERE (((Table_1.Attr_A)= '" & Forms![mainform]![subform_1]![attr1] & "') " & _
"AND ((Table_1.Attr_B) = '" & Forms![mainform]![subform_1]![attr2] & "') " & _
"AND ((Table_1.Attr_C) = '" & Forms![mainform]![subform_1]![attr3] & "') " & _
"AND ((Table_1.Attr_D) = '" & Forms![mainform]![subform_1]![attr4] & "') " & _
"AND ((Table_1.Attr_E) = '" & Forms![mainform]![subform_1]![attr5] & "'));"
Forms![mainform]![subform_2].Form.RecordSource = strSQL
我的问题是,某些记录可能在 5 个必需的属性中具有 NULL 值,这是有效条件。当 subform_1 值为 NULL 时,周围的 '' 会导致集合中出现 (0) 条记录。
有什么建议可以有效处理 subform_1 中的 NULL 条件吗?
最佳答案
如果您只考虑Table_1.Attr_A
,我想您是说您想要这个...
"SELECT t1.* FROM Table_1 AS t1 " & _
"WHERE (t1.Attr_A & '') = '" & Forms![mainform]![subform_1]![attr1] & "'"
如果正确,请根据 Attr_B
为下一个条件添加 AND
。
"SELECT t1.* FROM Table_1 AS t1 " & _
"WHERE " & _
"(t1.Attr_A & '') = '" & Forms![mainform]![subform_1]![attr1] & "'" & _
" AND (t1.Attr_B & '') = '" & Forms![mainform]![subform_1]![attr2] & "'"
并从那里继续添加其余条件。
关于ms-access - MSAccess : Null vs '' - driving me crazy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21690674/