Как я могу вызвать результат хранимой процедуры в разделе Сведения в событии On Format отчета Microsoft Access, не вызывая соединение в каждой строке?потому что я думаю, что это то, что я делаю здесь, или, может быть, я пытаюсь выполнить SP в неправильном случае?Как я могу это сделать ?
Public Sub TestSPB()
Dim conn As ADODB.connection
Dim cmd As ADODB.Command
Set cmd = New ADODB.Command
Dim rst As ADODB.Recordset
Set conn = New ADODB.connection
conn.Open "Provider=SQLOLEDB.1;Password=xxxxxxxxx; Persist Security Info=True; User ID=xxxxxxx;Initial Catalog=xxxxxxxx;Data Source=20.20.20.20"
With cmd
.ActiveConnection = conn
.CommandText = "TESTSP10"
.CommandType = adCmdStoredProc
.Parameters.Append .CreateParameter("Checkin", adDate, adParamInput, , Me.from1.Value)
.Parameters.Append .CreateParameter("Checkout", adDate, adParamInput, , Me.to1.Value)
.Parameters.Append .CreateParameter("IDHotel", adInteger, adParamInput, , Me.IDHOTELS.Value)
.Parameters.Append .CreateParameter("canthabdbl", adInteger, adParamInput, , Me.cadbl.Value)
.Parameters.Append .CreateParameter("cantchd", adInteger, adParamInput, , 0)
.Parameters.Append .CreateParameter("canthab", adInteger, adParamInput, , 1)
.Parameters.Append .CreateParameter("totalhab", adInteger, adParamReturnValue)
.Parameters.Append .CreateParameter("Sum", adInteger, adParamOutput)
Set rst = .Execute
rst.CursorType = adOpenStatic
rst.CursorLocation = adUseClient
rst.LockType = adLockOptimistic
rst.Open cmd
End With
Dim tothabs as Double
Dim totsuma as Double
tothabs = cmd("totalhab")
totsum = cmd("Sum")
Set rst = Nothing
Set cmd = Nothing
End Sub
'Detail section os report on format event
Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
TestSPB
Me.total.value = totalhabs
Me.sumade.value = totalsum
End Sub