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代码里运行则要写成一行。
用一个字符串当作条件,多重判断就行