Visualización ultimo registro en informe.

Haber si me puedes ayudar ante un problema que tengo en mi bd.
Tengo un formulario para la entrada de datos... Todos los registros nuevos van a parar a un única tabla.
Lo que pretendo, que una vez yo hago la entrada de todos mis registro en este formulario, en el cual tengo un botón de comando para agregar nuevo registro. Es generar otro botón de comando en el formulario para poder imprimir el ultimo registro entrado en la tabla.
He creado un informe con el origen de una consulta creada de la tabla de datos.
Pero en el botón de comando creado para el informe que esta dentro del formulario, cuando lo marco, el informe me aparece con todos los registros que he dado de entrada, necesito solo poder visualizar el último registro.

1 respuesta

Respuesta
1
Bien, vamos por partes:
- Tienes un formulario que se alimenta de una tabla, con todos sus registros.
- Tienes un informe que se alimente de esa misma tabla, igualmente con todos sus registro, por eso te salen todos
Supongamos que en tu tabla tienes vahículos, año de antigüedad, kilómetros, y matrícula
Lo que has de hacer es lo siguiente
- Hacer una consulta a esa tabla, con un solo registro, tomando sólo una matrícula:
select * from vehiculos where matricula = '5555CCC'
- darle al informe que tienes los datos desde esta consulta
- para automatizarlo, cada vez que cambies de registro se ha de construir nuevamente la consulta
select * from vehiculos where matricula = '5555CCC', en el registro 5555CCC
select * from vehiculos where matricula = '0000DDD', en el registro 0000DDD
Esto se puede hacer de varias maneras, la que me parece mejor, por que desde esta se puede evolucionar más la base de datos, es la siguiente:
1) Construyes la consulta y la guardas, démosla el nombre "QS_001_001"
2) En la vista diseño, le dices al informe que tome los datos de esta consulta
3) Ahora en el botón del formulario ha de hacer lo siguiente:
a) Tomar el valor del control (textbox, combo, label, ...) donde estés mostrando la matrícula, y almacenalo en una variable
ej. : strMatr = me.txtMatricula.Tetx
b) construir la cadena SQL nueva, cambiando el valor de la matrícula:
strSQL = "SELECT * FROM vehiculos WHERE matricula = '"  strMatr & "';"
c) Darle al objeto recordser QS_001_001 el valor de strSQL
d) abrir el informe en pantalla o en impresión
Has de escribir todo el código en el botón, o bien separarlo en dos partes: la primera, hasta que le das el valor de la cadena strSQL al objeto QS_001_001 en el evento current del formulario, y la que abre el informe en el botón.
No te puedo poner todo el código personalizado para tu caso por no conocerlo bien, ni saber tu nivel de VBA, además la colección de objetos cambia entre las versiones de Access.
Yo utilizo mucho un módulo que me hice hace tiempo, que directamente crea la consulta con el SQL en cada caso; la función tiene dos parámetros el nombre de la consulta, y el SQL. Lo que hace es borrar la consulta si existe, y crearla de nuevo. Es bastante útil. De esta manera desde cualquier lugar puedo crear las consultas a partir de valores de controles de los formularios de una manera rápida, controlada y transparente para el usuario.
Otra opción más rápida y si necesidad de VBA, es que hagas una consulta por parámetros, al usuario le parecerá que Access le está preguntado.
Espero que te sea de ayuda. Si tienes alguna duda sobre esto, dímelo
Un buen truco, basándose en esto, es que crees una consulta tal y como te decía antes, con un sólo campo de salida, la matrícula.
Y hagas otra consulta para alimentar el informe que incluya esta anterior, y a cualquier valor de cualquier tabla que tengas relacionada, es una manera muy potente de extraer información rápidamente
Muchas gracias por la celeridad en tu respuesta... Probaré lo que me comentas, a fin sobretodo de ir aprendiendo un poco más en el mundo de la programación VBA.
De momento, voy tirando con un arreglo con una consulta de parámetros... el formulario lo he creado como formulario continuo, visualizando cada nueva entrada el Id (autonumérico) asignado y luego mediante una consulta pregunto que Id quiero visualizar en el informe.
Nuevamente gracias por tu respuesta.
Un saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas