Me gustaría saber como crear un formulario que realice búsquedas en varias tablas, según los criterios que se seleccionen en dicho formulario. Los criterios no son fijos, sino que puede elegirse uno, varios o ninguno y esto es lo que me produce problemas al intentar parametrizarlo, ademas que son 8 posibilidades y las combinaciones se disparan. Gracias por adelantado
Hace un tiempo, otro usuario me coinsultó más o menos lo mismo que tu ahora en el tablón... Te pongo lo que en su día le envié (donde puedes ver un posible "truquillo" para lo que dices que te "produce problemas"). Aquí seguramente veras lo que necesitas, pero si tienes dudas, no lo ves claro o necesitas un mayor detalle para tu caso, no dudes en perdirmelo y te aclaro lo que necesites. Un saludo y suerte en tu desarrollo! Óscar L.M.V. --------------------------------------- Bien, voy a intentar ir por pasos para indicarte como realizar lo que quieres. Voy a partir de la premisa de que la tabla EMPLEADOS ya la tienes creada, según tu ejemplo, de la siguiente manera: Tabla empleados: Campos / Tipo Nombre / Texto Apellidos / Texto PuestoTrabajo / Integer** CantidadesProd / Numerico Fecha / Fecha **Yo pondria tipo Integer y crearia una tabla, MaestroPuestos, con dos campos (IdPuesto / DescripcionPuesto) con la que relacionaria la de empleados. En base a todo esto hago el ejemplo: 1º Creas un formulario en el que debes poner 5 objetos tipo texto. Llamalos por ejemplo "TxtNombre, TxtApellidos, TxtCantidadesProd, TxtFechaIni, TxtFechaFin). Puedes darles el formato y/o mascaras que creas oportuno. 2º En ese mismo formulario debes poner también una Lista (llamala LstPuesto), en la que cargaremos todos los puestos de trabajo existentes. Debes modificar las propiedades de esta Lista para que los datos que muestre los coja de la Tabla MaestroPuestos, mostrando las dos columnas correspondientes a los campos de dichas tablas. 3º Grabamos, de momento ese formulario, SELECCIÓN, y lo cerramos. 4º Creamos un nuevo formulario en el que lo primero que vamos a hacer es definir su origen de datos, indicándole que los datos mostrados los recoja de la tabla EMPLEADOS. 5º Colocamos todos los campos de la tabla EMPLEADOS en este formulario. Para el campo PuestoTrabajo podemos utilizar otra lista como la del ejemplo del formulario anterior. 6º Grabamos y cerramos este formulario, DATOS. 7º Volvemos a editar el formulario SELECCIÓN y ponemos en el un botón. Este botón será el encargado de realizar, por código, las sentencias necesarias y la apertura posterior del formulario DATOS. 8º Codificamos el botón siguiendo, más o menos, el siguiente ejemplo: Dim SentenciaSQL As String Dim ClausulaWhere As String SentenciaSQL = "SELECT * FROM [EMPLEADOS]" IF TxtNombre <> "" Then ClausulaWhere = "Nombre = " & TxtNombre & " AND " If TxtApellidos <> "" Then ClausulaWhere = ClausulaWhere & "Apellidos = " & TxtNombre & " AND " ....asi con cada uno de los campos, teniendo en cuenta la casuistica de la lista..... If ClausulaWhere = "" Then Msgbox "No ha definido ningun criterio de seleccion" Exit Sub Else SentenciaSql = SentenciaSql & Mid$(ClausulaWhere, 1, Len(ClausulaWhere) - 5) Endif Domd. OpenForm "DATOS" Datos.RecordSource = SentenciaSql Datos. Refresh Hay miles de posibilidades de codificación diferente y de diseño de la aplicación variado... Espero que con esto te haya podido dar una idea de cómo podrías hacerlo, sobretodo la sentencia SQL que a lo mejor es lo más complicado de realizar. De todos modos, una vez veas este mensaje y lo pruebes, si tienes alguna duda concreta no dudes en hacérmela llegar. Siento no poder detallarte más cada uno de los pasos, pero es imposible... A distancia esto es casi lo máximo que puedo hacer y espero que así lo entiendas. Lo dicho, si tienes alguna duda sobre algo en concreto, házmelo saber y lo solucionaremos lo antes posible.
Había visto esta posible solución pero como son muchos criterios a valorar la había reusado pero veo que casi todas las posibilidades van en esta linea así que muchiiiiiiiiisimas gracias y me pondré con ello.