Access - Trabajar formulario acces con Cuadro Combinado

 
Vista:
sin imagen de perfil

Trabajar formulario acces con Cuadro Combinado

Publicado por Javier (25 intervenciones) el 04/03/2024 22:55:34
Muy buenas noches, parece que no va muy bien la página porque se cuelga.
Les comento lo que pretendo. Tengo un formulario1 con datos de una tabla1 y en este formulario tiene un cuadro combinado y un botón para abrir un formulario2 sacado de otra tabla2 y en donde hay una relación por el campo que está en el cuadro combinado.
Lo que pretendo es que si este cuadro combinado está en blanco, entonces un mensaje de error diciendo que tengo que introducir un dato. Una vez realizado esto entonces se abra el formulario2 con los datos filtrados por el cuadro combinado.
Muchas gracias y un saludo
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

Trabajar formulario acces con Cuadro Combinado

Publicado por Anonimo (3369 intervenciones) el 05/03/2024 00:08:55
En el evento del botón se verifica el valor del cuadro combinado, si no hay un valor es que o no tiene origen de datos o que (teniendo origen de datos) aun no se selecciono ninguno de sus items.

Normalmente al seleccionar un valor, ya no puede volver a ser un null si no se le asigna (o se retorna a su valor inicial que la primera vez seria Null)

En el evento del botón, en su evento click se añaden unas líneas:

