Предположит, эту хранимую процедуру в SQL Server:Заполнение отчет из хранимой процедуры на переднюю доступа конца
CREATE PROCEDURE sp_MySP AS
BEGIN
SELECT a.Field1, a.Field2, v.Field3, p.Field4, a.Field5
INTO #Temp1
FROM tblMyTable1 AS a, tblMyTable2 AS p, tblMyTable3 AS v
WHERE a.Field1 = p.Field1
AND a.Field1 = v.Field1
SELECT a.Field1, a.Field2, v.Field3, p.Field4, a.Field5
INTO #Temp2
FROM tblMyTable1 AS a, tblMyTable2 AS p, tblMyTable3 AS v
WHERE a.Field1 = p.Field1
AND a.Field1 = v.Field1
SELECT *
FROM #Temp1
UNION ALL
SELECT *
FROM #Temp2
END
И эта УВУ (я поставил код VBA на НАГРУЗКАХ события отчета):
Private Sub Report_Load()
Dim rs As ADODB.Recordset
Dim cnComments As New ADODB.Connection
Dim strConn As String
strConn = "PROVIDER=SQLOLEDB;DATA SOURCE=WML202;INITIAL CATALOG=TOOL_TRACKING;UID=" & CVHx(SSTR1) & ";PWD=" & CVHx(SSTR2) & ";"
cnComments.Open strConn
Set rs = cnComments.Execute("EXEC sp_MySP")
'** What do I do here?
End Sub
Фактическая хранимая процедура намного сложнее (и не нужна), но это макет набора данных. Это UNION ALL из нескольких файлов #Temp.
Как сделать часть '** What do I do here?
так, чтобы результаты хранимой процедуры заполнили отчет?
Боковое примечание: вы не должны ** использовать префикс 'sp_' для ваших хранимых процедур. Microsoft [зарезервировала этот префикс для собственного использования (см. * Именование сохраненных процедур *)] (http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx) и вы рискуете столкнуться с именем когда-нибудь в будущем. [Это также плохо для производительности вашей хранимой процедуры] (http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix). Лучше просто просто избегать 'sp_' и использовать что-то еще в качестве префикса - или никакого префикса вообще! –
Создайте сквозной запрос, который извлекает данные из хранимой процедуры и использует запрос в качестве источника записи отчета. – HansUp