Imprimir página | Cerrar ventana

Variable en origen de control

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=83519
Fecha de impresión: 21/Julio/2019 a las 08:34


Tema: Variable en origen de control
Publicado por: leon3763
Asunto: Variable en origen de control
Fecha de publicación: 04/Marzo/2018 a las 19:44
Buenas tardes a todos.
En primer lugar quiero pedir perdón, porque seguramente estoy preguntando una obviedad, pero llevo unos días detrás de ello y no le encuentro solución. 
Hace unos años hice una BD y me funcionaba bien, pero a partir de algún cambio de versión de access me empezó a dar un fallo, concretamente en unos informes.
Resulta que cuando abro el informe, en función de unas opciones que marco en el formulario que abre el informe, se deben mostrar en unos cuadros de texto el valor de unas variables que declaro en el código del informe. Las tengo puestas en un cuadro de texto, en el origen del control, de esta forma =[variable].
El problema, como digo, es que hasta hace un tiempo esto funcionaba pero a partir de algún cambio de versión ya no funciona, ahora lo que me sale en el informe es #¿Nombre?. Seguramente es una cosa tan simple como un error de sintaxis, pero no consigo encontrarlo.
Muchas gracias de antemano.



Respuestas:
Publicado por: Mihura
Fecha de publicación: 04/Marzo/2018 a las 20:25
¿El campo tiene un origen del control similar a?

=[forms].[MiFormulario]!Micampo

Si es así prueba a cambiar [forms] por [formularios]



Edito: este error era al revés, había que cambiar [Formularios] por [Forms] ocurría al cambiar de access 2000 a otro más moderno.


-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: leon3763
Fecha de publicación: 04/Marzo/2018 a las 21:20
Voy a tratar de explicarme mejor.
Donde me falla, es en un informe, concretamente en un cuadro de texto donde me debe poner el valor de una variable que declaro en el código del informe. 
El origen del control lo tengo puesto así: ="("+[Variable]+")", porque quiero que el dato en cuestión me salga entre paréntesis (también he probado a poner & en lugar de +).
La variable la declaro y le doy valor de la siguiente forma en el código del informe

Option Compare Database
Public Variable As String

Private Sub Report_Open(Cancel As Integer)

     Select Case Forms![Opciones_Listados]!GrupoOpciones
Case Is = 1
            Variable = "Valor1"
        Case Is = 2
            Variable = "Valor2"
        
    End Select

De manera que toma un valor u otro según la opción seleccionada en el grupo de opciones que hay en el formulario "Opciones_Listados", que es desde donde llamo al informe.
Un saludo.


Publicado por: Mihura
Fecha de publicación: 05/Marzo/2018 a las 09:12
No te acabo de entender,

- he creado un cuadro de texto en el formulario llamado variable y al ejecutar este código me pone un valor u otro en función del valor que tenga grupo de opciones:

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
    
    Select Case Forms!Clientes!GrupoOpciones
        Case 1
            Me.Variable = "Valor1"
        Case 2
            Me.Variable = "Valor2"
    End Select
    
End Sub



-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: leon3763
Fecha de publicación: 05/Marzo/2018 a las 13:33
Me explico.
Yo abro el informe desde un botón que tengo en un formulario (Opciones_Listados). En ese formulario selecciono unas opciones con unos grupos de opciones (GrupoOpciones, en este caso). En esas opciones le marco que datos debe listar el informe y el orden de los mismos. Los datos los genera y ordena correctamente según le marco, luego el "Select Case...." funciona bien.
El problema viene por que pretendo que en función de esas opciones elegidas en el formulario, me ponga en el encabezamiento un cuadro de texto donde ponga "ordenado por......" y en ese lugar lo que corresponda.
Para hacer esto lo que tengo es el código que puse en mi anterior mensaje.
Declaraba una "variable" 

Option Compare Database
Public Variable As String


y luego en función de la elección le asignaba un texto

Select Case Forms![Opciones_Listados]!GrupoOpciones
Case Is = 1
            Variable = "Alfabetico"
        Case Is = 2
            Variable = "Nacimiento"
        End Select

Luego ese texto lo utilizo en el encabezado del informe para poner en un cuadro de texto, en el origen del control, ="(ordenado por"+[Variable]+")". Pero lo único que obtengo es el error #¿Nombre?, en el lugar donde debería aparecer el cuadro de texto.

Espero haber sido más claro.
Muchas gracias.


Publicado por: Mihura
Fecha de publicación: 05/Marzo/2018 a las 13:44
El campo que recibe el valor debe ser un cuadro de texto del informe (en modo oculto) para poder hacer referencia al mismo.

Pero yo no daría vueltas...

- en el evento al dar formato de la cabecera yo pondría el código select case al que haces referencia dando valor directamente a la etiqueta

Select Case Forms![Opciones_Listados]!GrupoOpciones
Case Is = 1
            Me.Etiqueta.Caption = "Ordenado por Alfabetico"
        Case Is = 2
            Me.Etiqueta.Caption = "Ordenado por Nacimiento"
        End Select



Editado para poner el Caption que 'me se' olvidó ...   Ouch




-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: leon3763
Fecha de publicación: 05/Marzo/2018 a las 18:32
Así sí funciona, y mucho más fácil que con las variables (aunque me queda la "espinita" de no entender porque no funciona lo de las variables).

Muchas gracias.
Por mi parte se puede cerrar el hilo.



Imprimir página | Cerrar ventana