[dba-SQLServer]Sending parameters to a report

Mike and Doris Manning mikedorism at ntelos.net
Tue Feb 25 07:34:17 CST 2003


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/37ba55d0/attachment.html>


More information about the dba-SQLServer mailing list