前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA-ADO-SQL-002单条件查询语句

VBA-ADO-SQL-002单条件查询语句

作者头像
哆哆Excel
发布2022-10-25 14:20:23
6470
发布2022-10-25 14:20:23
举报
文章被收录于专栏:哆哆Excel

VBA-ADO-SQL-002单条件查询语句

【问题】有以下的数据源

输入“工号 姓名 性别 年龄 部门 工资 奖金”

其中的任一个,可以查询到数据,其中“工号\姓名\性别\部门”是文本格式

“年龄\工资\奖金“是数值格式,

【解决问题】

1.

Conn. Execute,这种方式比较适合无返回记录的语句,即DML语句。如果执行有返回记录的SQL语句,也可以取到记录,只是RecordCount总是反馈-1。这种情况下可以根据rst.eof判断有无查询结果,如果rst.eof= true就表示查询结果为空

2.

如果是文本的要加“‘’“如:

strSQL= "SELECT * FROM [数据源$] WHERE部门=‘技术部’“

如果是数值的不用”’” 如:

strSQL= "SELECT * FROM [数据源$] WHERE年龄=30“

【代码】

代码语言:javascript
复制
Sub myOneFindData()
   Dim cnn As Object, rst As Object
   Dim strPath As String, str_cnn As String ', 'strWhere As String
   Dim i As Long, j As Long
   Set cnn = CreateObject("adodb.connection")
   With ActiveSheet
       ActiveSheet.UsedRange.Offset(3).Clear
       If Len(Range("a2")) = 0 Or Len(Range("b2")) = 0 ThenMsgBox "请输入查询条件": Exit Sub
       Select Case .Cells(2, 1).Value
           Case "工号", "姓名", "性别", "部门"
                strWhere =Range("a2") & "='" & Range("b2") &"'"
           
            'Case "工号", "姓名", "性别", "年龄", "部门", "工资", "奖金"
            
            Case Else
                strWhere =Range("a2") & "=" & Range("b2")
       End Select
   End With
   strPath = ThisWorkbook.FullName
   If Application.Version < 12 Then
       str_cnn = "Provider=Microsoft.jet.OLEDB.4.0;ExtendedProperties=Excel 8.0;Data Source=" & strPath
   Else
       str_cnn = "Provider=Microsoft.ACE.OLEDB.12.0;ExtendedProperties=Excel 12.0;Data Source=" & strPath
   End If
   cnn.Open str_cnn
   strSQL = "SELECT * FROM [数据源$] WHERE "& strWhere
   Set rst = cnn.Execute(strSQL)
   'cnn.Execute()执行strSQL语句
   If rst.EOF Then
       MsgBox "没有找到数据"
       Exit Sub
   Else
       Range("a4").CopyFromRecordset rst
       ActiveSheet.UsedRange.Offset(2).HorizontalAlignment = xlCenter
       ActiveSheet.UsedRange.Offset(2).Borders.LineStyle = xlContinuous
   End If
   cnn.Close '关闭链接
   Set cnn = Nothing '释放内存
End Sub

【测试成功】

1.===============

2.============

3.============

=======今天学习到此=======

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 哆哆Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档