Access - Combo sin datos

 
Vista:

Combo sin datos

Publicado por Betty (10 intervenciones) el 12/06/2008 10:43:21
Hola,

Quiero controlar los valores que se muestran en un combo pero no me sale. No lo hago con el asistente porque quiero escribir yo misma la consulta. El problema es que cuando abro el formulario ni aparece el valor del campo ni se muestran campos a escoger en el combo. Si alguien pudiera echarle un vistazo a lo que he hecho para corregirme estaria muy agradecida.

Tengo dos tablas:
entradas(nombre,idAspecto,siret)
aspectos(idAspecto,descripcion,siret)

Mi formulario esta basado en la tabla entradas.

En este formulario tengo el combo cbo_idAspect para escoger el "idAspecto". En este combo quiero mostrar solamente el campo "descripcion" pero que se almacene el campo "idAspecto".

Por ello tengo los siguientes valores de propiedades:

ControlSource = idAspect
RowSourceType = Table/Query
BoundColumn = 1
ColumnCount = 2
ColumnWidths= 0cm;4cm

Y mi consulta es (s es una variable tipo String) :

Private Sub cbo_idAspect_GotFocus()
Me.cbo_idAspect.RowSource = "SELECT idAspecto, descripcion FROM aspectos
WHERE siret='00' Or siret=' " & s & " ' ; "
End Sub

Perdonad por hacerlo tan largo, pero es que no me quiero olvidar de explicar todo :-)
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:Combo sin datos

Publicado por mi menda (1111 intervenciones) el 12/06/2008 11:03:40
Hola Betty:
Creo que te hace falta actualizar el combo.

Private Sub cbo_idAspect_GotFocus()
Me.cbo_idAspect.RowSource = "SELECT idAspecto, descripcion FROM aspectos
WHERE siret='00' Or siret=' " & s & " ' ; "
'Actualizamos el combo
cbo_idAspect.Requery
End Sub

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

RE:Combo sin datos

Publicado por Enrique (1299 intervenciones) el 12/06/2008 11:12:29
Hola Betty:

Fíjate que al asignarle valor al Origen de la Fila del Combo, estás seleccionando solamente los campos idAspecto y descripción de la tabla Aspectos, pero luego intentas usar el otro campo siret como condición y eso no es posible porque no lo has incluido en el Select.

Esto sería lo correcto:
Me.cbo_idAspect.RowSource = "SELECT idAspecto, descripcion, siret FROM aspectos
WHERE siret='00' Or siret=' " & s & " ' ; "
End Sub

Una vez incluyas ese campo y si el Select con su condición Where está bien construido (eso no puedo saberlo), ya deben de aparecer los valores.

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

RE:Combo sin datos

Publicado por Betty (6 intervenciones) el 12/06/2008 13:58:42
Hola Enrique,

No sé si es correcto corregirte cuando estas intentando ayudarme...

Quiero decirte que para hacer una consulta sql utilizando un campo cualquiera en la condicion WHERE no hace falta que ese campo aparezca en la parte SELECT (aunque si debe pertenecer a una de las tablas del FROM) De esta manera la siguiente consulta ejemplo es correcta:

SELECT nombre, apellidos FROM empleados WHERE numeroEmpleado=8;

y como ves el numeroEmpleado no aparece en el select.

En el caso de que Access no siga el estandar y utilice un "sql propio" me deberia callar y te pido disculpas por pasarme de lista, pero yo lo he hecho todo el rato asi y no he tenido problemas...

Al final he dado con la solucion a mi problema. Creo que es algun tipo de bug porque no le encuentro explicacion logica.

Con el formulario en ejecucion he comprobado la consulta (accediendo al asistente de consultas a través del cuadro de propiedades). En el asistente mis dos condiciones aparecian en la linea del criterio unidas por un "O" logico. Asi que he cogido la segunda condicion y la he pegado debajo porque normalmente se hace poniendo una condicion en cada linea. Después he ejecutado y todo funcionaba bien. Una vez que funcionaba he vuelto a revisar el asistente de consultas pero el propio asistente habia vuelto a colocar las dos condiciones juntas en la misma, como estaba originalmente. La gracia es que ahora ya no da problemas. Sin cambiar nada del codigo.

El caso es que he repetido la situacion con otra tabla y otras condiciones en la consulta. El problema era el mismo y cambiando las condiciones en el asistente ahora marcha bien. Eso si, el asistente vuelve a poner la condicion de manera original... ??

A alguien mas le ha pasado esta cosa tan rara?

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

RE:Combo sin datos

Publicado por mi menda (1111 intervenciones) el 12/06/2008 14:43:01
Hola Betty:
No es un bug de access, escribir una condición en cada fila es para facilitar la escritura de la consulta sobre todo sí utilizas varias condiciones, luego access lo coloca todo en la misma fila.
Lo que sí es raro es que no te funcionase estando la SQL correcta.

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

RE:Combo sin datos

Publicado por Betty (6 intervenciones) el 12/06/2008 16:41:54
Enrique:
Yo me referia a que he usado la misma consulta y solo ha comenzado a funcionar cuando la he mirado en el asistent (porque no he cambiado nada en el codigo)

"Tu menda"
Yo decia que a lo mejor eso de obligarte a usar el asistente es un bug (pero vamos, que es una opinion para nada experta :-)

Un saludo a los dos y gracias!
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:Combo sin datos

Publicado por Enrique (1299 intervenciones) el 12/06/2008 16:38:15
Hola Betty:
Por supuesto que es correcto hacer las correcciones que creas oportuno, sobre todo cuando llevas razón, no es necesario meter en el select el campo del criterio o condición. Lo que yo hago casi siempre es poner un asterisco y así meto todos los campos, sean o no sean necesarios.

Parece ser que ya lo has solucionado, aunque si te digo la verdad, no he entendido como lo has hecho.

Saludos y hasta la próxima.
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