有没有办法自动执行某些查询并将该查询的O/P存储在excel文件中?
我每天执行大约80个查询以进行监视。所有这些都是SELECT查询,我们捕获了大部分计数。这是一项无聊的任务,只是运行查询并在excel文件中手动捕获输出 例如,以下是我的查询及其各自的输出示例: 查询1:从表中选择count*,其中某些条件='True' 产出:985 查询2:从另一个_表中选择count*,其中还有另一个_条件='True' 产出:365 查询80:从另一个_表中选择count*,其中还有另一个_条件='True' 产出:578 我的要求是: 捕获这80个查询的输出,并按一定顺序将它们粘贴到excel文件中。 在Excel中,我已经在单元格中设置了标题条件。因此,我希望每个查询的输出都映射到与标题条件对应的特定单元格 有没有办法让这项无聊的任务自动化,或者说我是一个永远被困在机器人里的人有没有办法自动执行某些查询并将该查询的O/P存储在excel文件中?,excel,vba,oracle,automation,toad,Excel,Vba,Oracle,Automation,Toad,我每天执行大约80个查询以进行监视。所有这些都是SELECT查询,我们捕获了大部分计数。这是一项无聊的任务,只是运行查询并在excel文件中手动捕获输出 例如,以下是我的查询及其各自的输出示例: 查询1:从表中选择count*,其中某些条件='True' 产出:985 查询2:从另一个_表中选择count*,其中还有另一个_条件='True' 产出:365 查询80:从另一个_表中选择count*,其中还有另一个_条件='True' 产出:578 我的要求是: 捕获这80个查询的输出,并按一定
PS:我正在使用Toad for Oracle v 12.9.0.71数据库就像Tim说ADO是您在这里的最佳选择一样。幸运的是,我只能自己做这件事,所以希望这件事对你有用
Sub SQLQuery(sqlServer As String, strDatabase As String, strQuery As String, _
exportLocation As Variant, strUserId As String, strPassword As String)
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Set conn = Nothing
Set rs = Nothing
'create the Connection and Recordset objects
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
'open the connection
conn.Open _
"Provider=SQLOLEDB;" & _
"Data Source=" & sqlServer & ";" & _
"Initial Catalog=" & strDatabase & ";" & _
"User ID=" & strUserId & ";" & _
"Password=" & strPassword & ";" & _
"Trusted_Connection=" & "True" & ";"
'execute
Set rs = conn.Execute(strQuery)
'check if data exists
If Not rs.EOF Then
'if so, copy to location
exportLocation.CopyFromRecordset rs
'close the recordset
rs.Close
End If
'clean up
conn.Close
Set conn = Nothing
Set rs = Nothing
End Sub
使用此子例程的示例如下:
Call SQLQuery( _
oSERVER, _
oDB, _
"SELECT count(*) from table WHERE certain_condition = 'True'", _
ThisWorkbook.Sheets("Sheet1").Cells(1, 1), _
oUSER, _
oPW)
仅供参考,您可能必须在参考中启用Microsoft ActiveX Data Objects 2.8库,才能使其正常工作。您完全可以使用VBA和ADO实现这一点。