[AccessD] Byref and recordset field question

Gustav Brock Gustav at cactus.dk
Fri May 26 10:19:53 CDT 2006


Hi Bobby

Missed this:

public sub Somemethod(byval a as double,byval b as double,byval c as double)

You are passing the Values of the fields, not the Field objects themselves.

/gustav


>>> bheid at appdevgrp.com 26-05-2006 17:06:02 >>>
Sorry, forgot to mention that I am using DAO and there is an .edit and
.update in there.

so we have:
public Somefunction(byref rs as recordset)

	with rs
	  .edit
        someclass.somemethod !a,!b,!c,!x,!y,!z
	  .update
	  end with
 
end sub


Bobby

-----Original Message-----
From: accessd-bounces at databaseadvisors.com 
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock
Sent: Friday, May 26, 2006 10:34 AM
To: accessd at databaseadvisors.com 
Subject: Re: [AccessD] Byref and recordset field question


Hi Bobby

You need to Edit and (for ADO) Update the recordset:

    With rs
      .Edit
      someclass.somemethod !a,!b,!c,!x,!y,!z
      .Update
    End With

/gustav

>>> bheid at appdevgrp.com 26-05-2006 16:16:16 >>>
Hi all,

I am passing a recordset to a sub byref.
In that sub, I am calling a method in a class and passing several of the
fields in the recordset as byref to be like output parameters.  The trouble
is that when the method exits, it is not setting the value in the byref
fields.  
If you look at the variables in the method definition right before the
method exits, it looks like it is set.  But when you look at the value in
the calling sub, it's value has not changed.  

A short example:

set rs=db.openrecordset(strSQL,dbopendynaset)

Somefunction rs	'call the first function, passing recordset byref
...

public Somefunction(byref rs as recordset)

	with rs
        someclass.somemethod !a,!b,!c,!x,!y,!z
	  end with
 
end sub

'x,y,z are the byref "return" variables
public sub Somemethod(byval a as double,byval b as double,byval c as double,
_
	byref x as double,byref y as double,byref z as double)

	'some calcs...
	x=a+1
	y=a*b
	z=2*a

exit sub

If I pass local variables for x,y, and z, everything works properly.  Anyone
know if there is a way to make this work?  There are 5 return parameters and
I'd hate to have to make up 5 variables each time I have to call this
method.

Thanks,
Bobby





More information about the AccessD mailing list