Access - Asignar valor a una varible pública

 
Vista:
sin imagen de perfil
Val: 153
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Asignar valor a una varible pública

Publicado por Jaime (72 intervenciones) el 13/05/2019 18:24:35
Buen día, les expongo mi problema, tengo un formulario en access con un botón, creé tambien una consulta, el botón lo que debe hacer es asignar un valor a una variable a la cual debo poder acceder desde mi consulta, declaro mi variable y le asigno valor en el evento al hacer click del botón.
1
2
Dim Variable1 As String
Variable1 = "opcion1"

Hago que abra y cierre la consulta guardando los valores.

En la consulta en la sección criterios coloco =Variable1

Si bien esto lo hago tratando de segir la lógica y sin conocimiento previo, como muchos podran saber esto no me funciona.

Ahora bien me gustaría saber si al momento de declarar la variable en el botón está bien o como tendría que hacerlo, y si esa es la forma correcta de llamar a la variable en mi consulta, he investigado un poco y he visto que posiblemente necesito declarar una variable global o publica en un modulo, pero no se como asignarle el valor desde el botón y luego llamarla en la consulta.

Les agradezco de cualquier forma su ayuda.

2019-05-13
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

Asignar valor a una varible pública

Publicado por Anonimo (3319 intervenciones) el 13/05/2019 23:35:05
Las variables publicas se han de declarar como publicas, no basta con declarar una variable y considerarla publica.

Se ha de tener en cuenta que publica o privada, una variable tendrá una vida útil tan efímera como el objeto que la creo, esto es:
Si se declara en un formulario la variable 'existirá' mientras el formulario este abierto, al cerrarlo … se lleva con el sus pertenencias
(publica solo indica que se puede acceder a ella desde un entorno externo al que la creo, no que sea 'eterna').

Para que una variable exista durante toda la sesión de trabajo (desde que se inicia la aplicación hasta que se cierra) se debería declarar en un modulo independiente, normalmente en sus declaraciones y dale valor no es mas que igualarla, si es 'publica' se la podrá utilizar (en VBA) desde cualquier parte de la forma clásica:
.- asignar valor:
1
Mivariable = 'ABC'
.- leer su valor:
1
MiCampo= Mivariable

Eso descarta absolutamente el utilizarla directamente desde una consulta como criterio, para poder acceder a esa variable (a su contenido) se tendría que utilizar una función como intermediaria por ejemplo asi;

1
2
3
Public Function Leer_variable()
Leer_variable = Mivariable
End Function

Y como criterio en la consulta:
1
= Leer_variable ()


En las versiones mas recientes de Access, aparece un nuevo tipo de variable (las variables temporales) que mas o menos hacen lo mismo que se relata pero … ya integrado de origen, seria interesante ojear información sobre ellas (pueden ser las adecuadas para esta necesidad)
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
Val: 153
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Asignar valor a una varible pública

Publicado por Jaime (72 intervenciones) el 14/05/2019 00:03:04
Muchas gracias por tu respuesta, justo ya había intentado declarar la variable desde un módulo pero de la siguiente manera:
1
Dim Variable As Integer
y obviamente no me funcionaba, pues al querer consultar dicho valor este simplemente ya no lo encontraba, ahora lo he puesto en el módulo de esta forma:
1
Public Variable As Integer
y me funciona tal cuál debería.

Te agradezco nuevamente, ya que simplemente son pequeños detalles que cualquiera diría que son muy simples, pero cuando no eres capas de verlo simplemente no puedes hacer que funcionen las cosas.
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
Val: 153
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Asignar valor a una varible pública

Publicado por Jaime (72 intervenciones) el 14/05/2019 02:28:19
Rayos la parte de la consulta si que no logré solucionarla como me dijiste, simplemente me queda vacía la consulta y es que ya comprobé por medio de un MsgBox que el valor de las variables si se guarden y en efecto lo hacen pero en la consulta simplemente se queda vací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

Asignar valor a una varible pública

Publicado por Anonimo (3319 intervenciones) el 14/05/2019 08:54:08
Las cosas funcionan como su creador las diseño, no como nosotros creamos que deberían ser.

.- Si la variable existe
.- Si se le ha adjudicado un valor
.- Si se aplica el método descrito para adjudicarla a un objeto

Se cumplirán los mínimos necesarios para llegar al éxito.
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
Val: 153
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Asignar valor a una varible pública

Publicado por Jaime (72 intervenciones) el 15/05/2019 04:36:16
Tienes razón, no soy informático pero igual seguiré intentando, algo tendré que aprender jeje.
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
Val: 153
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Asignar valor a una varible pública

Publicado por Jaime (72 intervenciones) el 17/05/2019 01:53:20
Pues abandoné la consulta tal como la tenía y decidí hacerla en VBA, es mi primera ves y pues si me funcionó, precisamente tal cual me había comentado, por cierto un enorme error que tenía era que mis variables las tenía como locales, pero ya todo bien. Muchas gracias por la orientación.
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