Imprimir página | Cerrar ventana

Hacer referencia a un cuadro combinado de formular

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84143
Fecha de impresión: 23/Marzo/2019 a las 21:51


Tema: Hacer referencia a un cuadro combinado de formular
Publicado por: Axl666
Asunto: Hacer referencia a un cuadro combinado de formular
Fecha de publicación: 05/Diciembre/2018 a las 02:44
 
Buenas tardes

Un saludo a todos

Espero me puedan ayudar, desde una consulta quiero hacer referencia a un control del formulario, de la siguiente forma:

TIPO: Elegir([Forms]![frm_Prueba]![Valores],[00 BD PPTO 2006]![PRESUPUESTO])

Y luego esa misma consulta la pongo como origen de datos del mismo formulario que hago referencia al control.

El error que envía es: no se ha escrito correctamente la instrucción

Espero me haya explicado bien y en espera de su ayuda.



Respuestas:
Publicado por: mounir
Fecha de publicación: 05/Diciembre/2018 a las 09:15
Hola!

Creo que sustituyendo la (coma por punto y coma) se soluciona y añadir [Forms]!.

TIPO: Elegir([Forms]![frm_Prueba]![Valores];[Forms]![00 BD PPTO 2006]![PRESUPUESTO])

-------------
Un Saludo.


Publicado por: Axl666
Fecha de publicación: 05/Diciembre/2018 a las 16:07
Muchas gracias por tu amable respuesta

Pero esta instrucción hace referencia a una tabla

[Forms]![00 BD PPTO 2006]![PRESUPUESTO]

En lugar de Forms que pondría?

Saludos,



Publicado por: pitxiku
Fecha de publicación: 05/Diciembre/2018 a las 18:40
Si la tabla forma parte de la consulta, con indicar el nombre del campo y, si es necesario, de la tabla sobra:

Elegir([Forms]![frm_Prueba]![Valores];[00 BD PPTO 2006]![PRESUPUESTO])

Si no tienes la tabla en la consulta, tendrás que usar una función de dominio tipo DBúsq:

- https://support.office.com/es-es/article/DBúsq-función-8896CB03-E31F-45D1-86DB-BED10DCA5937


Publicado por: Axl666
Fecha de publicación: 05/Diciembre/2018 a las 19:19
 
La tabla forma parte de la consulta; he intentado ponerla de las formas siguientes pero me envía error,

TIPO: Elegir([Forms]![frm_Prueba]![Valores];[00 BD PPTO 2006]![PRESUPUESTO])

TIPO: Elegir([Forms]![frm_Prueba]![Valores];[PRESUPUESTO])

Saludos,




Publicado por: emiliove
Fecha de publicación: 05/Diciembre/2018 a las 20:27
A ver, creo que no estas usando la funcion Elegir como deberías, no veo valores:
La función Elegir de Microsoft Access devuelve un valor de una lista de valores en función de una posición determinada.

Es decir:
Elegir(Posición, Valor1, Valor2, Valor3)

Si yo busco la posición 2
Elegir(2, Valor1, Valor2, Valor3) el resultado va a ser Valor2

En tu caso debes usar la "coma", pues según yo esa es la indicada para América, pero puedes verificarlo en tu configuración regional.

Saludos.



Publicado por: Axl666
Fecha de publicación: 06/Diciembre/2018 a las 02:05
Es correcto yo uso la coma

En una consulta de selección estoy creando el campo TIPO, el cual va utilizar el valor que quiero mostrar mediante un cuadro combinado en un formulario [Forms]![frm_Prueba]![Valores], de acuerdo al valor que seleccione en el cuadro combinado me dará los valores del campo de la tabla que seleccione ya sea el valor de [00 BD PPTO 2006]![PRESUPUESTO] o el valor de [00 BD PPTO 2006]![Tipo_Gasto]
 

TIPO: Elegir([Forms]![frm_Prueba]![Valores],[00 BD PPTO 2006]![PRESUPUESTO], [00 BD PPTO 2006]![Tipo_Gasto])

En resumidas cuentas el campo creado TIPO toma el valor del campo que se seleccione

Las instrucciones anteriores funcionan utilizando un subformulario, pero la versión anterior funciona sin utilizar un subformulario

Espero me haya explicado mejor

Saludos,



Publicado por: emiliove
Fecha de publicación: 06/Diciembre/2018 a las 15:24
Al menos yo sigo sin entender explica:
En que formulario esta Tipo, el combo Valores esta en el formulario frm_Prueba, y los valores a obtener están en 00 BB PPTO 2006.

Ya comentas, saludos.



Publicado por: Axl666
Fecha de publicación: 06/Diciembre/2018 a las 16:41
 
En esta primera imagen esta la consulta

https://ibb.co/JRkbF5k" rel="nofollow - -
Si no funcionan los enlaces pueden copiar y pegarlo en su navegador

Espero que quede un poco mas claro

Saludos,




Publicado por: pitxiku
Fecha de publicación: 06/Diciembre/2018 a las 18:20
Por lo que entiendo con las imágenes, quieres cambiar la agrupación de la consulta en base a lo seleccionado en el cuadro combinado.

Si es eso, hay un problema: Elegir devuelve el valor que hay almacenado en el campo, no una referencia al campo. Y la consulta quiere saber el nombre del campo por el que vas a agrupar, no el valor del campo.

Una forma (más o menos) sencilla de hacer lo que quieres, es generar la SQL conforme lo que seleccione en el cuadro combinado, y asignarla al origen del registro del formulario.


Publicado por: Axl666
Fecha de publicación: 06/Diciembre/2018 a las 19:07
 
El punto que en una versión de Access de 97 si funciona la instrucción tal cual esta

Y si se que por código lo podría hacer, solo quería ver porque no funciona a tratarlo de realizar en una versión nueva

Saludos y gracias por tu pronta respuesta


Publicado por: pitxiku
Fecha de publicación: 06/Diciembre/2018 a las 19:32
Pues tienes razón, funciona. Gracias por enseñármelo :)

Mi prueba en Access 2016:

Expr1: Elegir(Val([Forms]![Formulario4]![Cuadro_Combinado0]);[Cliente];[Fecha])

Si el error sigue siendo que la instrucción está mal escrita, verifícala bien. O escríbela de nuevo poco a poco, para ver dónde está el fallo.


Publicado por: Axl666
Fecha de publicación: 06/Diciembre/2018 a las 20:10
 
Ya la intente poner paso a paso y me manda el error que esta mal escrita

Pero si utilizo un subformulario si funciona

Saludos,


Publicado por: mounir
Fecha de publicación: 06/Diciembre/2018 a las 21:11
Hola!

No será porque el cuadro combinado tiene mas de una columna y la columna dependiente no es un numero?

-------------
Un Saludo.


Publicado por: Axl666
Fecha de publicación: 06/Diciembre/2018 a las 23:12
El cuadro combinado esta formado de la siguiente manera en lista de valores:

1;"Entidad";2;"Ledger"

Pero con si funciona con un subformulario?

Saludos,


Publicado por: mounir
Fecha de publicación: 06/Diciembre/2018 a las 23:24
Hola!

Pero, ¿cuantas columnas tiene? y ¿Cuál es el numero de la columna dependiente?

-------------
Un Saludo.


Publicado por: Axl666
Fecha de publicación: 07/Diciembre/2018 a las 19:26
 
Hola

Columna dependiente= 1
Numero de columnas = 2

Saludos,



Publicado por: pitxiku
Fecha de publicación: 10/Diciembre/2018 a las 11:28
Cita
El cuadro combinado esta formado de la siguiente manera en lista de valores:
1;"Entidad";2;"Ledger"

Tu separador de lista, ¿no es la coma?

También puedes hacer una prueba: en vez de hacer referencia al control, que la consulta te pida el parámetro:

Elegir([Dime la columna], [00 BD PPTO 2006]![PRESUPUESTO], [00 BD PPTO 2006]![Tipo_Gasto])

Y ejecuta la consulta directamente: si así te funciona, tienes el problema en la referencia al control.


Publicado por: Axl666
Fecha de publicación: 12/Diciembre/2018 a las 00:10
 
Es correcto el punto y coma

Ejecute de la siguiente manera la instrucción y se ejecuto correctamente ya que le di el valor fijo,

Expr1: Elegir(1,[Pyin],[Anio])

No le encuentro que pueda tener mal en esta;

Expr1: Elegir(Val([Forms]![frm_Seg]![cbo_Tipo]),[Pyin],[Anio])

Saludos,





Imprimir página | Cerrar ventana