Restringir valores en combos i cuadros de listas según sea el usuario de la aplicación

15/01/2014 - 09:30 por Toni | Informe spam
Buenas de nuevo.

Esta vez deseo crear un sistema de usuarios para poder gestionar la visualización de formularios, y también valores en combos y en cuadros de lista que estan en diferentes formularios. Mi idea es que esos formularios sean de uso compartido, però la información que devuelvan los combos y las listas esten restringidas por alguna variable.

Algo así como:

SELECT ... FROM ... WHERE User = idUser;

El caso es a este 'idUser' no se como darle valor.
Debe ser una variable que no cambie durante toda la sesión en Accés, y debe poder usarse en diferentes formularios e informes.

He probado a declararla como variable global, pero entonces no se como utilizarla en los combos, listas...

Gracias
Toni

Preguntas similare

Leer las respuestas

#1 José Mª Fueyo
15/01/2014 - 10:44 | Informe spam
Hola
Puedes configurar la sentencia SQL en la propiedad RowSource en el evento "Al cargar" del formulario.
Por ejemplo, crea un formulario en la base de datos Northwind, crea un combo de dos columnas, la primera oculta. Llama al combo "cbxFiltrado".
En el evento "al cargar" del formulario, pega éste código

<pego>
Dim sSQL As String
sSQL = "SELECT Clientes.IdCliente, Clientes.NombreCompañía FROM Clientes WHERE Clientes.IdCliente LIKE 'A*' ORDER BY [NombreCompañía];"
Me.cbxFiltrado.RowSource = sSQL
</pego>

Esto hará que se carguen los clientes cuyo IdCliente empiece por "A".

Espero te sirva.

Salu2
José Mª Fueyo
[MS MVP Access]
Respuesta Responder a este mensaje
#2 Toni
16/01/2014 - 09:33 | Informe spam
Gracias, Jose Mª, esto ya funciona.

El siguiente reto és:

Mi idea es dar un valor a este iUser en cada terminal, de manera que, al entrar en la aplicación, no haga falta preguntar usuario ni pasword, y que directamente se abra la aplicación, cargando automaticamente el valor de iUser mediante programación.

Ahora mismo lo he solucionado dándole valor a iUser en el evento 'Al cargar' del formulario principal, definido desde "Opciones de Acces, Base de datos actual, Mostrar Formulario", pero me parece una manera un poco burda.

¿Hay, desde VBA, alguna manera que permita leer código en cuanto se ejecute la aplicación, donde se puedan definir todas las variables, y antes de abrir el formulario principal?

Gracias de nuevo





El dimecres 15 de gener de 2014 10:44:19 UTC+1, José Mª Fueyo va escriure:
Hola

Puedes configurar la sentencia SQL en la propiedad RowSource en el evento "Al cargar" del formulario.

Por ejemplo, crea un formulario en la base de datos Northwind, crea un combo de dos columnas, la primera oculta. Llama al combo "cbxFiltrado".

En el evento "al cargar" del formulario, pega éste código



<pego>

Dim sSQL As String

sSQL = "SELECT Clientes.IdCliente, Clientes.NombreCompañía FROM Clientes WHERE Clientes.IdCliente LIKE 'A*' ORDER BY [NombreCompañía];"

Me.cbxFiltrado.RowSource = sSQL

</pego>



Esto hará que se carguen los clientes cuyo IdCliente empiece por "A".



Espero te sirva.



Salu2


José Mª Fueyo

[MS MVP Access]
Respuesta Responder a este mensaje
#3 José Mª Fueyo
16/01/2014 - 14:19 | Informe spam
Hola
Con Environ("USERNAME") puedes recuperar el nombre del usuario que ha hecho loggin en la máquina.

Salu2
José Mª Fueyo
[MS MVP Access]
Respuesta Responder a este mensaje
#4 Toni
17/01/2014 - 11:26 | Informe spam
Jose Mª, gracias de antemano!

Esto ya lo tengo solucionado... a lo mejor no me he explicado bien.

Tengo varias variables globales que deben devolver un valor en el momento mismo que se inicia la aplicación.

Como te comentaba, ahora las tengo definidas en el formulario que se abre automaticamente al inico de la aplicación, en el método 'Open'.

No se si este es el lugar donde se acostumbran a situar este tipo de variables, o hay algun tipo de mòdulo de inicio donde definirlas y darles valor.

no se si me explico...

Gracias



El dijous 16 de gener de 2014 14:19:55 UTC+1, José Mª Fueyo va escriure:
Hola

Con Environ("USERNAME") puedes recuperar el nombre del usuario que ha hecho loggin en la máquina.



Salu2


José Mª Fueyo

[MS MVP Access]
Respuesta Responder a este mensaje
#5 Toni
17/01/2014 - 11:29 | Informe spam
Jose Mª

Gracias de antemano... esto lo tengo solucionado.

Tengo varias variables globales que deben ser cargadas al inicio de la aplicación. Una de ellas es la que comentaba anteriormente, pero hay más.

Ahora mismo las tengo colocadas en el formulario que se abre automaticamente al cargar la aplicacion, en el método 'Al cargar'. Alli las declaro y les doy valor.

No se si esta es la manera correcta de hacerlo, o existe algun tipo de módulo donde se declaren estas variables 'de inicio'.

No se si me he explicado.

Gracias

El dijous 16 de gener de 2014 14:19:55 UTC+1, José Mª Fueyo va escriure:
Hola

Con Environ("USERNAME") puedes recuperar el nombre del usuario que ha hecho loggin en la máquina.



Salu2


José Mª Fueyo

[MS MVP Access]
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida