Filtrar campo_combinado a partir de otro cuadro combinado.

Espero explicarme, tengo una tabla almacen con sus nombres, tengo otra llamada subalmacen, cada registro de esta esta ligada a un tipo o dos de almacen. Entonces quiero que al elegir un almacen en el cuadro combinado de almacen, en el cuadro combinado de subalmacen, solo me aparezcan los sumbalmacenes pertenecientes al almacen alegido.

Tengo esta sintaxis. Y no me sale.

SELECT [SubAlmacen].[NomSubAlmacen], [SubAlmacen].[AbrSubAlmacen] FROM SubAlmacen WHERE ((([SubAlmacen].[NomSubAlmacen])=[Formularios]![Calcas]![Almacen])); 

Almacen es nombre del 2do cuadro combinado, y calcas es el nombre del formulario

Agradere mucho su ayuda,,.

Respuesta
1

Gabriel: Para poder darte una respuesta con probabilidades de acierto y sin hacer demasiadas suposiciones, sería conveniente que comentaras, (para mi u otra persona que quiera contestar)>>

Tabla de alMacenes: Nombre, Campo1 >> Nombre; Campo2>> Nombre...

Tabla SubAlmacenes: Esta el Nombre se ve >>SubAlmacen, NombSubAlmacen se interpreta bien, pero AbrSubAlmacen queda un poco oscuro.

A mi modo de ver la estructura adecuada (no quiero decir ni la buena ni la mejor), sería

Tabla Almacen: El Nombre es lo de menos pero supongamos que fuera TblAlmacenes

Campos: >> IdAlmacen >> Autonum, NombAlma >> Texto 40 o 50 Caracteres

Tabla SubAlmacenes >> Ejemplo Nombre TblSubAlcenes

Campos: IdSubAlma >> Autonum; NombSubAlma >> Texto 40 o 50 Caracteres y IdAlma >> Número Entero Largo, para poder referirnos a él como vinculo. Sería el IdAlmacen de la Tabla TblAlmacenes.

Teniendo esa estructura será facil poner el Origen de Fila del Combo 2, aludiendo al campo Comun. Un saludo >> Jacinto

Gabriel: Iba a ponerte un ejemplo y veo que Antonio se ha ofrecido a ayudarte y seguro que lo hará bien y pronto. Un saludo Antonio

En cualquier caso mira éstas lineas, que son el Origen de Fila de Categorías u Sub categorías, que sería el equivalente a lo que buscas.

SELECT IdCategoria, NombCateg FROM Categorias ORDER BY NombCateg;

Columnas 2. Columna dependiente 1; Ancho columnas>> 0cm;5cm

SELECT IdSubCategoria, NombreSubCategoria, IdCategoria FROM SubCategorias WHERE ([IdCategoria])=[Formularios]![Busquedas]![CboCategoria];

Columnas 3. Columna dependiente 1; Ancho Columnas >> 0cm;6cm;0cm

Un saludo a los dos>> Jacinto

Muy bien explicado amigo Jacinto, tengo una duda, en el segundo SELECT hay un "IdCategoría", ¿se supone que es de la tabla Categorías? ¿Debe haber una relación para que el segundo SELECT encuentre ese campo?, por que no está en Subcategorías... explícame por favor y tenme paciencia...

Se supone que ya corregí los datos, ahora me dice que no puedo utilizar ese campo multivalor con WHERE... pero ahora pregunto,, como puedo asignar varios subalmacenes a un mismo almacen, siendo que un subalmacen puede ser de dos o más almacen

Gabriel: El IdCategoria está en las dos Tablas. En la de Categorias como Autonumerico y Clave principal.

En la de SubCategorías como Numerico, haciendo referencia a la Tabla de Categorias.

Un Ejemplo: Categorias >> IdCategoria = 1, NombCateg >> Frutas

IdCategoria = 2, NombCateg = Verduras

Vamos con la tabla de SubCategorias. Id SubCategoria Autonum.

IdSubCategoria = 1; NombreSubCategoria = Manzanas; IdCategoria =1

IdSubCategoria = 2;NombreSubCategoria = Acelgas; IdCategoria =2

IdSubCategoria= 857; NombreSubCategoria = Coliflores; IdCategoria =2

Si en el CboCategoria he elegido >> 2: Verduras en el Combo de Subcategorias solo me van a aparecer las que tengan IdCategoria = 2, que son las Acelgas y las Coliflores.

Un saludo >> Jacinto

Gabriel: Tu último comentario no lo había leido al contestarte ésto, pero aparece por ahí un campo multivalor...

Y sobre "... como puedo asignar varios subalmacenes a un mismo almacen, siendo que un subalmacen puede ser de dos o más almacen". Eso me acaba de despistar.

Ignoro el Objetivo que persigues, pero en mi opinión una relación como la de la figura es la adecuada para Almacen, SubAlmacen,... Ubicación etc. Mis saludos >> Jacinto

Si, ya me salio, gracias a la ayuda de los dos, pero tengo un problema. Como puedo tener dos subalmaces o más para un mismo almacen, se supone que al crear el subalmacen, es donde debo hacer referencia al almacen al que pertenece.

Yo había hecho que cuando capturara subalmacen, mediante una búsqueda podía elegir dos o más almacenes para ese subalmacen, pero dice access que no puedo utilizar un campo multivalor para WHERE.

Entonces de ahí derivo el problema... he aprendido mucho con ustedes y apenas empieza :-).

Otra cosilla que observo es que cuando elijo en el primer combo un registro, y voy al segundo efectivamente solo me muestra los registros pertenecientes a ese elemento; pero si regreso al primero a cambiar la eleccióm . ya no me actualiza el segundo, me sigue mostrando los elementos de la primera elección, tengo que refrescar el formulario para que pueda funcionar...

Gabriel: Al regresar a tu primer combo, en el Evento Got focus o Click, has de poner una línea que diga >>

Me. NombreDeTuSegundoCombo. Requery

Un saludo >> Jacinto

O definitivamente, no podré utilizar el WHERE para este propósito. Por que ya tenia los SUBALMACENES con dos o más ALMACENES, o que me recomiendan... Evalúen el Caso por favor..

Gabriel: Como te comentaba ignoro el Objetivo que persigues, pero...

1 Padre con varios Hijos .. OK, pero 1 Hojo con varios Padres, a mi al menos me resulta un poco chocante. Un saludo >> Jacinto

Jajajaja,,

Pues es que es así la relación, a menos que tenga que utilizar una tercera tabla, para evitar la relación muchos a muchos. o como ven...

y no me funciona ni el click ni el otro 

Private Sub Almacen_Click()
Me.Almacen.Requery
End Sub

Private Sub Almacen_GotFocus()
Me.Almacen.Requery
End Sub

Gabriel: Si el segundo combo se llama Almacen, debería funciona y cuando me refiero funcionar, es que al pulsar en el Primero, el segundo se queda sin ningun dato visible, y al entrar en el es cuando te debe mostrar los SubAlmacenes, correspondientes, pero con ese montaje... sinceramente no se el porqué no funciona. Un saludo >> Jacinto

1 respuesta más de otro experto

Respuesta
1

¿Qué error te da'? ¿O qué es lo que no te sale?

[SubAlmacen].[NomSubAlmacen])=[Formularios]![Calcas]![Almacen])

Este Where esta raro. Revisalo. 

No creo que puedas encontrar el nombre de tu almacen en los nombres de tus subalmacenes. Ese es tu error.

Pues igual he cambiado, es cierto, Almacen.[NomAlmacen])=[Formularios]![Calcas]![Almacen])

Y me sale que escriba cual es el nombre. Almacen,,, en el primer caso,, solo me da una lista vacía

Revisa las propiedades de tu combo en el numero de columnas y ancho de columnas.

Si quieres que lo revise

Mándame tu base a [email protected]

Así es te pedirá el nombre del almacen por que en tu tabla subalmacen no tienes ningún campo NomAlmacen. Almacen.[NomAlmacen])=[Formularios]![Calcas]![Almacen])

En todo caso seria la búsqueda así:

Almacen.[IdAlma])=[Formularios]![Calcas]![Almacen])

Suponiendo que "Almacen.[NomAlmacen])=[Formularios]![Calcas]![Almacen]" devuelva un numero(el id del almacen), si devuelve letras jamas podrás hacer lo que quieres.

Repito

Si quieres que lo revise

Mándame tu base a [email protected]

Mándamelo comprimido

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas