[AccessD] Pass a recordset as parameter

jwcolby jwcolby at colbyconsulting.com
Mon Nov 12 18:52:58 CST 2007


Yes, you can.  You can pass pretty much anything except a custom data type. 


John W. Colby
Colby Consulting
www.ColbyConsulting.com 
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Arthur Fuller
Sent: Monday, November 12, 2007 6:51 PM
To: Access Developers discussion and problem solving
Subject: [AccessD] Pass a recordset as parameter

Can one pass a recordset as a parameter to a function. I guess I could write
a quick tester to determine this, but I'm in the middle of something else.
If I could do this, I could seriously simplify some hairy code that I
inherited.

Just as an aside and casual invitation to start another lengthy debate, all
this inherited code is based on dynamically building SQL statements using
the values contained in a recordset. A typical example would be:

            sDocMemo = sDocMemo _
                & " is too close to the pinch point.  It is " &
Nz(rsLCData!DisToPinchPoint1, 0) _
                & " millimetres away and should be at least " _
                & Nz(rsLCData!DsPP1_ShouldBe, 0) & " millimetres away from
the Pinch Point." _
                & "  " & sBlankedBeamsText

Oh God, I hate this style of coding. It makes me crazy. It may work but even
with the logical line breaks it's hard as hell to read (or maybe I'm just
getting too old for this business.

There are a bunch of text-assembly blocks like this all stuck into one huge
(1000+ lines) procedure. My plan is to break each text-assembly chunk out
into a function that accepts a recordset as a parameter and builds the
string and returns it. If I can't pass the recordset, then I'll grab its
values and pass those instead, and break this 1000-liner into about 20
5-liners (or less lines per function), which fetch the text from a table and
then whose content uses a syntax like this:

The ///LCPosition1/// light curtain is too close to the pinch point. It is
///DisToPinchPoint1/// millimetres away and should be at least
///DsPP1_ShouldBe///  millimetres away from the Pinch Point.

The given function will use Replace() to find the triple-shlash-delimited
insertion-points and replace them with the passed parameters, then return
the string.

Anyone see any problems with this approach?

TIA,
Arthur
--
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