如何在Excel,VBA中执行SQL语句?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Excel,VBA中执行SQL语句?相关的知识,希望对你有一定的参考价值。

参考技术A sub test()\\x0d\\x0a \\x0d\\x0aDim Conn As New ADODB.Connection\\x0d\\x0aDim strConn As String\\x0d\\x0aDim strSQL As String\\x0d\\x0aDim rs As New ADODB.Recordset\\x0d\\x0a \\x0d\\x0astrConn = "Provider=sqloledb;Server=192.168.1.111;Database=db2014;Uid=用户名;Pwd=密码;" \\x0d\\x0aConn.Open strConn\\x0d\\x0a \\x0d\\x0aMax_row = Range("A1").CurrentRegion.Rows.Count\\x0d\\x0a \\x0d\\x0afor i=1 to Max_row\\x0d\\x0a strSQL = "select name from sales2014 where id=\'" & range("A" & i).value & "\'"\\x0d\\x0a Conn.Execute strSQL\\x0d\\x0a rs.Open strSQL, Conn, 1, 1\\x0d\\x0a range("B" & i).value= rs(0) \\x0d\\x0a rs.Close\\x0d\\x0a Set rs = Nothing\\x0d\\x0anext i\\x0d\\x0a \\x0d\\x0a\'关闭数据库\\x0d\\x0aConn.Close\\x0d\\x0aend sub

如何在excel中使用VBA调用其它外部程序

使用shell语句,例子:

Sub RAR()
    Shell "C:\\Program Files\\WinRAR\\WinRAR.exe", vbNormalFocus
End Sub
参考技术A shell
外壳程序,你看看可以不
参考技术B Shell 函数
R执行一个执行档程式,如果成功的话,会传回一个 Variant (Double) 来代表这个程式的 task ID,若不成功,则会传回 o。 语法
Shell(pathname[,windowstyle])
Shell 函数的语法含有底下这些指名引数:

单元
描述

pathname 必要引数,Variant (String),要执行的程式名称,以及任何必要的引数或命令列变数,同可时加上目录或档案夹名称,以及磁碟机名称。
Windowstyle 选择性引数,此为 Variant (Integer),表示在程式执行时,视窗的呈现型态,如果windowstyle 省略,则程式是以最小化来执行。

windowstyle 指名引数有以下这些值:

常数

描述

vbHide 0 视窗会被隐藏,且驻点会移到隐藏的视窗。
VbNormalFocus 1 视窗具有驻点,且会还原到它原来的大小和位置。
VbMinimizedFocus 2 视窗会以一个图示来显示,并具有驻点。
VbMaximizedFocus 3 视窗会最大化,并具有驻点。
VbNormalNoFocus 4 视窗会被还原到前一次的大小和位置,而目前使用中的视窗仍然维持使用中。
VbMinimizedNoFocus 6 视窗会以一个图示来显示,而目前使用中的视窗仍然维持使用中。

请注意
如果 Shell 函数可以成功地执行所要的执行档,则它会传回启始程式的 task ID , task ID 是一个唯一的数值,用来指名执行中的程式,如果 Shell 函数无法开启指名的程式,则会产生错误

附注 预设情况为 Shell 函数是以非同时方式来执行其它程式,也就是说,用 Shell 所启动的程式,可能还没执行完全,就执行到 Shell 函数之後的陈述式。
参考之后的代码是这样写的,

Sub MacroUpdate()
On Error GoTo ErrorHandler
ID = Shell(ThisWorkbook.Path & "\" & "LiveUpdate.exe", 4)
Exit Sub
ErrorHandler:
MsgBox Err.Description, vbInformation, MacroTitle
End Sub

运行正常,

以上是关于如何在Excel,VBA中执行SQL语句?的主要内容,如果未能解决你的问题,请参考以下文章

如何在excel中使用VBA调用其它外部程序

如何将 SQL 语句结果导出到 Excel 文件

VBA SQL写入语句,从一个表格写入令一个表格?

使用 VBA 在 Excel 单元格中运行 SQL 语句

使用带有 ADO 的 Excel 2010 VBA(或带有 LINQ 的 vb.net)查询表的最佳 SQL 语句是啥

连接 VBA SQL 语句中的字段时出现错误 424