复合查询例题参考:名称:文物管理1、 界面如图:2、 数据表结构及关系:3、 查询程序:Private Sub Command14_Click() Dim strW As String '定义条件字符串变量 strW = "" '设变量初始值为空字符串 Me.Combo0.SetFocus '焦点放在 combo0 上 If Not IsNull(Me.Combo0) Then '推断【类别】条件是否有输入的值 strW = strW & "([分类.名称] = '" & Me.Combo0 & "') AND " '有条件输入 End If If Not IsNull(Me.Combo2) Then '推断【年代】条件是否有输入的值 strW = strW & "([文物信息.年代] = '" & Me.Combo2 & "') AND " '有条件输入 End If '假如输入了条件,那么 strWhere 的最后肯定有" AND ",这是我们不需要的, '要用 LEFT 函数截掉这 5 个字符。 If Len(strW) > 0 Then '若有输入条件 strW = Left(strW, Len(strW) - 5) '用 LEFT 函数截掉这" and "这 5 个字符,得到完整的条件值 strW Else MsgBox "请选择查询条件!", , "提示" End If Me.Filter = strW '在窗体中显示查询结果 Me.FilterOn = True If Me.Recordset.RecordCount = 0 Then '用统计查询到满足条件的记录数来推断无符合条件的信息 MsgBox "暂无符合条件的信息!", , "提示" End If End Sub二、查询结果在另外一个窗口显示情况:程序变化如下:(前面部分相同)If Len(strWhere) > 0 Then '有输入条件 strWhere = Left(strWhere, Len(strWhere) - 5) '用 LEFT 函数截掉这 and 这 5 个字符 DoCmd.OpenForm "查询结果窗体名" '打开查询结果窗体 l Forms! 查询结果窗体名.Filter = strWhere '在窗体中显示查询结果 Forms! 查询结果窗体名.FilterOn = True Else MsgBox "请选择查询条件!", , "提示" End If