为VBA SQL查询提取多个excel值并在中使用
我有一个下面的VBA代码,我想从excel列(A1:A4)中读取四个值a、b、c、d,这样当我连接到数据库时,它们可以成为SQL查询IN语句的一部分。 我构建了swhere子句来创建('a','b','c','d')字符串,但是最后的SQL查询SQLStr似乎有一些错误,我的代码失败了 有人能帮忙吗 事先非常感谢你为VBA SQL查询提取多个excel值并在中使用,excel,vba,Excel,Vba,我有一个下面的VBA代码,我想从excel列(A1:A4)中读取四个值a、b、c、d,这样当我连接到数据库时,它们可以成为SQL查询IN语句的一部分。 我构建了swhere子句来创建('a','b','c','d')字符串,但是最后的SQL查询SQLStr似乎有一些错误,我的代码失败了 有人能帮忙吗 事先非常感谢你 Sub ADOExcelSQLServer() Dim Cn As ADODB.Connection 'connection variable Dim Server
Sub ADOExcelSQLServer()
Dim Cn As ADODB.Connection 'connection variable
Dim Server_Name As String ' text type
Dim Database_Name As String
Dim User_ID As String
Dim Password As String
Dim SQLStr As String
Dim rs As ADODB.Recordset ' Database connection variable
Dim rRange As Range
Dim rCell As Range
Dim sWHEREclause As String
Set rs = New ADODB.Recordset
Server_Name = "server name"
Database_Name = "Database name"
Set rRange = Sheet1.Range("A1:A4")
For Each rCell In rRange
sWHEREclause = sWHEREclause & "'" & rCell & "',"
Next rCell
'SQLStr = "Select * from MASTER_QUERY mq where mq.ModelNum in ('a','b','c','d')" 'commented line
SQLStr = "Select * from MASTER_QUERY mq where mq.ModelNum IN (" & sWHEREclause & ")"
Set Cn = New ADODB.Connection 'set connection with databse
Cn.Open "Provider=SQLOLEDB;Data Source=" & Server_Name & "; Initial Catalog=" & Database_Name & "; Integrated Security=SSPI;" 'connection parameter to the database
rs.Open SQLStr, Cn, adOpenStatic
' Dump to spreadsheet
With Worksheets("sheet1").Range("b2:z500") ' Enter your sheet name and range here
' Range(A1).Value = "ID)"
.ClearContents ' clear content first in excel
.CopyFromRecordset rs
End With
' Tidy up
rs.Close
Set rs = Nothing
Cn.Close
Set Cn = Nothing
End Sub
字符串以
,
执行以下循环:
Dim delim as string
delim = ""
For Each rCell In rRange
sWHEREclause = sWHEREclause & delim & "'" & rCell & "'"
delim = ", "
Next rCell