Cuadro combinado no actualiza bien
Tengo una duda tengo dos cuadros combinados dependientes el primero me carga unos grupos el segundo me carga los funcionarios asociados a ese grupo, hasta ahí me funciona bien en el formulario, pero guardo los datos, y cuando empiezo a recorrer el formulario pasando por los datos que tengo pues no en los cuadros combinados ya no me aparecen los datos, cuando miro en la tabla si estan pero en el formulario no me muestra.
Este es el codigo:
Primer cuadro combinado se llama selGrupo
SELECT Id_grupo, nombre_grupo FROM GRUPO ORDER BY nombre_grupo;
segundo cuadro combinado selFuncionarios
SELECT Id_funcionario, nombre_funcionario FROM FUNCIONARIOS WHERE Id_grupo=Form!selGrupo.value ORDER BY nombre_funcionario;
Cada cuadro combinado en el evento al hacer click tiene un me. Refresh.
1 respuesta
Vaya, vaya, con tus combos...
En el evento "Al recibir el enfoque" de tu segundo cuadro combinado escribe:
...
Private Sub...
me.SelFuncionarios.Requery
End Sub
...
A ver si así te funciona.
Saludos,
hola gracias por responder y pues si estoy muy dedicado a los cuadros combinados jejej, te cuento que hice lo que me sugeriste pero me sigue el mismo problema si tengo por ejemplo 6 datos guardados y los quiero ver por formulario al desplazarme por los registros al llegar por ejemplo al 3 esas casillas aparecen varias pero miro en la tabla y estan los datos, espero puedas seguir ayudandome gracias
Lo lamento, pero no entiendo qué tienen que ver los cuadros combinados con la explicación que me das de recorrer registros en un formulario.
O no te estás explicando bien o yo no estoy entendiendo cuál es el problema (es decir, lo que quieres hacer).
te explico es que los cuadros combinados en cascada cuando guardo los datos y los quiero ver en el formulario no los muestra el campo sale en blanco pero en la tabla si esta el dato, y solo pasa con los cuadros combinados el resto de informacion que muestro en el formulario si se ve; y el problema es porque el formulario lo tienen que consultar algunas personas y si no ven los campos pueden que se confundan pensando que el dato no quedo guardado, espero me haya hecho entender
Lamento comentarte que los combos, si los utilizas como combos de búsqueda, se convierten en controles independientes, es decir, quedan desvinculados de los campos de la tabla. En definitiva, o quedan vinculados (con lo que no te podrán funcionar como buscadores independientes), o te funcionan como buscadores independientes, con lo que no pueden quedar ligados a ningún campo.
Como el comportamiento del combo sería parecido al de un campo calculado si quieres puedes echar un vistazo a este ejemplo, pues espero que te ayude a entender la mecánica: http://neckkito.eu5.org/index.php?option=com_content&view=article&id=167:campo-calculado-guardado-en-tabla&catid=49:ejemplos-de-controles&Itemid=55
Lamento no poder darte una solución, pero...
gracias por tu tiempo y aclaración solo dos dudas mas para finalizar y puntuarte excelente, primero siendo así este problema con los cuadros combinados, no habría otra forma de corregir este error u otra forma de mostrar datos en cascada pero que se vean los datos en el formulario???? y la otra pregunta es q si voy hacer un informe o imprimir la tabla con los datos noto que donde estas los campos a los cuadros combinados estos me guardan los numeros, como hago para que en vez de los numeros me muestre los nombres?? o no se puede??? gracias nuevamente
Vamos a ver...
Como ya te comentaba, no hay manera, puesto que tienes que elegir un sistema u otro. Si hipotéticamente se pudiera conseguir que los combos estuvieran vinculados a las tablas cada vez que los cambiaras lo que harías sería cambiar los datos del registro. Eso, desde mi punto de vista, no sería nada bueno (sobre todo si son otros los que te cambian los datos), dado que te estarían modificando la información continuamente.
Los combos en cascada suelen ser utilizados (hablo en general) como sistema de filtros, para realizar búsquedas, por ejemplo.
Insisto en que si los programas para que sean en cascada los desvinculas de las tablas, con lo que no se te guardan en la tabla.
En cuanto a tu segunda consulta decirte que los combos guardan, por defecto, la clave principal, que por lo que me comentas debe ser un autonumérico. Para conseguir lo que quieres lo que tienes que hacer es no crear el informe directamente sobre la tabla, sino que debes crearte una consulta intermedia, donde seleccionas los datos que quieres mostrar, y sobre ella crearte el informe.
Por ejemplo, si un campo de la tabla XX tiene el valor 1, y ese 1 proviene de la tabla YY, lo que tienes que hacer es crearte una consulta incluyendo ambas tablas, y seleccionar, de XX, los campos que quieras, y de YY no el identificador, sino el campo "descriptivo" que quieres que se muestre.
A ver si con esto puedes conseguir alguna cosa.
"Donde dije digo digo Diego". Me he estado releyendo el hilo y me acabo de dar cuenta de que me he confundido al darte las explicaciones: un cuadro combinado sí puede vincularse con un campo de la tabla.
Lo que tienes que hacer es sacar las propiedades del cuadro combinado e irte a la pestaña Datos -> Origen del registro. Si ahí le das a la flecha del desplegable te mostrará una lista de los campos disponibles. Si seleccionas el campo donde quieres que se guarde el dato seleccionado en el combo pues... ya tienes la vinculación hecha.
Lamento mi "cruzada de cables". Ciertamente se me había metido en la cabeza lo de los campos calculados y se ve que mi "coco" pensaba sobre los combos en términos de campos calculados.
En fin...
Reitero mis disculpas por la metedura de pata. A ver si con esta nueva información puedes conseguir lo que quieres.
hola nuevamente gracias por tus respuestas y tu tiempo y aclararme todas las dudas, lo del reporte para que no me salgan los números y si los nombres ya lo hice como me lo indicaste y me funciona perfecto,lo de los cuadros combinados darle origen al registro con un campo de la tabla ya lo había hecho, el si me guarda el dato en la tabla lo que pasa es que no me lo visualiza en el formulario es el único inconveniente que he tenido con los cuadro combinados en cascada, no se si esto es un problema general o si quieres te mando la base de datos para que te puedas dar cuenta en mayor proporción de mi problemas
te voy ampliar los datos de mi pregunta, mira estos son los datos de mis dos cuadros combinados en cascada
1 cuadro combinado:
nombre:selGrupo
Origen del control:GRUPO RESPONSABLE
Origen de la fila: SELECT Id_grupo, nombre_grupo FROM GRUPO ORDER BY nombre_grupo;
columna dependiente:1
numero de columnas:2
ancho de columnas: 0cm;2cm;54cm
en el evento hacer click
Private Sub selGrupo_Click()
Me.Refresh
End Sub
2 cuadro combinado:
nombre:selFuncionario
Origen del control:NOMBRE FUNCIONARIO RESPONSABLE
Origen de la fila: SELECT Id_funcionario, nombre_funcionario FROM FUNCIONARIOS WHERE Id_grupo=Form!selGrupo.value ORDER BY nombre_funcionario;
columna dependiente:1
numero de columnas:2
ancho de columnas: 0cm;2cm;54cm
en el evento hacer click
Private Sub selFuncionario_Click()
Me.Refresh
End Sub
Tengo 3 tablas
GRUPO:Id_grupo,nombre_grupo
FUNCIONARIOS:Id_funcionario, Id_grupo, nombre_funcionario
CORRESPONDENCIA;
y en CORRESPONDENCIA es la tabla principal donde tengo varios campos entre ellos los asociados a los campos de las tablas GRUPOS Y FUNCIONARIOS estos campos son :
GRUPO RESPONSABLE, NOMBRE FUNCIONARIO RESPONSABLE, espero que con estos datos pueda aportar información valiosa cualquier duda me la pueden consultar, gracias espero me puedas ayudar
ya te la voy a enviar, revisa bien los cuadros combinados en el primero que es GRUPO RESPONSABLE, se te va desplegar BPC y FARMACOVIGILANCIA y en el segundo dependiendo del grupo que escojas te despliega las personas pertenecientes a ese grupo, si tu guardas registros de BPC te los muestra pero si empiezas a guardar de FARMACOVIGILANCIA, te me muestra los de FARMACOVIGILANCIA y los de BPC se quedan en blanco o viceversa
El problema se te produce porque al navegar por los registros no estás actualizando la consulta origen del segundo combo. Te lo explico un poco en abstracto para que me entiendas:
Abres el formulario -> El grupo es "FRUTAS", y el funcionario es "NARANJA" (porque el origen del combo busca en frutas)
Navegas al segundo registro -> El grupo es "FRUTAS", y el funcionario es "PERA"
Navegas al tercer registro -> El grupo es "VEGETALES", y el funcionario es... nada, aunque esté en la tabla como "JUDÍA". Eso es así porque el combo sigue buscando con el filtro "FRUTAS", y ahí no hay ninguna "JUDÍA".
Luego tenemos dos elementos:
1.- Se navega por los registros
2.- El origen del combo no se actualiza.
¿Solución? Forzar al formulario para que actualice la SQL del combo al navegar por los registros.
Eso se hace sacando las propiedades del formulario -> Pestaña Eventos -> Al activar registro, y ahí le generas el siguiente código:
...
Private Sub Form_Current()
Dim vGrupo As Long
vGrupo = Nz(Me.selGrupo.Value, 0)
If vGrupo = 0 Then
Exit Sub
Else
Me.selFuncionario.Requery
End If
End Sub
...
El primer If es por si no hay valor en el combo selGrupo (normalmente porque estás dando de alta un nuevo registro, no navegando por ellos), para evitar que te dé error de código.
Y listo. Así debería funcionarte.
Ya me dirás.
- Compartir respuesta