Cuadro de opciones |
Responder |
Autor | |
JoseraGR
Nuevo Unido: 06/Octubre/2020 Localización: Granada Estado: Sin conexión Puntos: 20 |
Tema: Cuadro de opciones Enviado: 21/Octubre/2020 a las 21:45 |
Buenas
Siguiente problema....... En el formulario tengo un botón de imprimir ficha el cual tiene su correspondiente código al pulsarlo. Es este: Private Sub cmdImprimirFicha_Click() 'Definimos Variables Dim vMatricula As String 'Tomamos el valos de la matricula que muestra el formulario vMatricula = Me.Matricula.Value 'Abrimos el formulario del modelo que coincide con la matricual DoCmd.OpenReport "I_FichaModelo", acPreview, , "[Matricula] ='" & vMatricula & "'" End Sub Hasta aquí todo bien, pues funciona correctamente. El problema esta en que algunos de los campos que muestra proviene de un cuadro de opciones, y por lo tanto muestra el número de la opción que corresponde con la seleccionada. Lo que quisiera es crear alguna forma en la que cuando imprima un report esos valores los cambie por el texto al que correspondería. He hecho un pequeño ensayo con este código, pero sin éxito: Private Sub Report_Load() 'Creamos la variable que contendra el valor del campo Epoca del formulario Dim vEpoca As String Dim Texto As String 'Asignamos el valor del campo Epoca del formulario a la variable vEpoca = F_Forms.Epoca.Value 'Según el valor de la variable VEpoca aaignamos el texto correspondiente Select Case vEpoca Case 1 Texto = "No definida o desconocida" Case 2 Texto = "Epoca I desde inicio hasta 1920" Case 3 Texto = "Epoca II desde 1921 hasta 1950" Case 4 Texto = "Epoca III desde 1951 hasta 1970" Case 5 Texto = "Epoca IV desde 1971 hasta 1990" Case 6 Texto = "Epoca V desde 1991 hasta 2006" Case 7 Texto = "Epoca VI desde 2007 hasta ahora" End Select 'Mostramos el texto en el campo Epoca Me.BoxEpoca.Value = Texto End Sub Bueno espero vuestra ayuda Un saludo |
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14738 |
Respuesta Enviado: 22/Octubre/2020 a las 13:14 |
Parece que tu problema, efectivamente, es la llamada a controles (no campos) de otro formulario. Existen diferentes sintaxis para hacerlo. Yo te paso el link a algo que colgué (no es original mio, ya lo pone la página) que te puede servir de guía: Sintaxis para subformularios Tal como lo tienes montado, la lectura la debes hacer desde el Report. Y sobre como volcar la selección al cuadro de texto. Entiendo que es el código que tienes hecho. Es una opción. Existen otras: la que te apunté del cuadro combinado, tomar las equivalencias de una tabla, utilizar un array... Un saludo |
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14738 |
Enviado: 21/Octubre/2020 a las 22:31 |
Y el error es....¿?
Aunque yo probaría otro enfoque. Si no haces nada, muestra un numérico, ¿verdad?. Entonces crea un cuadro combinado en el Report: - Numero de columnas 2 - tipo de origen de la fila: Lista de valores - Anchura de columnas: 0cm;3cm - Origen de la fila: 1;No definida o desconocida;2;Epoca I.....;3;Epoca II... - Origen del control: el campo Epoca De esa forma se pasa el valor numérico pero se muestra (e imprime) el texto. ¿Te vale? |
|
JoseraGR
Nuevo Unido: 06/Octubre/2020 Localización: Granada Estado: Sin conexión Puntos: 20 |
Enviado: 22/Octubre/2020 a las 12:51 |
Buenas
La solución que propones puede valer. Pero ya puestos me gustaria ver como se puede hacer con código. En cuanto el error se produce cuando llega a la línea "vEpoca = F_Forms.Epoca.Value", me da error 492 no encuentra objeto, creo que aún no domino bien lo de llamar a campos desde distintos sitios. Me explico, tengo varios campos con cuadro de selección. Lo que he hecho es que, en el evento al cargar el report, debería leer del formulario en el que esta el botón imprimir, el valor correspondiente (vEpoca = F_Forms.Epoca.Value), y según sea el numero asociarle su texto y mostrarlo en el cuadro de texto del report que le corresponda (Me.BoxEpoca.Value = Texto). Bueno, pues tengo dos dudas, la primera es que si esa lectura debería de hacerse desde el mismo formulario, en lugar de hacerlo desde el report. Y la segunda es como volcar la selección de la opción en el cuadro de texto del formulario. No se si mas o menos me he explicado bien. espero que si . Un saludo
|
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14738 |
Respuesta Enviado: 22/Octubre/2020 a las 13:14 |
Parece que tu problema, efectivamente, es la llamada a controles (no campos) de otro formulario. Existen diferentes sintaxis para hacerlo. Yo te paso el link a algo que colgué (no es original mio, ya lo pone la página) que te puede servir de guía: Sintaxis para subformularios Tal como lo tienes montado, la lectura la debes hacer desde el Report. Y sobre como volcar la selección al cuadro de texto. Entiendo que es el código que tienes hecho. Es una opción. Existen otras: la que te apunté del cuadro combinado, tomar las equivalencias de una tabla, utilizar un array... Un saludo |
|
JoseraGR
Nuevo Unido: 06/Octubre/2020 Localización: Granada Estado: Sin conexión Puntos: 20 |
Enviado: 22/Octubre/2020 a las 19:46 |
Pues si, no andaba equivocado mucho. El problema estaba en como llamar a los controles desde otro formularios, report.... Lo he probado con la tabla que me has indicado y sale tal y como quiero.
Muchas gracias por tu ayuda xavi Un saludo
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |