[dba-SQLServer]Sending parameters to a report

Susan Zeller szeller at cce.umn.edu
Tue Feb 25 11:55:55 CST 2003


I have also used this method successfully, but it is cumbersome.  

	-----Original Message-----
	From: Mike and Doris Manning [mailto:mikedorism at ntelos.net] 
	Sent: Tuesday, February 25, 2003 7:34 AM
	To: dba-sqlserver at databaseadvisors.com
	Subject: RE: [dba-SQLServer]Sending parameters to a report
	
	
	David,
	 
	The only way I have been able to set them through code is to
open the form or report in design view, set the parameters, close the
design view copy, and then open the form or report.  Here is the code I
use but this code will not work if the database window is hidden.
	 
	
	Public Sub PrepareFormRept(ItemName As String, Param As String,
_
	                        IsForm As Boolean, Optional prt As
Printer)
	                        
	    On Error GoTo ErrorHandler
	    
	    If IsForm = True Then
	        DoCmd.Echo False, "Preparing Form"
	        DoCmd.OpenForm ItemName, acViewDesign
	        Forms(ItemName).InputParameters = Param
	        DoCmd.Close acForm, ItemName, acSaveYes
	    Else
	        DoCmd.Echo False, "Preparing Report"
	        DoCmd.OpenReport ItemName, acViewDesign
	        Reports(ItemName).InputParameters = Param
	        If Not IsMissing(prt) And Not prt Is Nothing Then
	            Reports(ItemName).Printer = prt
	        End If
	        DoCmd.Close acReport, ItemName, acSaveYes
	    End If
	        
	    DoCmd.Echo True
	    
	    Exit Sub
	    
	ErrorHandler:
	    DoCmd.Echo True
	    Call HandleErrors(Err, strMyName, "PrepareFormRept")
	End Sub
	 
	Doris Manning
	Database Administrator
	Hargrove Inc.
	www.hargroveinc.com

		-----Original Message-----
		From: dba-sqlserver-admin at databaseadvisors.com
[mailto:dba-sqlserver-admin at databaseadvisors.com] On Behalf Of David
Emerson
		Sent: Monday, February 24, 2003 04:37 PM
		To: dba-SQLServer at databaseadvisors.com
		Subject: [dba-SQLServer]Sending parameters to a report
		
		
		I have a problem with a report in an AXP/SQL2K database.
		
		I have a button on a customer form which is supposed to
open up a report with just the current customers information on it.  In
the OpenReport statement I send the inputParameters via the OpenArgs to
the report and then in the report's Open event set me.InputParameters =
me.OpenArgs.
		 The main report sproc then uses the InputParameters to
select the correct record (theoretically).
		
		But I must be missing something because even though the
inputparameter property is being updated, the sproc is not using the
information to retrieve the correct data.  Here is the main parts of the
sproc -
		
		ALTER PROCEDURE sprptAccounts
		
		        (
		                @txtCustID int,
		                @StatementNumber int
		        )
		
		AS
		         SET NOCOUNT ON 
		         
		        SELECT tblCustomers.CustomerID,
tblCustStatement.StatementID, 
		                case
		                        when [Residential]=1
		                                then [CSurname] +
[C1stName]
		                        else [TradingName]
		                end
		                AS SortName, tblCustStatement.SMName,
tblCustStatement.SMAddress1, tblCustStatement.SMAddress2, 
		                tblCustStatement.SMSuburb,
tblCustStatement.SMCity, tblCustStatement.SMPostCode,
tblCustStatement.SAccountNo, 
		                case
		                        when Not ([PrevStatementDate] is
null)
		                                then
DateAdd("d",1,[PrevStatementDate])
		                        else [PrevStatementDate]
		                end
		                AS StatFirstDate,
tblCustStatement.StatementDate, tblCustStatement.StatementNumber,
tblCustStatement.CurrentMth, 
		                [OneMonth]+[TwoMonths]+[ThreeMonths] AS
Overdue, tblCustStatement.OneMonth, tblCustStatement.TwoMonths, 
		                tblCustStatement.ThreeMonths,
tblCustStatement.ComBondBal, tblCustStatement.Processed,
tblCustomers.AccStatus, tblCustomers.AccFreq,
tblCustStatement.DDRegistered
		        FROM tblCustomers INNER JOIN tblCustStatement ON
tblCustomers.CustomerID = tblCustStatement.CustIDNo
		        WHERE (tblCustomers.CustomerID = @txtCustID) and
(tblCustStatement.StatementNumber = @StatementNumber)
		
		
		The call to open the report is -
		 DoCmd.OpenReport "rptAccounts", acViewPreview, , , ,
"@CustID int = " & txtCustIDNo & ", @StatementNumber int = " &
txtStatementNumber
		
		An example of the openarg sent is -
		@CustID int = 773500661, @StatementNumber int = 11
		
		The report's Open event is
		
		Private Sub Report_Open(Cancel As Integer)
		
		    Me.InputParameters = Me.OpenArgs
		
		End Sub
		
		Am I going about this all wrong? 
		

		Regards
		
		David Emerson
		DALYN Software Ltd
		25b Cunliffe St, Johnsonville
		Wellington, New Zealand
		Ph/Fax (877) 456-1205 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://databaseadvisors.com/pipermail/dba-sqlserver/attachments/20030225/a32df13d/attachment.html>


More information about the dba-SQLServer mailing list