Visual Basic para Aplicaciones - Formulario Continuo con DAO

Life is soft - evento anual de software empresarial
 
Vista:

Formulario Continuo con DAO

Publicado por Ignacio (6 intervenciones) el 21/02/2013 13:25:32
Buenos dias:

He empezado a utilizar DAO para conectar para conectar bases de datos (estoy todavia aprendiendo ya que es todo un mundo).

Lo que me pasa es que tengo un formulario Continuo y cuando importo los datos solo me muestra el ultimo registro y por mas que miro consultas y intento hacer mis propios experimentos no se como hacer para que me muestre todos los registros.

Este es el codigo que tengo

Dim db As DAO.Database
Dim rs As DAO.Recordset

Set db = DBEngine.OpenDatabase("RutaBaseDatos")
Set rs = db.OpenRecordset("Consulta")

rs.MoveFirst

While Not rs.EOF
Me.Nombre1.Value = rs("Nombre1")
Me.Nombre2.Value = rs("Nombre2")
Me.Nombre3.Value = rs("Nombre3")
rs.MoveNext
Wend

Gracias de antemano por vuestra ayuda

Un saludo
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
sin imagen de perfil

Formulario Continuo con DAO

Publicado por Toni (4 intervenciones) el 25/02/2013 09:30:17
Ignacio,

Mi conocimiento del Recordset és elemental todavía, pero por lo que veo en el While-Wend cargas los valores de todos los registros del recordset, pero no haces nada con ellos. Cuando acaba el bucle, el valor de Nombre1, nombre2, i nombre3 és el del último registro.

La solución està en hacer alguna cosa con estos valores antes del MoveNext. (pasarlo a una consulta, por ejemplo). Para ver si funciona prueba un debug.print que te devuelva estos valores.

Toni
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

Formulario Continuo con DAO

Publicado por Ignacio (6 intervenciones) el 25/02/2013 12:55:50
Muchas gracias por la respuesta.

Yo tambien estoy muy pez en este tema.

Lo que he entendido es que lo que hace es en el formulario, aun cuando este puesto que sean formularios continuos, lo unico que hace es como si me cargara solo el ultim registro ya que va recorriendo toda la consulta hasta el ultimo registro que es el que aparece.

De todas maneras cuando pongo un debug.printe me salen toso los regitros.

He intentado esto

Dim db As DAO.Database
Dim rs As DAO.Recordset

Set db = DBEngine.OpenDatabase("RutaBaseDatos")
Set rs = db.OpenRecordset("Consulta")

Set me.recordset = rs

Sigo investigando paraasi aprender mas sobre el tema que me abre un sin fon de posibilidades.

Muchas gracias
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
sin imagen de perfil

Formulario Continuo con DAO

Publicado por Toni (4 intervenciones) el 26/02/2013 09:21:28
Mira, por ejemplo, este código te mostrarà en la ventana inmediato los valores de todos los campos del Recordset:

Set rs = Me.Recordset
rs.MoveFirst

Do While rs.EOF = False
For Each fld In rs.Fields
Debug.Print fld.Name, fld.OrdinalPosition, fld.Value
Next
rs.MoveNext
Loop

Set rs = Nothing
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

Formulario Continuo con DAO

Publicado por José (12 intervenciones) el 18/11/2013 14:35:24
Hola,
no se si has resulto tu problema; en caso contraria ensaya lo siguiente.
puesto que aparentement tu resordset solo te sirve para ligarlo al formulario solo tienes que ligar el RecordSource del formulario con la table a la que haces referencia y en typo de formulario poner formularios continuos.
Con el formulario en forma de diseño en la hoja de propiedades y en la pesña datos-origen del resistro elige de la lista la table que te interesa y en la pestaña formato -- vista predeterminada elige formularios continuos.
Saludos
José
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