我目前仍在尝试对vba模块执行SQL查询。
Option Explicit
Public con As ADODB.Connection
Public Const CONNECTION_STRING As String = "Provider=SQLOLEDB; uid=;pwd=; DATABASE=MFBPRD; SERVER=MCPLONSQL01;Integrated Security=SSPI;"
Function Run()
Call ConnectDB
Dim Cmd As ADODB.Command
Dim rcs As ADODB.Recordset
Dim SQL As String
Dim res() As String
Set Cmd = New ADODB.Command
Set Cmd.ActiveConnection = con
SQL = "select tl.id, al.price_crossing, al.price_exchange_fees, tl.charges_execution, tl.charges_mariana, tl.charges_exchange, tl.trade_date, un.value, tl.nb_crossing from mfb.trade_leg tl"
SQL = SQL & "inner join mfb.trade t on t.id = tl.id_trade"
SQL = SQL & "inner join mfb.instrument i on t.id_instrument = i.id"
SQL = SQL & "inner join mfb.instrument_type it on it.id = i.id_instrument_type"
SQL = SQL & "inner join mfb.options o on o.id_instrument = i.id"
SQL = SQL & "inner join mfbref.mfb.underlying un on un.id = o.id_underlying"
SQL = SQL & "inner join mfb.allocation_leg al on al.id_trade_leg = tl.id"
SQL = SQL & "where tl.trade_date > '20160101' and t.state = 3"
Cmd.CommandText = SQL
Set rcs = Cmd.Execute()
End Function
在此基础上,我添加了调用ConnectDB的代码。