David Emerson
davide at dalyn.co.nz
Wed Mar 5 17:01:37 CST 2003
Thanks for your suggestions Susan and Francisco,
The sproc works if I open it from Access and manually enter the parameter.
Tried all suggestions below - no difference.
Tried changing the name of the parameter - same result.
Tried (with same result) -
Me.RecordSource = "EXEC spfrmCustomers @AccStatus='" &
strAccStatus & "'"
Me.RecordSource = "EXEC spfrmCustomers @AccStatus='" strAccStatus
Me.RecordSource = "EXEC spfrmCustomers strAccStatus"
Finally, tried clearing the InputParameter property on the form
(was @AccStatus='%') and bingo! One happy-chappy :) Seemed to be some
conflict with this but I don't understand why.
David
At 5/03/2003, you wrote:
>Since it works in QA, now try executing it from the stored procedure tab in
>your ADP, look for spfrmCustomers and double click it, then enter the
>parameter manually (into the input box)... If this works fine, then the
>error lies in the call
>
>Modify for grins...
>Me.RecordSource = "EXEC spfrmCustomers @AccStatus = 'Active'"
>to
>Me.RecordSource = "EXEC spfrmCustomers 'Active'"
>OR
>Me.RecordSource = "EXEC spfrmCustomers @AccStatus = "& chr(39) & "Active" &
>chr(39)
>
>
>
>
>
>-Francisco
>http://rcm.netfirms.com
>----- Original Message -----
>From: "David Emerson" <davide at dalyn.co.nz>
>To: <dba-sqlserver at databaseadvisors.com>
>Sent: Wednesday, March 05, 2003 10:43 AM
>Subject: Re: [dba-SQLServer]Calling a Sproc with Parameter
>
>
>: I have used query analyser and run the sproc both with entering % and
>: Active as the parameter. Both work OK.
>:
>: I can't seem to find any information on "error 2353 - Bad query
>: parameter." Anyone know of a source that will explain this? (I tried
>: Access help, BOL, Google).
>:
>: Here is the sproc in case I have missed something -
>:
>: ALTER PROCEDURE spfrmCustomers
>:
>: (
>: @AccStatus varchar(20) = '%'
>: )
>:
>: AS
>: SET NOCOUNT ON
>:
>: SELECT dbo.tblCustomers.*,
>: case
>: when [Residential]=1
>: then CSurname + C1stName
>: else TradingName
>: end
>: as SortOrder
>: FROM dbo.tblCustomers
>: WHERE AccStatus like @AccStatus
>: ORDER BY SortOrder
>:
>: If @@Error <> 0
>: Begin
>: Select 'Unexpected error occurred: ', @@Error
>: Return @@Error
>: End
>: else
>: return 0
>:
>:
>:
>: David
>:
>: At 5/03/2003, you wrote:
>:
>:
>: Both points are valid, but in this case the Sproc must be able to handle
>: the
>: '%'. Assuming that you are not executing Dynamic Sql in your sproc you
>: maybe manipulating the sproc to select all Customers not just the active
>: ones... Do you have access to Query Analyzer? if so I would test the
>: sproc
>: in there to make sure it executes w/o errors. I have found certain
>: errors
>: to be Access Only. Such as selecting data from a linked table on
>: another
>: server.
>:
>:
>: -Francisco
>: http://rcm.netfirms.com <http://rcm.netfirms.com/>
>: ----- Original Message -----
>: From: "Djabarov, Robert" <Robert.Djabarov at usaa.com>
>: To: <dba-sqlserver at databaseadvisors.com>
>: Sent: Wednesday, March 05, 2003 7:13 AM
>: Subject: RE: [dba-SQLServer]Calling a Sproc with Parameter
>:
>:
>: I will have to respectfully disagree with the previous recommendations.
>: LIKE will prevent your sp from compiling in the first place, while the
>: usage
>: of EXEC is very proper in the original code. Although the suggested
>: form is
>: still valid, specifying named parameters is actually encouraged for the
>: clarity of the code, and MS fully supports EXEC sp_PROC
>: @Parm1='<value>',
>: @Parm2=<value>, etc.
>:
>: Robert Djabarov
>: Senior SQL Server DBA
>: USAA IT/DBMS
>: * (210) 913-3148 - phone
>: * (210) 753-3148 - pager
>:
>: -----Original Message-----
>: From: Mike and Doris Manning [ mailto:mikedorism at ntelos.net
>: <mailto:mikedorism at ntelos.net> ]
>: Sent: Wednesday, March 05, 2003 7:25 AM
>: To: dba-sqlserver at databaseadvisors.com
>: Subject: RE: [dba-SQLServer]Calling a Sproc with Parameter
>:
>: Two things.
>:
>: 1) Make sure your sproc is looking for LIKE @AccStatus and not =
>: @AccStatus
>:
>: 2) When you use EXEC, you don't add the name of the parameter.
>: "EXEC spfrmCustomers 'Active'"
>:
>: Doris Manning
>: Database Administrator
>: Hargrove Inc.
>: www.hargroveinc.com <http://www.hargroveinc.com/>
>: -----Original Message-----
>: From: dba-sqlserver-admin at databaseadvisors.com
>: [ mailto:dba-sqlserver-admin at databaseadvisors.com
>: <mailto:dba-sqlserver-admin at databaseadvisors.com> ] On Behalf Of David
>: Emerson
>: Sent: Tuesday, March 04, 2003 07:01 PM
>: To: dba-SQLServer at databaseadvisors.com
>: Subject: [dba-SQLServer]Calling a Sproc with Parameter
>: I have a button on a form which is used to filter the records. The code
>: is -
>:
>: Private Sub cmdCustomerFilter_Click()
>:
>: On Error GoTo Err_cmdCustomerFilter_Click
>:
>: If Me!cmdCustomerFilter.Caption = "Show Active" Then
>: Me.RecordSource = "EXEC spfrmCustomers @AccStatus = 'Active'"
>: <-
>: Problem line
>: Me!cmdCustomerFilter.Caption = "Show All"
>: Else
>: Me.RecordSource = "EXEC spfrmCustomers @AccStatus='%'"
>: Me!cmdCustomerFilter.Caption = "Show Active"
>: End If
>: .....
>:
>: End Sub
>:
>: In the sproc the parameter is -
>:
>: @AccStatus varchar(20) = '%'
>:
>: When I click on the button I get error 2353 - Bad query parameter. I
>: can
>: run the query in Query analyser and it runs ok.
>:
>: If I leave the @AccStatus = 'Active' off then a message appears telling
>: me
>: that the procedure expects the parameter (so this tells me it is calling
>: the
>: correct sproc)
>:
>: I think the problem is in the call but can't put my finger on it. Any
>: help?
>:
>:
>:
>: Regards
>:
>: David Emerson
>: DALYN Software Ltd
>: 25b Cunliffe St, Johnsonville
>: Wellington, New Zealand
>: Ph/Fax (877) 456-1205
>: