sql between的用法的意思_从数据库中多条件提取数据时,Between的用法

大家好今日继续VBA数据库解决方案的学习,今日讲解第50讲,多条件提取数据时Between的用法。为什么要提出这个问题呢?这个语法是在多条件数据库查询中经常用到的,但是应用的过程中,如果语法不对,会经常通不过,这里把这个语法单独的拿出来,给大家分享讲解一下。还是以实例来说明,大家可以看到,在数据库解决方案的讲解中,不同于《VBA代码解决方案》的讲解,那里的讲解有必要给大家把每个知识点讲到,而这里的讲解侧重于实际的操作,侧重于对问题的解决的对策。所以要求大家要先结合《VBA代码解决方案》的内容把VBA的各个知识点了解一下,然后再开始数据库的学习。

今日的实例.仍是我们之前的数据库数据资料,如下:

a37d4ce9caa2dbd750a4a81314569090.png

我要把"出生日期"为1999/6/6和1999/6/12两者之间的人员提取出来(含两个开始和结束时间),其他的条件是:"部门"为"一厂" " 职务"为"班长",我们如何写代码呢?

下面看我给出的代码:

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 = Nothing

End Sub

代码截图:

00963a51aa9b1697a4483c33ac323a49.png

代码解读:

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 意义不同,前者表示是多条件, 这里表示的是连接的是两个值。其他的条件就不再一一讲解了,和上一讲的内容一样。

下面看代码的运行:

a72aa22f5dc0fb7d3f2181a294128ba1.png

大家可以看看上面的结果,完全符合我们的预期。

今日内容回向:

1 between 在条件查询中如何表示?

2 上述的between 条件是否有其他的实现办法呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值