Error en formulario con Filtros

Estoy trabajando en una base de datos para mi parroquia, la misma va a manejar la inclusión de los Bautizos, Confirmaciones y Matrimonios que se realizan en la Parroquia. A trtatar de ejecutar los filtros en el formulario de Búsqueda de Bautizados para luego generar en Certificado, me da errora la jecutar el filtro. De igual manera me genera error al ejecutar el l;ink que coloque el en nombre para abrir la información requerida. Si desean me pueden enviar un correo para enviarles la base de datos.

Respuesta

¿Tiene opción de verificar en otra maquina esa aplicación?.

Eso descartaría daños al cambiar de maquina o la necesidad de recompilarla si se la cambia de version (de Access 32 bit que asumo es la version en que se creo la aplicación a Access 64 Bit que es la version que se instala ahora en maquinas nuevas).

Al verificarla en una maquina con Access en version 32 Bit solo avisa del tamaño del informe (en diseño 28 cm, un A4 tiene 21 cm) pero permite continuar y previsualizarlo.

¡Gracias! 

Buenas tardes Enrique

Ya aplique algunas soouciones y ya funciona sin problema. Lo que me esta ocurriendo ahora es que me da un error al enviar a imprimir el certificado. Le coloque un boton de Vista previa y de Imprimir al formulario y cuando le doy click al vista previa no hay problema pero al darle click al de imrpimir me arroja el siguiente error:

Compile error:

Sub or Funtion not defined.

Te coloco el codigo para que veas en donde me da el error. (Lo que esta en negrilla = comnado de Impresion)

Option Compare Database
Option Explicit

Private Sub cmdBorrarFiltro_Click()

Me.Filter = ""

With Me
.cboNombresBautizado.Value = Null
.cboApellidosBautizado.Value = Null
.FilterOn = False

End With
Me.RecordSource = "Consulta de Bautizados"
DoCmd.ShowAllRecords

End Sub

Private Sub cmdFiltro_Click()

Dim vNombresBautizado As Integer
Dim vApellidosBautizado As Integer
Dim vLargo As Integer
Dim miFiltro As String
'Cogemos los valores que hayamos seleccionado como filtro
vNombresBautizado = Nz(Me.cboNombresBautizado.Value, -1)
vApellidosBautizado = Nz(Me.cboApellidosBautizado.Value, -1)
'Inicilizamos el filtro
miFiltro = ""
'Creamos la primera parte del filtro
If vNombresBautizado <> -1 Then
miFiltro = " AND [IDBautizado]=" & vNombresBautizado
End If
'Creamos la segunda parte del filtro
If vApellidosBautizado <> -1 Then
miFiltro = miFiltro & " AND [IDBautizado]=" & vApellidosBautizado
End If
'Ahora cogemos la longitud del filtro
vLargo = Len(miFiltro)
'Recomponemos el filtro eliminando el primer 'AND '
If vLargo > 0 Then
miFiltro = Right(miFiltro, vLargo - 5)
Debug.Print miFiltro
End If
'Aplicamos el filtro al formulario
Me.[Subformulario Consulta Bautizados].Form.Filter = miFiltro
Me.[Subformulario Consulta Bautizados].Form.FilterOn = True
End Sub

Private Sub cmdImprimir_Click()

PrintReports acViewNormal


End Sub

Private Sub cmdPreview_Click()

Dim vNombresBautizado As Integer
Dim vApellidosBautizado As Integer
Dim vLargo As Integer
Dim miFiltro As String
'Cogemos los valores que hayamos seleccionado como filtro
vNombresBautizado = Nz(Me.cboNombresBautizado.Value, -1)
vApellidosBautizado = Nz(Me.cboApellidosBautizado.Value, -1)
'Inicilizamos el filtro
miFiltro = ""
'Creamos la primera parte del filtro
If vNombresBautizado <> -1 Then
miFiltro = " AND [IDBautizado]=" & vNombresBautizado
End If
'Creamos la segunda parte del filtro
If vApellidosBautizado <> -1 Then
miFiltro = miFiltro & " AND [IDBautizado]=" & vApellidosBautizado
End If
'Ahora cogemos la longitud del filtro
vLargo = Len(miFiltro)
'Recomponemos el filtro eliminando el primer 'AND '
If vLargo > 0 Then
miFiltro = Right(miFiltro, vLargo - 5)
Debug.Print miFiltro
End If
'Aplicamos el filtro al Reporte
DoCmd.OpenReport "Certificado Bautismo", acViewPreview, , miFiltro


End Sub

Si me puedes ayudar te lo agradesco.

Estoy tratando de valorar tu respuesta pero sale un mensaje de "Ha ocurrido un erro al realizar la valoracion".

Para imprimir un informe solo hay que abrirlo (la opción: 'acViewNormal')

Lo que delata como error es que 'PrintReports' no existe como palabra reservada ni es una subfunción.

Hay algo que me llama la atención en lo publicado y es que para la vista previa se regenera el filtro y para imprimirlo no: que ocurrirá si se le borra el filtro y se envía a imprimir ¿habrá papel suficiente?.

Se puede verificar la existencia de un filtro activo (que Me. Filter no sea una cadena vacía y/o que FilterOn sea verdadero).

Si no hay un filtro activo, abortaría la impresión//vista previa y enviaría un mensaje de aviso.

Otra alternativa si se cumple que no hay filtro activo, consiste en desactivar los botones de imprimir/visualizar (ya puestos a acotar opciones, el botón de eliminar filtro solo estaría activo si hay un filtro activo).

(Respecto a las valoraciones, son 'cosas del foro' a las que no hay que dar importancia, ya funcionaran cuando así lo decidan los moderadores)

Nota:

Revisare el código (tiene partes redundantes) y también el informe para proponer alternativas.

¡Gracias! 

¡Gracias! 

Tras analizar el formulario en que se localiza la partida de nacimiento, aprecio un error conceptual en el tratamiento de los datos que se multiplicara con cada dato nuevo.

Tanto en la búsqueda por nombre como en apellido se carga a los respectivos combos con todos los registros de la tabla por lo que se llegara limites poco manejables con los combos, además habrá repeticiones de nombres (y de apellidos) en ambos combos.

Lo correcto seria que los combos se llenasen con datos únicos (en lugar de veinte 'María' y veinte 'José' una maria y un Jose, en lugar de treinta 'López' o 'Martinez' un solo Lopez y un solo 'Martinez'

Seleccionado en uno u otro combo un dato (de los únicos que poseen) se aplicara un filtro a los datos para obtener las combinaciones (Nombre + Apellido).

Al seleccionar uno de los registros se obtiene el ID asociado y aplica como filtro con el fin de obtener un registro único, detectado que solo hay un dato, se activan las opciones de imprimir/visualizar (con el fin de minimizar errores e imprimir/visualizar toda la tabla).

Para facilitar ls búsquedas, al seleccionar uno de los Items del combo, en el otro se pueden filtrar los asociados (todos los 'José' con diferente apellido o todos los 'Martinez' con diferente nombre).

Comenta si ves esta solución como aplicable en la base de datos (a la que le faltan algunas tablas que permitirían a los recién nacidos ser mañana padres o padrinos de las siguientes generaciones).

2 respuestas más de otros expertos

Respuesta
Respuesta

Antes le recomiendo ver mi video https://www.youtube.com/watch?v=vnmVcfBwtIw&ab_channel=AprendiendoAccessyPostgreSQL. Puede enviarme la base de datos comprimida a [email protected] exponiendo su problema y trato de colaborarle

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas