Access - Parámetros

   
Vista:

Parámetros

Publicado por leidijaidu (27 intervenciones) el 03/06/2009 13:27:56
Hola gente, tengo un problemilla y no he encontrado solución por el foro, o tal vez no he sabido aplicarla. Os cuento:

Hace un tiempo Mimenda me ayudó a hacer unos formularios para búsquedas que consistían en un cuadro de texto o un combo en el que escribía o seleccionaba lo que quería buscar y me mostraba el resultado en un cuadro de lista. Por ejemplo, en un combo selecciono un municipio y el cuadro de lista me muestra las calles de dicho municipio. Esto me sirvió luego para crear otras nuevas búsquedas, pero ahora estoy intentando crear una que combina varios parámetros y no consigo que funcione!!!

La búsqueda tiene 4 parámetros:
- Objeto de regularización: si o no (botones de opción)
- Tipo (combo)
- Modo: individual o agrupada (botones de opción)
- Grupo (combo)

Si la selección en Objeto es "no" Modo y Grupo quedan inhabilitados. Si es Objeto "si", Modo queda habilitado y Grupo inhabilitado. Si en Modo se selecciona "individual" Grupo queda inhabilitado y con "agrupada" se habilita.

Solo he conseguido que funcione cuando actualizo los 4 parámetros, pero necesito que funcione aunque solo actualice uno, es decir: si selecciono un Tipo que el cuadro de lista me muestre las calles de dicho tipo, y que si después actualizo Objeto que el cuadro de lista se actualice automáticamente con el nuevo filtro.

Lo último que he intentado ha sido poner
Como SiInm([Formularios]![Busq]![Objeto] Es Nulo;"*";[Formularios]![Busq]![Objeto])
en los criterios de la consulta del cuadro de lista para cada uno de los campos que quiero filtrar (cambiando el nombre del campo). Creo que de todo lo que he hecho es lo que mas se acerca (aunque no pondría la mano en el fuego...) pero tampoco funciona.

Podéis ayudarme? llevo mucho tiempo con esto y me estoy volviendo loca!! bueno, me ayudéis con esto o no muchas gracias, porque con el foro me ayudáis todos los días, estoy aprendiendo muchísimo!

Saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Parámetros

Publicado por mi menda (1111 intervenciones) el 03/06/2009 17:51:15
Hola:
Dices que te ayude, y no me entero de nada de lo que has puesto, así va a ser dificil.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Parámetros

Publicado por leidijaidu (27 intervenciones) el 04/06/2009 08:49:34
Lo siento, releí el mensaje antes de mandarlo y me pareció que se entendía.

Tengo un formulario llamado Busq con lo siguiente: Dos combos llamados Tipo y Grupo, dos grupos de opciones llamados ObjetoRegulacion y Modo, dos cuadros de selección múltiple llamados lstCoincidencias y lstSeleccion y dos botones llamados Seleccionar y EliminarSeleccion.

Al seleccionar un Tipo, un Grupo, una opción de ObjetoRegulacion y una opción de Modo se muestran en lstConcidencias todas las calles que cumplen dichos parámetros. En lstCoincidencias marco las que me interesan y con los botones las paso a lstSeleccion (del mismo modo que se seleccionan campos al hacer un formulario o informe con el asistente).

Mi problema es el siguiente: Solo consigo que lstCoincidencias me muestre el resultado cuando he rellenado los 4 parámetros, es decir, cuando he seleccionado un Tipo, un Grupo, una opción de ObjetoRegulacion y una opción de Modo, pero necesito que me muestre el resultado aunque solo rellene uno de los parámetros. Es decir, selecciono por ejemplo un Tipo y que lstCoincidencias me muestre automáticamente todas las calles de dicho Tipo, e inmediatamente después selecciono una opción de Modo y que lstCoincidencias se actualice automáticamente y me muestre las calles que coincidan con el Tipo y el Modo que están seleccionados.

