ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 6217|回复: 10

[求助] 在VBA下,如何在SQL语句中使用文本框的值进行查询

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-11-4 15:52 | 显示全部楼层 |阅读模式
本人水平较差,在编制一个查询时,本想在一个文本框中输入学校名称作为查询变量。但是老是不成功,请各位行家指点迷津。万谢!!!
Private Sub CommandButton1_Click()
  '初始设置===
        
    On Error GoTo gg
   
    Dim CNN As New ADODB.Connection
    Dim RST As New ADODB.Recordset
    Dim PATH As String
    Dim CNNSTRING As String
    Dim SQL As String
    Dim I As Integer
    PATH = ThisWorkbook.PATH & "\历年数据.xls"
    CNNSTRING = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;" & _
    "EXTENDED PROPERTIES='EXCEL 8.0;HDR=YES;IMEX=1';" & _
    "DATA SOURCE=" & PATH
    Dim leinie As String, xxmc As String, yx As String
    Dim wkjh As Integer, wkbl As Integer, wktu As Integer, wkzg As Integer, wkzd As Integer, wkyb As Integer, wkck As Integer
    Dim lkjh As Integer, lkbl As Integer, lktu As Integer, lkzg As Integer, lkzd As Integer, lkyb As Integer, lkck As Integer
   
   
   
    'If leibie = "文科" Then
   
        CNN.Open CNNSTRING
        xxmc = TextBox1.Text   这是文本框的值
        'SQL = "select * from [2013年] where 学校 like xxmc"
       SQL = "select * from [2013年] where 学校 like" & "&xxmc"        
        
        
        RST.Open SQL, CNN
        'Worksheets("sheet1").Select
        Range("A1").CurrentRegion.Clear
        For I = I To RST.Fields.Count - 1
            Range("A1").Offset(0, I) = RST.Fields(I).Name
        Next
        Range("A1").Offset(1, 0).CopyFromRecordset RST
        
      
        

   
   
   
   
   
   
    RST.Close
                CNN.Close
   
   
   
    Set RST = Nothing
    Set CNN = Nothing
   
   
    Exit Sub
gg:         MsgBox ("您输入的SQL语句有错误,请修正!")
End Sub

{:soso_e183:}{:soso_e181:}{:soso_e163:}

TA的精华主题

TA的得分主题

发表于 2013-11-4 15:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
'SQL = "select * from [2013年] where 学校 like xxmc"
该句应该写成:'SQL = "select * from [2013年$] where 学校 like xxmc"才对吧?!

TA的精华主题

TA的得分主题

发表于 2013-11-4 15:59 | 显示全部楼层
绿杨荫里 发表于 2013-11-4 15:55
'SQL = "select * from [2013年] where 学校 like xxmc"
该句应该写成:'SQL = "select * from [2013年$] w ...

你把 “On Error GoTo gg”注释掉,试一试,看运行调试的黄线是否落在“'SQL = "select * from [2013年] where 学校 like xxmc”这一句上。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-11-4 16:11 | 显示全部楼层
xxmc = TextBox1.Text   这一句倒是能够成立,但是下一句
SQL = "select * from [2013年$] where 学校 like '%&xxmc&'"
就没有数据形成了,不知道什么原因?郁闷中!!!

TA的精华主题

TA的得分主题

发表于 2013-11-4 16:23 | 显示全部楼层
'SQL = "select * from [2013年$] where 学校 like " & xxmc

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-11-5 09:50 | 显示全部楼层
问题已解决,最后语句为:
SQL = "select * from [2013年$] where 学校 like" & "'%" & xxmc & "%'"
已能够顺利查询。
谢谢各位!

TA的精华主题

TA的得分主题

发表于 2014-3-23 20:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
正好用到

TA的精华主题

TA的得分主题

发表于 2014-4-22 17:45 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我也正好用到,谢谢了

TA的精华主题

TA的得分主题

发表于 2016-3-25 10:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
学习了,受益匪浅!

TA的精华主题

TA的得分主题

发表于 2020-7-1 15:21 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-19 05:31 , Processed in 0.047406 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表