1
2
3
4
5
6
7
8
If IsNull([Me.[nombre del cuadro combinado]) Then   ' verifica el valor del combo
   MsgBox "Seleccione un valor el el combo"          ' no hay dato seleccionado envía notificacion
   Me.[nombre del cuadro combinado].SetFocus         ' envía el foco al combobox
   Me.[nombre del cuadro combinado].Dropdown          ' y lo despliega
   Exit Sub                                         ' aborta la ejecución del evento
   End IF                                            ' finaliza el condicional
'.... a continuación lo que se supone abre el formulario2 actualmente, por ejemplo ...
 MsgBox "El valor seleccionado en el combo es: " &  Me.[nombre del cuadro combinado]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Trabajar formulario acces con Cuadro Combinado

Publicado por Javier (25 intervenciones) el 05/03/2024 12:36:27
Muchas gracias por tu interés, cuando tenga un rato voy a probarlo. ya te comento
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
sin imagen de perfil

Trabajar formulario acces con Cuadro Combinado

Publicado por Javier (25 intervenciones) el 09/03/2024 20:33:45
Pues funciona perfectamente, muchas gracias y un saludo
Captura-de-pantalla-18
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
sin imagen de perfil

Trabajar formulario acces con Cuadro Combinado

Publicado por Javier (25 intervenciones) el 15/03/2024 19:10:01
buenas tardes y perdón por las molestias:

En la rutina realizada en el combo ahora me da un fallo y la verdad ya no doy con donde puede estar.
pongo pantallazo.
un saludo y muchas gracias por vuestra atencion
Captura-de-pantalla-19
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

Trabajar formulario acces con Cuadro Combinado

Publicado por Anonimo (3369 intervenciones) el 15/03/2024 23:15:30
Para que Access entienda que el valor que se obtiene del cuadro combinado tiene que tratarlo como texto, hay que añadirle unas comillas simples o un marcador equivalente.

Si no se le indica el tipo, por defecto asumirá que es un numero.(o una variable numérica)

1
.... "[Titulo] = " & Me.[Cuadro_Combinado1] ......  ====>>>>  "[Titulo] = '" & Me.[Cuadro_Combinado1] & "'"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Trabajar formulario acces con Cuadro Combinado

Publicado por Javier (25 intervenciones) el 15/03/2024 23:49:17
Ok Muchas gracias y un saludo, eso era.
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
sin imagen de perfil

Trabajar formulario acces con Cuadro Combinado

Publicado por Javier (25 intervenciones) el 18/03/2024 20:23:34
Muy buenas tardes y un saludo.
Nuevo tropezón en un combo con un subformulario para que me filtre la totalidad de los registros
subformulario llamado HEditor Subformulario dentro de un formulario HEditor cuyos datos del subformulario salen de la tabla Titulo, el combo lo llamo Combo1, y quiero filtrar los registro por el campo Editor.
Me da un fallo en la sentencia que plasmo en la imagen.
Muchas gracias anticipadas.

Captura-de-pantalla-21
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 Eduardo Pérez Fernández

Trabajar formulario acces con Cuadro Combinado

Publicado por Eduardo Pérez Fernández (336 intervenciones) el 18/03/2024 21:22:28
Después del SELECT debe ir * para incluir todos los campos, algo como SELECT * FROM Titulo WHERE ........
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Trabajar formulario acces con Cuadro Combinado

Publicado por Anonimo (3369 intervenciones) el 18/03/2024 21:27:19
La sintaxis parece correcta, pero se tiene que cumplir que el campo 'Editor' de la tabla 'Titulo' sea de tipo texto, si es de tipo numérico puede haber dos problemas:

Que el dato exista en el combo o que (de existir) no sea la columna predeterminada, la cual generalmente suele ser un valor numérico (el ID)

Que además de ello, sobren las comillas (dado que espera un numero y 'ese texto' no lo considere un dato del tipo que necesita)

Por defecto todos los datos que devuelven los combos son de tipo texto, es el uso que se les da quien define el/su tipo.

Si el campo en la tabla es numérico, existe en el combo (pero pertenece a otra columna) y no es la predeterminada en el combo
(la predeterminada o dependiente es la que devuelve por defecto)
Se puede hacer referencia a cualquiera de ellas por su numero (comienza a contar en cero comenzando por la izquierda), un ejemplo con los datos publicados:

1
.... Where Editor = " & Me.Combo1.Column (3)

(el combo tiene cuatro o mas columnas y se referencia a la que tiene el dato que nos interesa: la cuarta)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Trabajar formulario acces con Cuadro Combinado

Publicado por Javier (25 intervenciones) el 18/03/2024 22:57:48
Ok Muchas gracias y 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
sin imagen de perfil

Trabajar formulario acces con Cuadro Combinado

Publicado por Javier (25 intervenciones) el 21/03/2024 20:48:00
Buenas tardes, se me presenta que cuando utilizo el combo y actualizo con <TODOS< resulta que el subformulario queda sin ordenar y me gustaría que quedase ordenado por el campo titulo.
muchas gracias y un saludo
Captura-de-pantalla-22
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

Trabajar formulario acces con Cuadro Combinado

Publicado por Anonimo (3369 intervenciones) el 21/03/2024 22:20:11
No veo que se imponga o indique ningún orden, por lo que si hay alguno será una propiedad del subformulario y puede imponerse a la indique el origen de datos.

En principio (y para no complicar lo que funciona) basta añadirle a ambas expresiones el orden que se desea:

Continuando con el anterior ejemplo:


1
.... Where Editor = " & Me.Combo1.Column (3) & " Order By Titulo"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Trabajar formulario acces con Cuadro Combinado

Publicado por Javier (25 intervenciones) el 22/03/2024 17:25:09
buenas tardes y un saludo:

la solución dada para poder ordenar el subformulario no funciona.
lo siento.
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

Trabajar formulario acces con Cuadro Combinado

Publicado por Anonimo (3369 intervenciones) el 22/03/2024 23:06:45
La solución NO ordena el subformulario, ordena al conjunto de datos que que se aplica como origen de datos del formulario y que generalmente aplica si el formulario no utiliza 'su' propiedad orden (que es prioritaria).

Los subformularios pueden recibir un conjunto de datos ordenado, pero ese orden lo/se puede alterar en el subformulario que los presenta incluso en tiempo de ejecución y además de ello se puede poner un nuevo orden y activarlo/desactivarlo a voluntad.

Si ya hay un orden (pues al parecer solo se aprecia el desorden cuando no se aplica una condición) se tendrá que verificar si hay un orden en el formulario.
En VBA es sencillo, el orden y los filtros (como propiedades del formulario) se pueden verificar así:

1
MsgBox Forms.[nombre-del-formulario-principal].[nombre-del-subformulario].Form.OrderBy

Para verificar que el orden esta activado:

1
MsgBox Forms.[nombre-del-formulario-principal].[nombre-del-subformulario].Form.OrderByOn

Con la misma sintaxis se puede asignar un orden y activarlo o desactivarlo basta añadir a su final

1
Forms.[nombre-del-formulario-principal].[nombre-del-subformulario].Form.OrderBy = "nombre del campo"

1
Forms.[nombre-del-formulario-principal].[nombre-del-subformulario].Form.OrderByOn  = True/False

Pero si se desea dejarlo fijo, basta con aplicarlo en su evento de inicio utilizando la propiedad 'Me' (ya que es uno de sus objetos), algo como:

1
Me.OrderBy = "nombre del campo"

También se debe de activar el orden para que se aplique.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Trabajar formulario acces con Cuadro Combinado

Publicado por Javier (25 intervenciones) el 26/03/2024 17:56:18
Muchas gracias por su respuesta, pero es que soy novato en access y la verdad es que he entendido muy poco de su explicación.
No entiendo donde tengo que colocar como evento la propuesta que se me hace y por lo tanto no se que hacer con su comentarios.
Lo siento mucho. Muchas gracias por su interés. Un saludo. Javier García
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
sin imagen de perfil

Trabajar formulario acces con Cuadro Combinado

Publicado por Javier (25 intervenciones) el 26/03/2024 19:58:36
Buenas nuevamente: Me he dado que la que no ordena es la segunda sentencia en azul.Gracias
Captura-de-pantalla-23
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

Trabajar formulario acces con Cuadro Combinado

Publicado por Anonimo (3369 intervenciones) el 27/03/2024 00:24:51
Creo que haces demasiados cambios al mismo tiempo y ello solo aumenta los problemas.

No me queda claro que es : Titulo Consulta (pero si funciona ..... nada que decir)

Una solución basada en que esta línea funciona de forma correcta :
1
Me.HDiscografica_Subformulario.Form.Recordsource = "SELECT * FROM Titulo Consulta Order By Titulo"

A la otra línea hay que añadirle lo mismo: (El orden que se desea)
1
Me.HDiscografica_Subformulario.Form.Recordsource = "SELECT * FROM Titulo Consulta WHERE [Discografica] = '" & Me.Combo1 & "' Order By Titulo"

Detras del End IF recomiendo añadir esta:
1
Me.HDiscografica_Subformulario.Form.OrderByOn = True

Si no se añade y por defecto OrderByOn esta en FALSE no se aplicara ningún orden, por lo que recomiendo que se añada la línea para que funcione en cualquier caso (si el orden esta desactivado lo activa y si esta activado: continua activado)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Trabajar formulario acces con Cuadro Combinado

Publicado por Javier (25 intervenciones) el 30/03/2024 18:17:36
Ok Muchas gracias y un saludo, funciona fenomenal
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