Necesito que me ayudes a crear un cuadro combinado en un formulario con los valores de 4 tablas, y de este mismo cuadro al seleccionar una opción me despliegue una palabra de correcto o mal hecho o intentalo otra vez, en una caja de texto del mismo formulario.
Una vez que hayas diseñado la consulta de las tablas y la hayas utilizado como origen del cuadro combinado, tendrás que trabajar con el evento AfterUpdate del cuadro combinado (que se ejecuta después de seleccionar un elemento del cuadro). Dentro de este evento indicarás unas líneas de código que en función del valor del cuadro (si haces referencia al nombre del cuadro, obtendrás el valor de la columna dependiente. Si deseas obtener el valor de otra columna tendrás que utilizar la propiedad 'column' del control indicando el número de la columna a la que quieres acceder. Control. Column(0) hace referencia a la primera columna del cuadro llamado control y así sucesivamente) Y para asignar un valor al cuadro de texto del formulario, lo harías de la siguiente manera: Private Sub Cuadro_combinado1_AfterUpdate() ' Si quieres asignarle el valor de la col dependiente CuadroTexto.Value = Lista ' Si quieres asignarle el valor de la tercera columna CuadroTexto.Value = Lista.Column(2) End Sub Nota: En cuanto a la consulta no te puedo aconsejar porque no se que tablas y campos tienen que intervenir.
Ya resolví lo de las 4 tablas pero Ok, creo que no me explique bien con lo segundo y te lo puse como ejemplo, pero ahí te va tal cual. Tengo una tabla empresas con 3 campos:clave de empresa, nombre y clave de zona (ubicación como estado..), con relación a una tabla zonas con el campo clave de zona, y un formulario con dos cuadros combiandos, el primero me da los campos nombre de la empresa, y el segundo la zona a la que pertenece dicha empresa. Lo que quiero es lo siguiente: que al escoger una empresa del primer cuadro automáticamente me seleccione la zona a la que pertenece en el segundo cuadro combinado. Y después filtrar los resultados de ese formulario para un reporte para escoger que zona deseo imprimir. Lo siento creo que es mucho y un poco complicado, pero te agradecería que me pudieras ayudar. De antemano GRACIAS.
Vamos ha ver: 1º En un cuadro combinado (llamémosle CcbEmpresas) utilizarás como origen de la fila la tabla EMPRESAS (ficha datos), como columna dependiente la que identifique la clave de la empresa (ficha datos), indicarás el nº de columnas que se utilizan en el cuadro (ficha formato) y ocultarás las columnas que no te interesen poniendo a 0cm la anchura de las columnas (ficha formato). 2º En otro cuadro combinado (llamémosle CcbZonas) utilizarás como origen de la fila la tabla ZONAS (ficha datos), como columna dependiente la que identifique la clave de la zona (ficha datos), indicarás el nº de columnas que se utilizan en el cuadro (ficha formato) y ocultarás las columnas que no te interesen poniendo a 0cm la anchura de las columnas (ficha formato). En este caso será la propia clave de la zona dejando visible sólo el nombre de la zona. 3º En el evento Después de actualizar (ficha eventos) del cuadro combinado CcbEmpresas generaremos un código con la siguiente instrucción: Me.CcbZonas = Me.CcbEmpresas.Column(2) suponiendo que la clave de la zona sea la tercera columna que se haya seleccionado como origen de la fila del cuadro CcbEmpresas. Con esto conseguiremos que cada vez que se seleccione una empresa, el cuadro de zonas se actualice. 4º Para el caso del informe, crea un botón de comando con el asistente que lo muestre en vista previa. En el código asociado al botón (Al hacer clic-> en la ficha eventos) modificaremos la instrucción 'DoCmd. OpenReport stDocName, acPreview' para que filtre los registros por la zona que se este mostrando en el formulario de la siguiente manera: DoCmd.OpenReport stDocName, acPreview,,"[clave zona]=" & Me.CcbZonas Pruébalo.
Que tal query, ya prove la solucion de los cuadros combinados con resultados in grese el condigo que me dijiste, DoCmd.OpenReport stDocName, acPreview,,"[clave zona]=" & Me.CcbZonas, tal como lo dijiste, pero me saca un error de: Inicio no puede encontrar la macro 'ME'. o no se ha guardado, ya revise las relaciones y los combos una y otra vez, que es lo que esta pasando. Nota: Creo que "inicio" se refiere a un panel de inicio que tiene ese nombre porque es el único objeto de la base de datos que tiene ese nombre. Ayudame por favor, de antemano gracias.
Lo que te esta ocurriendo es que escribes la orden directamente en la propiedad de evento de la ventana de propiedades y Access intenta buscar la macro Me. Esta orden la tienes que escribir como código del evento. Borra la instrucción, a continuación despliega la lista de esa propiedad (al hacer clic del botón de comando). Te mostrará los nombres de las macros que tengas creadas (si tienes alguna) y una opción llamada [procedimiento de evento]. Seleccionala. Pulsa en el botón de los ... y te mostrará la ventana de código y en esta ventana es donde escribes la instrucción que te comente (Docmd.OpenReport ...).