Excel シートのセルから入力を取得する SQL クエリを作成したいと考えています。
たとえば、データベースに EmpID、EmpName、Salary、Address のような 3 つの列があり、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 クエリに入力する方法を知っている人がいる場合は、その方法を提案してください。