No se construir la consulta que debe ir en el origen de fila de lstCoincidencias para que funcione así.

Espero haberme explicado mejor. Gracias por tu interés
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Parámetros

Publicado por mi menda (1111 intervenciones) el 04/06/2009 12:24:28
Hola:
ya me acuerdo, eras la que utilizaba el ejemplo de Chea para pasar valores entre cuadros de Lista, por cierto, de lo que preguntabas a lo que hubo que hacer,Tela...
Quiza lo mejor sea crear los criterios de la consulta en tiempo de ejecución, para esto nombra los controles igual que los campos y le añades el sufijo Inc de "Incluir" (TipoInc), y entiendo que solo quieres utilizar los valores de los grupos de opciones si están activados.

Creamos un procedimiento

Prvate Sub filtrarLista()
Dim ctl As Control
Dim strCriterio As String
Dim strCampo As String
Dim ssql As String

For Each ctl In Me.Controls
If Right(ctl.Name, 3) = "Inc" Then
If ctl.ControlType = acComboBox And Not IsNull(ctl) Then
strCampo = Left(ctl.Name, Len(ctl.Name) - 3)
strCriterio = strCriterio & strCampo & " = '" & ctl & "' And "
End If

If ctl.ControlType = acOptionGroup And ctl.Enabled = True Then
strCampo = Left(ctl.Name, Len(ctl.Name) - 3)
strCriterio = strCriterio & strCampo & " = " & ctl & " And "
End If
End If
Next ctl

' Quitamos el último AND
strCriterio = Left(strCriterio, Len(strCriterio) - 4)

ssql = "SELECT [Campo1], [Campo2],[etc] FROM [Tabla] WHERE " & strCriterio
ssql = ssql & " ORDER BY [CampoPorElQueQuieroOrdenar]"

lstCoincidencias.RowSource = ssql
'Esto no se ahora mismo si será necesario
lstCoincidencias.Requery
End Sub

Para llamar al procedimiento, en el evento Después de actualizar de cada control:
filtrarLista

Seguro que no acertamos a la primera...., ya me contarás.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Parámetros

Publicado por leidijaidu (27 intervenciones) el 05/06/2009 12:50:35
Hola mimenda,

lo he probado pero no ocurre nada. Hago selecciones en los controles pero en lstCoincidencias no se muestra nada. Y tampoco me da ningún error.

Parece que te doy mucho trabajo... si me tienes que mandar a freir esparragos tu me mandas, con toda confianza!

Gracias de nuevo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Parámetros

Publicado por mi menda (1111 intervenciones) el 05/06/2009 18:03:44
Hola:
¿De qué tipo de datos es la columna dependiente de ambos cuadros combinados?.
Sí has hecho los grupos de opciones con el asistente, los valores que devuelven son númericos, cuando escribes los títulos de las opciones, a la derecha hay una columna valor que empieza a partir del 1, y el número correspondiente a la opción pulsada, es el valor que devuelve el grupo de opciones. ¿Corresponden esos valores con los que hay en la Tabla para esos campos?.
No te preocupes por lo del trabajo, pero que no se entere nadie que es para agua mineral..., perdería mi reputación.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Parámetros

Publicado por leidijaidu (27 intervenciones) el 08/06/2009 13:54:04
jeje... antes de venir aqui trabajé en una bodega, creo que nos hemos conocido tarde...

Los datos de la tabla son numéricos también, para meterlos utilizo también grupos de opciones en un formulario.

A lo mejor es demasiado enrevesado lo que quiero hacer, tal vez debería pensar en algo mas simple.

Bueno, una vez mas, y aún a riesgo de sonar repetitiva, gracias por ayudarme!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Parámetros

Publicado por mi menda (1111 intervenciones) el 09/06/2009 18:11:32
Hola:
Enviame la base de datos, una vez que lo veas hecho con los comentarios lo entenderás.

Un Saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar