下面看我给出的代码:Sub mynzRecords_50() '第50讲 从数据库多条件提取数据中between的用法 Dim cnADO, rsADO As Object Dim strPath, strSQL, strTable As String Set cnADO = CreateObject("ADODB.Connection") Set rsADO = CreateObject("ADODB.Recordset") strPath = ThisWorkbook.Path & "\mydata2.accdb" strTable = "员工信息" cnADO.Open "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & strPath 'strSQL = "SELECT * FROM " & strTable strSQL = "select * from " & strTable _ & " where 部门='一厂' and 职务='班长' and 出生日期 between #1999/6/6# and #1999/6/12#" & " ORDER BY 员工编号 DESC" rsADO.Open strSQL, cnADO, 1, 3 Worksheets("50").Select Cells.ClearContents For i = 0 To rsADO.Fields.Count - 1 ActiveSheet.Cells(1, i + 1) = rsADO.Fields(i).Name Next i For i = 1 To rsADO.RecordCount For j = 0 To rsADO.Fields.Count - 1 ActiveSheet.Cells(i + 1, j + 1) = rsADO.Fields(j) Next j rsADO.MoveNext Next i Range("A2").CopyFromRecordset rsADO ActiveSheet.Columns(rsADO.Fields.Count).NumberFormat = "yyyy-mm-dd" ActiveSheet.Columns.AutoFit rsADO.Close cnADO.Close Set cnADO = Nothing Set rsADO = NothingEnd Sub 代码截图:代码解读:1) strSQL = "select * from " & strTable _ & " where 部门='一厂' and 职务='班长' and 出生日期 between #1999/6/6# and #1999/6/12#" & " ORDER BY 员工编号 DESC"上述代码是关于本讲的多条件设置的SQL语句写法。其中重点是and 出生日期 between #1999/6/6# and #1999/6/12#" 在写between 时后面一定要有一个and 并且两边要留空格,这个and 和前面的and 意义不同,前者表示是多条件, 这里表示的是连接的是两个值。其他的条件就不再一一讲解了,和上一讲的内容一样。 下面看代码的运行:大家可以看看上面的结果,完全符合我们的预期。 今日内容回向:1 between 在条件查询中如何表示?2 上述的between 条件是否有其他的实现办法呢? 本讲内容参考程序文件:VBA与数据库操作(第二册).xlsm 我20多年的VBA实践经验,全部浓缩在下面的各个教程中:【分享成果,随喜正能量】赞美入耳,批评入心,择其善者而从之,其不善者而改之。。