Access - Problemas en un cuadro combinado

   
Vista:
Imágen de perfil de heaj

Problemas en un cuadro combinado

Publicado por heaj (3 intervenciones) el 30/08/2008 00:47:46
Voy a tratar de explicar mi problema.

Tengo un formulario, donde a traves de un cuadro combinado muestro una columna de una trabla para seleccionar una opcíon.

Nota: Todo lo que sigue lo hago en vista de diseño, no me meto a programar código.

Tengo un combobox, con nombre "EditSeccion", este me muestra unas opciones y dependiendo de la elección me toma valores de la tabla "Grupos", esto lo hago mediante la siguiente instrucción en la propiedad "Origen de la fila" del combobox:

SELECT Grupos.SECCION, Grupos.PROFESOR, Grupos.HLUNINI, Grupos.HLUNFIN, Grupos.HMARINI, Grupos.HMARFIN, Grupos.HMIEINI, Grupos.HMIEFIN, Grupos.HJUEINI, Grupos.HJUEFIN, Grupos.HVIEINI, Grupos.HVIEFIN, Grupos.HSABINI, Grupos.HSABFIN, Grupos.CATEGORIA FROM Grupos WHERE (((Grupos.GRUPO)=[EditGrupo]) AND ((Grupos.ASIGNATURA)=[EditAsignatura])) ORDER BY Grupos.SECCION;

Si pueden observar ya he realizado dos condiciones. La primera la hago con un combobox llamado "EditGrupo" en el cual selecciono el grupo de interes. La segunda la hago con un combobox llamado "EditAsignatura" la cual dependiendo el grupo selecionado me muestra las asignaturas correspondientes a ese grupo y hago mi elección. Final mente hay asignaturas que tienes secciones, donde a cada seccion le corresponde un profesor diferente.

Bueno, todo esto funciona excelentemente bien, el problema es el siguiente: Quiero ahora agregar, aparte del grupo, asignatura, sección, profesor, horario y categoria, el aula en la cual se encuentra cada grupo. Es decir, aula para el día lunes, martes,..., sabado. Para esto tengo que agregar 6 campos más a mi tabla "Grupos". En esto no hay problema, el problema radica en que el comendo que les mostre anteriormente tambien debe modificarse para que al elegir la sección me muestre el profesor correspondiente, el horario correspondiente y finalmente el aula correspondiente.

En teoria el comando quedaria así

SELECT Grupos.SECCION, Grupos.PROFESOR, Grupos.HLUNINI, Grupos.HLUNFIN, Grupos.HMARINI, Grupos.HMARFIN, Grupos.HMIEINI, Grupos.HMIEFIN, Grupos.HJUEINI, Grupos.HJUEFIN, Grupos.HVIEINI, Grupos.HVIEFIN, Grupos.HSABINI, Grupos.HSABFIN, Grupos.CATEGORIA, Grupos.AULALUN, Grupos.AULAMAR, Grupos.AULAMIE, Grupos.AULAJUE, Grupos.AULAVIE, Grupos.AULASAB FROM Grupos WHERE (((Grupos.GRUPO)=[EditGrupo]) AND ((Grupos.ASIGNATURA)=[EditAsignatura])) ORDER BY Grupos.SECCION;

El detalle es que despues de guardar y aplicar vista de formulario access me marca un error y me cierra la base de datos. Lo critico es que la base de datos se hecha a perder y ya no puedo volver a abrirla.

Creo que es a causa de que estoy llamando muchas columnas con ese comando pero no lo se. Igual y el comando SELECT permite una longitud máxima, la verdad es que no lo se.

Si a alguien le ha sucedido lo mismo y ya logro superar ese error me gustaria mucho me dijera como. O si hay otra forma de como logar hacer lo que quiero, tambien se los agradeceria mucho.

Saludos y de antemano gracias por su tiempo y por su ayuda.
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:Problemas en un cuadro combinado

Publicado por Salomon (152 intervenciones) el 30/08/2008 14:07:48
No se responderte con precisión, pero creo que en un comando SELECT existe un limite maximo de caracteres. En lugar de escribir

SELECT Grupos.SECCION, Grupos.PROFESOR, Grupos.HLUNINI, Grupos.HLUNFIN, Grupos.HMARINI, Grupos.HMARFIN, Grupos.HMIEINI, Grupos.HMIEFIN, Grupos.HJUEINI, Grupos.HJUEFIN, Grupos.HVIEINI, Grupos.HVIEFIN, Grupos.HSABINI, Grupos.HSABFIN, Grupos.CATEGORIA, Grupos.AULALUN, Grupos.AULAMAR, Grupos.AULAMIE, Grupos.AULAJUE, Grupos.AULAVIE, Grupos.AULASAB FROM Grupos WHERE (((Grupos.GRUPO)=[EditGrupo]) AND ((Grupos.ASIGNATURA)=[EditAsignatura])) ORDER BY Grupos.SECCION;

Escribe

SELECT SECCION, PROFESOR, HLUNINI, HLUNFIN, HMARINI, HMARFIN, HMIEINI, MIEFIN, HJUEINI, JUEFIN, HVIEINI, HVIEFIN, HSABINI, HSABFIN, CATEGORIA, AULALUN, AULAMAR, AULAMIE, AULAJUE, AULAVIE, AULASAB FROM Grupos WHERE GRUPO=[EditGrupo] AND ASIGNATURA=[EditAsignatura] ORDER BY SECCION

No hace falta que inidiques la tabla para cada campo. Es jucho mas corto, cometes menos errores de sintaxis, es mas facil de escribir y de interpretar.

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
Imágen de perfil de heaj

RE:Problemas en un cuadro combinado

Publicado por heaj (3 intervenciones) el 01/09/2008 19:54:30
Aunque ponga la sentencia de esa forma, access automaticamente le agrega lo demás, o sea, esa no es solución del problema. Pero muchas gracias por tu comentario!!!
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:Problemas en un cuadro combinado

Publicado por Enrique (1299 intervenciones) el 02/09/2008 21:23:05
Dices que en el Origen de la Fila de un Combobox pones la instruccion SELECT que indicas, pero ¿ en qué Combobox la pones, en EditSeccion o en otro ??, porque según comentas, este combo ya muestra unas opciones. ¿ Supongo que no se tratará de asignar el Origen de la Fila a EditSeccion al seleccionar una opción en él mismo ? Esto es lo que me parece entender pero lo veo muy raro si fuera así; seguramente estoy equivocado.

No creo que el problema sea el llamar muchos campos en el Select, la cosa debe ir por otro lado.

Lo correcto sería asignar el Origen de la fila del Combo (no se cual), mediante el Evento AfterUpdate, por ejemplo de otro Combo distinto, más o menos asÍ :(aunque ya he leido que no quieres usar código, en este caso te lo aconsejo)

Private Sub OtroCombobox_AfterUpdate()
EditSeccion.RowSource = "Select * From Grupos Where Grupo ='" & EditGrupo & "' And Asignatura ='" & EditAsignatura & "' OrderBy Seccion"
End Sub

Como es lógico, los Combos EditGrupo y EditAsignatura deben de haber sido actualizados previamente, ya que se usan como condiciones en este.

Ya nos contarás. Saludos
Enrique
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