我想寫一個從excel表格的單元格中獲取輸入的sql查詢語句。如何編寫從excel表格的單元格中輸入輸入的sql查詢
例如,如果有3列像數據庫中的EmpID,EmpName,Salary,Address和我想連接到SQL Server數據庫並使用Excel表中的按鈕更新數據庫。
我寫了這樣的代碼
Dim rst As ADODB.Recordset
Dim Cnxn As ADODB.Connection
Dim strCnxn As String
Dim strSQL As String
' Open connection
Set Cnxn = New ADODB.Connection
strCnxn = "Provider=SQLOLEDB;" & _
"Data Source=ABC\SQLEXPRESS;" & _
"Initial Catalog=Trail;" & _
"Integrated Security=SSPI;" & _
"Application Name=MyExcelFile"
Cnxn.Open strCnxn
Set rst = New ADODB.Recordset
Dim Ename As Variant
Ename = Worksheets("DBSheet").Cells(2, 2).Value
Dim Eno As Variant
Eno = Int(Worksheets("DBSheet").Cells(2, 1).Value)
strSQL = "UPDATE Employee SET EmpName='Micro' WHERE EmpID=1"
rst.Open strSQL, Cnxn, adOpenDynamic, adLockOptimistic, adCmdText
Cnxn.Close
Set rst = Nothing
Set Cnxn = Nothing
在這裏,在上面的代碼我寫了一個更新的查詢,比如集合EmpName =「微」 WHERE的EmpID = 1,我在這裏提到的EmpName和的EmpID手動,而不是我想填充一個Excel工作表的單元格的值更新查詢像
strSQL = "UPDATE Employee SET EmpName=Worksheets("AB').Cells(2,2).Value WHERE EmpID=Worksheets("AB').Cells(2,1).Value"
但是因爲在EmpName和的EmpID值以「」(雙引號)的格式來了,這是不工作查詢但sqlquery不會接受任何格式的東西,以便執行它應該以''(單引號)的格式。
因此,如果任何人知道如何將excel工作表的單元格值填充到sql查詢中,請告訴我該怎麼做。
哎呀,沒有想到... 很明顯,SQL應該是一個SELECT打開記錄集。但是,如果你只是想運行一個更新,那麼用Exec in命令對象來做。 對不起。 – user1644564 2013-03-20 14:23:00