** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Cuadro de opciones
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoCuadro de opciones

 Responder Responder
Autor
Mensaje
JoseraGR Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 06/Octubre/2020
Localización: Granada
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje Tema: Cuadro de opciones
    Enviado: 21/Octubre/2020 a las 21:45
Buenas

Siguiente problema......LOLLOLLOLLOL. 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

Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: en línea
Puntos: 14738
Respuesta Respuesta
Enlace directo a este mensaje 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, un minyó de Terrassa

Mi web
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: en línea
Puntos: 14738
Enlace directo a este mensaje 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?

Xavi, un minyó de Terrassa

Mi web
Arriba
JoseraGR Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 06/Octubre/2020
Localización: Granada
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje 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 Smile.

Un saludo
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: en línea
Puntos: 14738
Respuesta Respuesta
Enlace directo a este mensaje 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, un minyó de Terrassa

Mi web
Arriba
JoseraGR Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 06/Octubre/2020
Localización: Granada
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje 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
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable