VBA——SQL语句窗体控件运用

作者: 猛犸象和剑齿虎 | 来源:发表于2020-04-09 18:35 被阅读0次
强大吗?震撼吗?.gif

这个例子是受到EXCELHOME一位大佬启发制作的。
不知道各位道友发现没有,在EXCEL中用其自带的数据连接功能写SQL,时常会出现数据连接问题,本意是想写一个厉害的SQL把很多工作变成打开报表刷新数据的工作,实际上由于连接问题不得不一次次修复连接问题。
而用VBA把SQL语句写入是十分方便有效,而且更进一步可以把写过的SQL用一个窗体载入,大大简化了操作,再不用ALT+D+D+D了。


窗体部分.png

代码部分:

Private Sub ComboBox1_Change()
ComboBox2.ListIndex = ComboBox1.ListIndex
Set c = Sheets("SQL语句").Range("A:A").Find(Left(ComboBox1.Text, 15), , lookat:=xlWhole)
If Not c Is Nothing Then TextBox1.Text = Sheets("SQL语句").Cells(c.Row, 2)
End Sub

Private Sub ComboBox2_Change()
ComboBox2.ListIndex = ComboBox1.ListIndex
Set c = Sheets("SQL语句").Range("A:A").Find(Left(ComboBox1.Text, 15), , lookat:=xlWhole)
If Not c Is Nothing Then TextBox1.Text = Sheets("SQL语句").Cells(c.Row, 2)
End Sub

Private Sub CommandButton1_Click()
'On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False

Dim cnn, sql$
Set cnn = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")

cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.FullName
sql = ComboBox1.Text

Set rs = cnn.Execute(sql)
Sheets("结果").Cells.ClearContents

For i = 1 To rs.Fields.Count
    Sheets("结果").Cells(1, i) = rs.Fields(i - 1).Name
Next

Sheets("结果").Range("a2").CopyFromRecordset rs

cnn.Close
Set cnn = Nothing

Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub


Private Sub Label3_Click()

End Sub

Private Sub UserForm_Initialize()
Set sh = Sheets("SQL语句")
For i = 2 To 20
    ComboBox1.AddItem sh.Cells(i, 1).Value
    ComboBox2.AddItem sh.Cells(i, 3).Value
Next i
Sheets("结果").Activate
End Sub

由于find对字符数量是有限制的(可以试试),具体多少并不清楚,所以用LEFT函数截取了15个字符,来定位单元格,当然这个功能可有可无,毕竟写的SQL并不多。

相关文章

  • VBA——SQL语句窗体控件运用

    这个例子是受到EXCELHOME一位大佬启发制作的。不知道各位道友发现没有,在EXCEL中用其自带的数据连接功能写...

  • VBA窗体控件练习2

    (花点心思的时候,excel也可以做的精致。) 首先声明,这个简易版的职工档案管理系统是根据《别怕,excel v...

  • tkinter自学笔记

    1 引用tk库 2 创建窗体 注意:以上两个语句是成对使用的,缺一不可。以后在编程过程中窗体中的各个控件以及窗体的...

  • 子窗体、主窗体传参

    在主窗体里面操纵子窗体的控件 子窗体 主窗体 主窗体点击事件操作 直接在主窗体里面操纵子窗体的控件,进行一系列操作...

  • 2018-12-04

    TextBox和Button控件 共有属性: Name 窗体或控件名称一个项目中各个窗体、一个窗体上各 个控件的名...

  • 不同窗体间控件的调用

    不同窗体间控件的调用 在被调用窗体的构造方法中接受调用窗体的引用,把调用窗体的控件设置为可见

  • C#控件如何随窗体自动缩放

    控件随着窗体缩放设置情况一: 按照上图设置以后,你会发现控件会随着窗体放大缩小而变化。 控件随着窗体缩放设置情况二...

  • Excel中通过ADO执行SQL

    VBA执行SQL语句有一个固定的套路: 绑定ADO 连接数据源 设置查询语句,并执行 写入查询结果 关闭连接释放资...

  • 控件(笔记)

    控件共有属性name 窗体或控件名称一个项目中各个窗体,一个窗体上各个控件的名称不能相同Text 显示的文本F...

  • VBA窗体练习

    首先推荐一本VBA入门书籍:《别怕,EXCEL VBA其实很简单》,这个例子是书上关于窗体的。 从今年5月份接触V...

网友评论

    本文标题:VBA——SQL语句窗体控件运用

    本文链接:https://www.haomeiwen.com/subject/zdhhmhtx.html