Visual Basic - enviar un recordset a funcion

Life is soft - evento anual de software empresarial
 
Vista:

enviar un recordset a funcion

Publicado por claudio (38 intervenciones) el 16/01/2009 16:38:41
HOla que tal

lo que sucede es que tengo un recorset el cual necesito pasaselo a otra funcion en un modulo, con que sentencia realizo esto

FORMULARIO
Dim RestD As ADODB.Recordset
Set RestD = CreateObject("ADODB.Recordset")
Set RestD = InfoOrdenFacturacion() ' se llena el recorset
Call OrdenDespacho(fechacorta, hora, Npro, RestD)

EN OTRO MODULO

Public Sub OrdenDespacho(ByVal fch As String, ByVal hra As String, ByVal numProv As Integer, ByVal rs As ADODB.Recordset)

If Not rs.BOF Then
rs.MoveFirst
End If
If TypeName(rs) <> "Nothing" Then
If Not rs.EOF Then

While Not rs.EOF
linea = ""
linea = linea + Trim(rs("IDCOMPRA").Value) + ";"
rs.MoveNext
Wend
end if
end if

rs quien es quien recibe el recorset enviado esta definido con ADODB.Recorset pero no funciona probe con definirlo como Variat pero tampoco se cae al momento de recorerlo

ojala alguien me pueda ayudar

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:enviar un recordset a funcion

Publicado por pacopaz (173 intervenciones) el 16/01/2009 18:00:56
Intenta declararlo así:
Public Sub OrdenDespacho(ByVal fch As String, ByVal hra As String, ByVal numProv As Integer, ByRef rs As ADODB.Recordset)

Esto es por que si pasas un parámetro ByVal, genera una nueva instancia en memoria para tener la custodia de los valores que pasas, mientras que ByRef utilizaría la misma instancia de memoria que tiene el recordset original.
O también puedes optar por generar el recordset en el otro módulo.

Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar