我想编写一个 sql 查询,它从 excel 表的单元格中获取输入。
例如,如果数据库中有 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
在上面的代码中,我写了一个像 SET EmpName='Micro' 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 查询中,请建议我如何做到这一点。