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í:
El método que te propone
Geokym es válido, pero sólo te pasa un campo, no todos.