access多条件查询问题
select * from 表名 where
(班级=Forms![窗体名]![班级文本框名] and 学号=Forms![窗体名]![学号文本框名]) or
(班级=Forms![窗体名]![班级文本框名] and Forms![窗体名]![学号文本框名] is Null)
如要实现只输入一个文本框(两个中的任何一个)就查那一个筛选条件,两个都输入就同时查两个筛选条件,则代码可以这样写
select * from 表名 where
(班级=Forms![窗体名]![班级文本框名] and 学号=Forms![窗体名]![学号文本框名]) or
(班级=Forms![窗体名]![班级文本框名] and Forms![窗体名]![学号文本框名] is Null) or
(Forms![窗体名]![班级文本框名] is Null and 学号=Forms![窗体名]![学号文本框名])
以上SQL代码写成多行形式,若要在VBA代码里运行则要写成一行。
送佛送到西吧!下面是ACCESS窗体实现多条件查询的具体实现方法:
新建一个窗体,取名“多条件查询”为窗体添加两个文本框,分别取名“班级”、“学号”,一个命令按钮“查询”。用向导添加一个子窗体显示查询结果,子窗体名为“Child1",将其数据源设置为下列SQL语句(这条语句要写成1行,见下图2)
SELECT * FROM 学生 WHERE (班级=Forms!多条件查询!班级 And 学号=Forms!多条件查询!学号) Or (班级=Forms!多条件查询!班级 And Forms!多条件查询!学号 Is Null) Or (Forms!多条件查询!班级 Is Null And 学号=Forms!多条件查询!学号);
添加“查询”按钮单击事件过程
Private Sub 查询_Click()
Me!Child1.Requery
End Sub
现在,你要的效果来了。只输入班级,点击“查询”按钮看全班情况。输入两个条件,点击“查询”按钮只查看某学生。
窗体控件布局如图和运行效果