Filtrar en un formulario por 2 combobox

Hace un par de años arme una base para mi consultorio con la ayuda de "angeles".

Tengo un formulario en donde al elegir de un combobox el apellido me carga varios campos de dos tablas distintas tomando como clave el DNI.

Todo funciona perfecto, pero me gustaría agregar otro combobox para que se pueda buscar también por DNI pero no encuentro como relacionarlos o hacer que funcione, ¿alguna solución?

1 Respuesta

Respuesta
2

Supongamos que tienes una tabla Clientes con Idcliente, NombreCliente, DNI, etc. Supongamos que el origen del formulario es una tabla o consulta llamada, por ejemplo, Ventas. En vista diseño del formulario añade un combinad y en sus propiedades-otras-nombre, ponle ElgirDNI. En origen de la fila con el botón de generar añade la tabla Clientes y lleva a la cuadrícula de diseño el campo DNI. Luego en sus propiedades-eventos-después de actualizar puedes poner

Loquesea=Dlookup("algunacosa","nombredelatabla","dni=forms!nombredelformulario!elegirdni")

Otrocampo=Dlookup("otracosa","nombredeotratabla","dni=forms!nombredelformulario!elegirdni")

O sea, el valor del cuadro de texto Loquesea búscalo en el campo Algunacosa de la tabla que sea en que el dni sea igual a que has elegido en el combinado.

O bien, si lo quieres usar como si fuera un filtro

Form.recordsource="select * from nombre tabla o consulta where DNI=forms!nombredelformulario!elegirdni"

Con lo cual el origen de registros del formulario serían aquellos registros de la tabla que sea cuyo DNI sea igual al que acabas de elegir en el combinado.

Perdón mi ignorancia pero me perdí. Te doy más datos de mi formulario.

Es un formulario que ya tenia funcionando ok buscando por DNI pero ahora quiero agregar otro combinado también para buscar por apellido.

El form tiene 2 cuadros de listas y un textbox el cual muestra un campo calculado, y el combinado con el DNI.

Cuadro de lista "Lista23"

origen de la fila:  SELECT MaesPaciente.Apellidos, MaesPaciente.Nombre, MaesPaciente.Telefono, MaesPaciente.ObraSocial, MaesPaciente.N°ObraSocial, MaesPaciente.Consultorio, MaesPaciente.CodigoPartido FROM MaesPaciente WHERE (((MaesPaciente.DNI)=form![Cuadro combinado0])); 

Tipo: tabla / consulta

Lista4

origen de la fila:  SELECT DetallePracticas.DNI, DetallePracticas.Practica, DetallePracticas.FechaEntrada, DetallePracticas.FechaFacturacion, DetallePracticas.HoraFacturacion, DetallePracticas.Osocial FROM DetallePracticas WHERE (((DetallePracticas.DNI)=[form]![Cuadro combinado0] Or (DetallePracticas.DNI)=[form]![Cuadro combinado70])) ORDER BY DetallePracticas.FechaFacturacion DESC , DetallePracticas.HoraFacturacion; 

Tipo: tabla / consulta

Txt :  Edad

Origen del control : =(Ahora()-DBúsq("[FechaNacimiento]","[MaesPaciente]","DNI=Formulario![Cuadro Combinado0].Valor"))/365.24-0.5

Cuadro combinado0 (es donde pongo el dni para la búsqueda de los registros):

origen de la fila: SELECT MaesPaciente.Apellidos, MaesPaciente.Nombre, MaesPaciente.DNI FROM MaesPaciente ORDER BY MaesPaciente.Apellidos; 

Ahora quiero agregar otro cuadro combinado para que se pueda buscar por apellido. El tema es que los controles muestran los datos en función del DNI del cuadro combinado0. Por lo que se me había ocurrido que al selecciona el apellido del otro cuadro combinado le pusiera al cuadro combinado anterior el DNI de ese apellido pero no se como hacerlo o si hay otra forma.

El nuevo cuadro combinado me quedo como cuadro combinado70.

Gracias nuevamente.

Abrazos

Un DNI corresponde a una única persona, por tanto si haces depender un combinado del valor de DNI, ese combinado sólo te mostraría un único valor de apellido. Por eso te decía que si quieres un buscador por apellidos, tendrías que hacer un combinado y en su origen de la fila añadirle la tabla MaesPaciente y llevar a la cuadrícula de diseño el campo Apellidos y Pulsar Agrupar Por y en su propiedades-eventos-después de actualizar poner

form.recordsource="select * from Maespaciente where apellidos='" & me.nombrdelcombinado & "'"

Así, cuando elijas un apellido, el origen de registros del formulario serán aquellos registros de la tabla MaesPaciente cuyo apellido coincida con el que has elegido en el combinado.

Gracias.

Si obviamente el DNI es único. Pero si al cuadro de DNI lo configuro para que busque apellidos funciona también muy bien. Cuando hay varios iguales selecciona el primero y al abrir la lista desplegable están todos los demás para seleccionar.

No quiero agregar más cosas al formulario solo otro combibox como el de dni pero que seleccione apellido. Como las listas se llenan si o si según el valor del combo del dni la solución que se me había ocurrido es que al seleccionar un apellido el DNI correspondiente a este se cargara en el combo del dni. No se si me he explicado correctamente. Gracias

Si quieres, repito, si quieres, mándame un mensaje( sólo el mensaje) a [email protected] y te mando un ejemplo, y sobre él hablamos. Si lo haces, en el asunto del mensaje pon tu alias Mlobo, ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas