Access. Valor de un campo en función de otro campo

Estoy haciendo una base datos para llevar la contabilidad de una asociación. Tengo una tabla CATEGORÍA con los valores INGRESO Y GASTO y tengo la tabla CONCEPTO con los distintos conceptos posibles: CUOTAS, LOTERÍA, ALQUILER, LUZ, ADMINISTRACIÓN, ETC. He creado un formulario, uno de los campos es CATEGORÍA, que admite las opciones INGRESO y GASTO y el siguiente campo es CONCEPTO. No soy capaz de que el formulario me devuelva una lista con los conceptos de ingresos posibles cuando en categoría selecciono INGRESO y al contrario cuando selecciono la categoría GASTO. Ruego me eches una mano.

1 Respuesta

Respuesta
1
No entiendo muy bien como lo tienes planteado. La tabla CATEGORÍAS tendrá un campo que llamas CATEGORÍA con los valores INGRESO y GASTO ¿cierto?, después tienes otra tabla CONCEPTOS con un campo CONCEPTO que tendrá los valores CUOTAS, LOTERÍA... ¿Cómo quieres vincular dos tablas que no tienen ningún campo en común?, no sé, no entiendo tu planteamiento. Explicarlo mejor, con los campos que tienes en cada tabla y el o los campos que las vinculan.
Me cuentas.
Perdona, te lo intento explicar con más detalle. La tabla categorías tiene el campo categoría con los valores ingreso y gasto y el campo de la clave principal que es autonumérico. La tabla conceptos tiene los campos concepto, categoría y clave principal. Ambas tablas las relaciono con el campo categoría, de manera que el concepto Cuotas es un ingreso, alquiler un gasto, lotería un ingreso, etc...
Tengo un formulario con los campos: Fecha, categoría, concepto, descripción, importe y cuenta. El problema que tengo, como te decía, es que intento que en el formulario, cuando introduzca por ejemplo en el campo categoría ingreso, sólo me aparezcan en el campo concepto los conceptos que suponen ingresos y que si el siguiente registro supone un gasto, solo me aparezcan los conceptos que suponen gasto. Espero que me haya explicado mejor. Si no lo consigo, lo dejare como ahora, con una lista con todos los conceptos, tanto los que suponen ingresos como gastos.
Saludos.
Ahora ya me he enterado, lo que no entiendo es para que quieres la tabla Categorías si ya las tienes en la tabla Conceptos, creo que sobra.
Si he entendido bien tienes un cuadro combinado con las categorías y otro con los conceptos, cuando eliges en el cuadro combinado una categoría en el cuadro conceptos solo tendrían que aparecer los conceptos de esas categorías. Si es eso haríamos:
Al cuadro combinado de las catagorías lo llamaremos selCat y al de los conceptos selCto.
En las propiedades del cuadro selCat pondremos, en origen de la fila:
Select categoria from conceptos group by categoria order by categoria
Agrupo por categoría para que solo salgan una vez. (Si tienes problemas al escribir la sql picas en el cuadrado de la derecha, el de los ... y ahí construyes la consulta en la que vas a basar el cuadro combinado)
Luego en la acción Al hacer clic ---> Procedimiento de Evento pones el código Me. Refresh esto es para que al elegir la categoría con un clic se actualice el formulario.
En el cuadro combinado selCto el origen de la fila pondrías:
Select * from conceptos where categoria=form!selCat.Value
Es decir, seleccionamos de la tabla conceptos aquellos cuya categoría sea igual al valor del cuadro combinado selCat. Si en los conceptos tienes duplicados, entonces tendrías que agruparlos como hemos hecho en las categorías.
Me cuentas.
Todo ha ido bien hasta que he tenido que introducir el código Me.Refresh. No se como introducir el código, me he ido a la pestaña EVENTOS, AL HACER CLIC, he probado escribiendo directamente, en generador de expresiones, generador de macros, de código y no actualiza. ¿Dónde y cómo tendría que escribirlo?. Sólo me queda que de un registro a otro se actualice el formulario.
Gracias.
Efectivamente en la pestaña eventos ---> Al hacer clic ---> Procedimiento de evento ---> picas en el cuadrado de los ... y te tendrá que salir:
Private Sub selCat_Click()
End Sub
tu escribirías:
Private Sub selCat_Click()
Me.Refresh
End Sub
Me cuentas, Angeles

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas