[AccessD] Access 2000 - Filtering SQL Server records

Martin Reid mwp.reid at qub.ac.uk
Wed Sep 16 09:16:59 CDT 2009


John

example of the web

Public Function CreateProc()
   Dim strProc As String
   strProc = "Create Procedure qryCustByCity " & _
             "(prmCity varchar) as " & _
             "select * from Customers where City = prmCity"
   CurrentProject.Connection.Execute strProc
End Function
    

Public Function RSFromParameterQuery(strCity As String)
   Dim prm As ADODB.Parameter
   Dim cmd As ADODB.Command
   Dim rst As ADODB.Recordset
   Set cmd = New ADODB.Command
   Set cmd.ActiveConnection = CurrentProject.Connection
   cmd.CommandText = "qryCustByCity"
   cmd.CommandType = adCmdStoredProc
   Set prm = cmd.CreateParameter("prmCity", adVarChar, _
             adParamInput, Len(strCity))
   prm.Value = strCity
   cmd.Parameters.Append prm
   Set rst = New ADODB.Recordset
   rst.Open cmd
   Do Until rst.EOF
      Debug.Print rst(0), rst(1), rst(2)
      rst.MoveNext
   Loop
End Function



Martin WP Reid
Information Services
The Library at Queen's
Tel : 02890976174
Email : mwp.reid at qub.ac.uk
________________________________________
From: accessd-bounces at databaseadvisors.com [accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby [jwcolby at colbyconsulting.com]
Sent: 16 September 2009 15:05
To: Access Developers discussion and problem solving
Subject: [AccessD] Access 2000 - Filtering SQL Server records

I have an application that goes to SQL Server for three different tables.  These tables are from a
third party payroll system.  The tables are about check information.  One of the fields holds a text
representation of the autonumber (long int) PK from one of my tables (the Claimant table).  ATM we
have a single view in SQL Server that pulls each and every check record.  Back in Access I then
convert the string to long and then filter down to just the records for the claim(s) I am interested in.

This is sloooooowwwwwww.......

In this case I am using one single view for everything I do with this check data anywhere in this or
any other of my applications.  Thus it returns every check (over 100K) any time I do ANYTHING.

I don't really use SQL Server very much as a BE to Access applications so I don't have experience in
other ways to do this.  So I need help.

I know that the first thing I could do is rewrite the view to do the data type conversion out in SQL
Server and hand me back records with that PKID already converted to a long integer.

Aside from that though, I really want to pass in a specific PKID and have SQL Server give me back
just the check records for that PKID.

Remember that this is 2K.  The data is NOT editable so I do not need, and in fact cannot even get
write access to the data.

So how do I get data back from SQL Server specific to a PK?  I assume that I have to go with a
stored procedure?

Any help (as detailed as possible) is much appreciated.

--
John W. Colby
www.ColbyConsulting.com
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com



More information about the AccessD mailing list