Formulario Multibuscador con varias tablas

Tengo un formulario como el siguiente:

El origen de datos del mismo, es una "mega" consulta de 17 tablas, donde los campos son exactamente los mismos, pero el año es diferente... En fin, el problema con el que me cruzo es que la parte donde tengo combobox son mis filtros, pero no se como hacer para que busque un "sistema de entre todos los registros que se mostraran en el formulario.

Ya que el campo "sistema" no se llama "sistema" si no "tblobligaciones1999.sistema" resultado de la consulta que hice con todas las tablas de mismos nombres de campo.

Si saben de algun otro formulario buscador que me ayude con ese problema o un consejo para trabajar con el que yo tengo.

1 Respuesta

Respuesta
2

¿Y dónde tienes el problema? Si sabes hacer un filtro para un campo llamado "sistema", que se llame "tblobligaciones1999.sistema" o "pepitogrillo" no influye en nada...

Y si no te gusta que el campo se llame "tblobligaciones1999.sistema", cámbiaselo en el diseño de tu consulta, poniendo el nombre que quieras, dos puntos (:) y el tblobligaciones1999. Sistema en la fila "Campo" de la vista diseño de la misma, así por ejemplo:

Sistem: tblobligaciones1999. Sistema

Un saludo.


Ok si entiendo tu punto Svein, este formulario lo tengo también, usando una tabla como origen de datos del formulario, pero en esta ocasión es una consulta que involucra 17 tablas:

Todas ellas contienen los mismos campos con el mismo nombre solo varían sus años.

Para poder filtrar, en los combobox, en origen de fila, como pongo el origen del campo "sistema" si ese campo esta repetido17 veces, (hay un campo "sistema" en la tabla 'TblObligaciones1999" otro en la TblObligaciones2000... y así respectivamente.

En el código VBA tengo lo siguiente para hacer el filtro:

Function FiltraDatos()
On Error GoTo FiltraDatos_TratamientoErrores
FiltroTotal = ""
'Construyo la cadena para filtrar por CboN01 >> TexoCompleto de Sitio
If Not IsNull(Me.CboN01) And Me.CboN01 <> "" Then
        Filtro01 = "Sistema_BDO = '" & Me.CboN01.Column(0) & "'"
Else
        Filtro01 = ""
End If
'Construyo la cadena para filtrar por CboN02 >> Tipo Solicitud
If Not IsNull(Me.CboN02) And Me.CboN02 <> "" Then
        Filtro02 = "Modalidad_BDO = '" & Me.CboN02.Column(0) & "'"
Else
        Filtro02 = ""
End If
'Construyo la cadena para filtrar por CboN03 >> Status
If Not IsNull(Me.CboN03) And Me.CboN03 <> "" Then
        Filtro03 = "Estatus = '" & Me.CboN03.Column(0) & "'"
Else
        Filtro03 = ""
End If

en la parte donde contruyo para filtrar por campo Sistema (CboN01)...que se debe poner ahi para que filtre por el campo "sistema" de todas las tablas que estan involucradas en el formulario como consulta?

Seria mucha molestia si te mando mi BD por correo Svein, creo que es mejor si le echas un vistazo personalmente, ya que tal ves no me de a explicar debidamente por aquí. Si es así proporcióname un correo y te la envío

Para empezar, no me parece un buen sistema el usar una tabla por año, cuando puedes tener una única tabla con un campo "Año"...

En segundo lugar, imagino que tu "mega-consulta" será una consulta de unión de las tablas. Si es así, puedes usar alias para que los campos tengan todos el mismo nombre, por ejemplo:

SELECT tblobligaciones1999.sistema AS SistemaTot, tblobligaciones1999.fecha AS FechaTot... FROM tblobligaciones1999
UNION
SELECT tblobligaciones2000.sistema AS SistemaTot, tblobligaciones2000.fecha AS FechaTot... FROM tblobligaciones2000
UNION
SELECT tblobligaciones2001.sistema AS SistemaTot, tblobligaciones2001.fecha AS FechaTot... FROM tblobligaciones2001

con lo que al final tendrás un único campo SistemaTot, FechaTot....

Tercero: no tengo inconveniente en que me envíes la base (comprimida) a este correo:

[email protected]

Pero intenta primero aplicar lo que te digo en los párrafos anteriores, y si al final me la envías, avísame por aquí.

Un saludo


¡Gracias!

Te comento que mi "mega-consulta" no la había echo así como tu me escribiste, la he cambiado y ya puedo seguir con lo demás!

Te agradezco Svein, como siempre muy atinado.

Saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas