Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Pasar posicion recordset mientras lo recorro

Estas en el tema de Pasar posicion recordset mientras lo recorro en el foro de Visual Basic clásico en Foros del Web. Hola amigos!! Quisiera saber como puedo pasar a una funcion externa la fila actual del recordset que estoy recorriendo tengo este codigo Código: Do While ...
  #1 (permalink)  
Antiguo 06/02/2009, 07:43
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 2 meses
Puntos: 0
Pasar posicion recordset mientras lo recorro

Hola amigos!!
Quisiera saber como puedo pasar a una funcion externa la fila actual del recordset que estoy recorriendo
tengo este codigo

Código:
        Do While Not rs.EOF
             miFucnion (rs.field)??????
            rs.MoveNext
        Loop

Espero haberme explicado

PD: No he puesto el código completo ya que es largo de explicar, pero es un caso particular en el que tengo que hacer varias cosas
  #2 (permalink)  
Antiguo 06/02/2009, 08:05
Avatar de geokym  
Fecha de Ingreso: agosto-2007
Mensajes: 36
Antigüedad: 16 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Pasar posicion recordset mientras lo recorro

Puedes hacerlo la llamada de las siguiente forma

Call MiFuncion(Rs.Fields("Campo"))

ó

MiFunction Rs.Fields("Campo")

Si deseas guardar el resultado en una variable así.

MiVariable = MiFuncion(Rs.Fields("Campo"))

Espero te sirva ;)
__________________
xD
  #3 (permalink)  
Antiguo 06/02/2009, 11:24
Avatar de Txoco  
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 11 meses
Puntos: 7
Respuesta: Pasar posicion recordset mientras lo recorro

Qué tal?

Debes pasar la colección Fields del recordset, que contiene información sobre todos y cada uno de los campos que devuelva la consulta.

Este ejemplo está hecho con acceso mediante ADO, para DAO, cambia "ADODB" por "DAO" (o elimínalo si estás en Access), y lo que hace es mostrarte un mensaje con el nombre de cada campo de la consulta y el valor del registro actual. No tiene controles de ningún tipo, por lo que si el recordset está en EOF o BOF, te va a dar un error, así que completa eso

Código:
Private Sub Registro(ByVal wFields As ADODB.Fields)
Dim i   As Long

     For i = 0 To wFields.Count
         Call MsgBox("Campo " & i + 1 & " de " & wFields.Count & ":" & vbCrLf & _
                     "Nombre: """ & wFields(i).Name & """" & vbCrLf & _
                     "Valor: """ & wFields(i).Value & """")
     Next i
End Sub
Luego, en la función donde recorras el recordset, para cada iteración del bucle haces una llamada a la función así:

Código:
Call Registro(rs.Fields)
El método que te propone Geokym es válido, pero sólo te pasa un campo, no todos.
__________________
wile sona li mute e sona
  #4 (permalink)  
Antiguo 10/02/2009, 04:26
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Pasar posicion recordset mientras lo recorro

gracias!!

Me sirvió de mucho.

Gracias por vuestra rapidez!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:14.