Hi. I have lots of processing to do on the server - from the client
(Access) I call a sproc which returns a recordset (the sproc is
essentially a big "select"). With the obtained data , I need to
generate a report. How do I set the Recordsource of the report to the
result of the select sproc ?
I have tried the following, but it does not work.
Private Sub cmdReport_Click ()
On Error GoTo cmdReport_Click Error
Dim objCmd As ADODB.Command
Dim intOpenObjects As Integer
Dim rsTemp As ADODB.Recordset
Set objCmd = New ADODB.Command
intOpenObjects = 1
objCmd.ActiveCo nnection = m_objConn
objCmd.CommandT ype = adCmdStoredProc
objCmd.CommandT ext = "_TestRepor t"
Set rsTemp = objCmd.Execute
intOpenObjects = 2
Dim rpt As Report
DoCmd.OpenRepor t "TestReport ", acViewDesign
Set rpt = Reports("TestRe port")
Set rpt.RecordSourc e = rsTemp
DoCmd.Close acReport, "TestReport ", acSaveYes
Set rpt = Nothing
DoCmd.OpenRepor t "TestReport ", acViewPreview
DoCmd.OpenRepor t "TestReport ", acViewPreview
DoCmd.SelectObj ect acReport, "TestReport "
DoCmd.Maximize
cmdReport_Click Exit:
If intOpenObjects = 2 Then
rsTemp.Close
Set rsTemp = Nothing
intOpenObjects = 1
End If
If intOpenObjects = 1 Then
Set objCmd = Nothing
intOpenObjects = 0
End If
Exit Sub
cmdReport_Click Error:
MsgBox Err.Description , vbCritical, Me.Name
Resume cmdReport_Click Exit
End Sub
How can I do that, please ? Would it maybe be better to change the
"Select" sproc into an Insert sproc, as in "SELECT... INTO TEMP", in
order to create a temp table on the server, then in Access link to that
table and set the recordsource onto the linked table ?
Please help. Thank you very much, Alex.
(Access) I call a sproc which returns a recordset (the sproc is
essentially a big "select"). With the obtained data , I need to
generate a report. How do I set the Recordsource of the report to the
result of the select sproc ?
I have tried the following, but it does not work.
Private Sub cmdReport_Click ()
On Error GoTo cmdReport_Click Error
Dim objCmd As ADODB.Command
Dim intOpenObjects As Integer
Dim rsTemp As ADODB.Recordset
Set objCmd = New ADODB.Command
intOpenObjects = 1
objCmd.ActiveCo nnection = m_objConn
objCmd.CommandT ype = adCmdStoredProc
objCmd.CommandT ext = "_TestRepor t"
Set rsTemp = objCmd.Execute
intOpenObjects = 2
Dim rpt As Report
DoCmd.OpenRepor t "TestReport ", acViewDesign
Set rpt = Reports("TestRe port")
Set rpt.RecordSourc e = rsTemp
DoCmd.Close acReport, "TestReport ", acSaveYes
Set rpt = Nothing
DoCmd.OpenRepor t "TestReport ", acViewPreview
DoCmd.OpenRepor t "TestReport ", acViewPreview
DoCmd.SelectObj ect acReport, "TestReport "
DoCmd.Maximize
cmdReport_Click Exit:
If intOpenObjects = 2 Then
rsTemp.Close
Set rsTemp = Nothing
intOpenObjects = 1
End If
If intOpenObjects = 1 Then
Set objCmd = Nothing
intOpenObjects = 0
End If
Exit Sub
cmdReport_Click Error:
MsgBox Err.Description , vbCritical, Me.Name
Resume cmdReport_Click Exit
End Sub
How can I do that, please ? Would it maybe be better to change the
"Select" sproc into an Insert sproc, as in "SELECT... INTO TEMP", in
order to create a temp table on the server, then in Access link to that
table and set the recordsource onto the linked table ?
Please help. Thank you very much, Alex.
Comment