Access - Tomar el valor anterior de una fila

 
Vista:

Tomar el valor anterior de una fila

Publicado por Hernán Camilo (4 intervenciones) el 22/07/2012 19:37:07
Hola Neckitto espero que la este pasando bien, quiero preguntarle sobre lo de ayer, resulta que tengo casi todo calculado para realizar lo de mi informe (consulta3 y la tabla de origen de registros que alimentara el informe llamado TConsulta4), la idea es que si abres Tconsullta 4 en el boton que se llama "calcular" que se ubica en la parte inferior del formulario llamado" Inversiones" veras que en la columna llamada Inversion (Que es la ulltima)aparece 2 registros vacios, la idea es que me tome el valor anterior, es decir ahi tiene que aparecer para los dos campos vacios del ejemplo el "Economato" , pero desafortunadamente no me aparecen , he aplicado lo siguiente, apicando la logica analistica que tu me ayudaqste, pero no he conseguido resultado para solucionar dicho inconveniente:

' 22 de Julio de 2012:
vAnterior4 = .Fields(14).Value
If IsNull(rstOut.Fields(12).Value) Then
rstOut.Fields(12).Value = vAnterior4
End If

ó si deseo solo tomar los registros de la tabla Tconsulta4 :

vAnterior4 = rstOut.Fields(12).Value
If IsNull(rstOut.Fields(12).Value) Then
rstOut.Fields(12).Value = vAnterior4
End If

Siempre me aparece señalado como error la linea de codigo rstOut.Fields(12).Value, diciendome adicionalmente un mensaje de error "No hay ningun registro activo" , que hago para soluciones ese inconveniente???

Gracias,
osdata : te envio la base de datos comprimida por el correo electronico y de antemano de nuevo muchas gracias pr tu colaboracion que Dios lo bendiga.

Att. Ing, Hernán Camilo Martínez V.
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
Imágen de perfil de Neckkito
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Tomar el valor anterior de una fila

Publicado por Neckkito (1157 intervenciones) el 23/07/2012 17:45:34
Hola, Hernán:

Te indico sólo el fragmento de código que hace lo que pides. Te lo pongo aquí por si puede ayudar a alguien con un problema similar (añado un par de variables necesarias para el código pero que tú ya tienes declaradas)

...
'-------------------------------------------------------------------------
'Ya tenemos la tabla TConsulta4 rellena con los datos que queremos. Vamos a re-rellenarla
'con la información necesaria en el campo [Inversión]
Dim miSql As String
Dim vInv As String
Dim rstOut As DAO.Recordset
'Creamos una SQL con sólo el campo que necesitamos (para optimizar recursos)
miSql = "SELECT TConsulta4.Inversion FROM TConsulta4"
'Creamos el recordset sobre la SQL
Set rstOut = CurrentDb.OpenRecordset(miSql)
'Nos movemos al primer registro
With rstOut
.MoveFirst
'Cogemos el valor que haya en inversión
vInv = Nz(.Fields(0).Value, "")
'Nos movemos al siguiente registro
.MoveNext
'Empezamos el proceso de llenado
Do Until .EOF
'Si no hay valor ponemos el anterior
If IsNull(.Fields(0).Value) Then
.Edit
.Fields(0).Value = vInv
.Update
Else
'Si hay valor lo cogemos para el siguiente registro
vInv = .Fields(0).Value
End If
'Nos movemos al registro siguiente
.MoveNext
Loop
End With
'-FIN-------------------------------------------------------------------------------------
'-----------------------------------------------------------------------------------------
...
Saludos,

Neckkito
... http://neckkito.eu5.org ...
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