** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - pregunta sobre los Modulos
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradopregunta sobre los Modulos

 Responder Responder
Autor
Mensaje
01loko Ver desplegable
Habitual
Habitual


Unido: 17/Agosto/2017
Localización: Santander
Estado: Sin conexión
Puntos: 71
Enlace directo a este mensaje Tema: pregunta sobre los Modulos
    Enviado: 13/Enero/2018 a las 22:45
Esto es mas para entender los modulos que nada:
Tengo una base en la que casi constantemente tengo que ver el usuario conectado, lo hago mediante una sencilla linea de codigo:
"myusuario = Nz(DLookup("[usuario]", "usuario_activo", "[Id]=1"), "")"

La duda es ¿Se puede poner en un modulo y llamar con "if myusuario= 1 then ..." en cualquier momento?

No se si me he explicado bien

"El aprender no ocupa lugar, pero si mucho tiempo. Por eso aunque soy viejo sigo intentando aprender cosas nuevas cada dia"
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 11498
Enlace directo a este mensaje Enviado: 13/Enero/2018 a las 23:11
Bueno... yo creo haberte entendido.
Necesitas evaluar si un determinado usuario es el usuario activo. Si es así, yo utilizaría otra función de dominio.

Creas un  módulo y allí una función

Function UsuarioConectado(lngId As Long) As Boolean
 UsuarioConectado = (DCount("*", "usuario_activo", "Id = " & lngId) >0)
End Function

En el código puedes evaluar así:

If UsuarioConectado(1) Then
  ' el usuario está conectado
Else
  ' el usuario no está conectado
End if

No se si es eso lo que buscas
Xavi, un minyó de Terrassa

Mi web
Arriba
01loko Ver desplegable
Habitual
Habitual


Unido: 17/Agosto/2017
Localización: Santander
Estado: Sin conexión
Puntos: 71
Enlace directo a este mensaje Enviado: 14/Enero/2018 a las 09:37
Bien en este caso, la solucion es muy elegante, pero me he explicado mal:
todos ( o al menos yo) tenemos variables que comprobar constantemente (Usuario, si un formulario esta abierto, la ruta de una carpeta recursiba(vease almacen de datos) , ruta del logo de la empresa, etc.) que necesitamos saber en diferentes momentos.

esta claro que mediante unas pocas lineas podeamos acceder a estos datos, pero planteaba la posibilidad de escribirlo una vez y llamarlo en cualquiere momento.

Mi caso de usuario activo era mas un ejemplo que otra cosa. (aunque me gusta lo elegante que me lo has dejao) Wink


"El aprender no ocupa lugar, pero si mucho tiempo. Por eso aunque soy viejo sigo intentando aprender cosas nuevas cada dia"
Arriba
pitxiku Ver desplegable
Habitual
Habitual
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 161
Enlace directo a este mensaje Enviado: 14/Enero/2018 a las 11:46
Si te basas en lo dicho por Xavi, puedes crearte tus propias funciones en uno o varios módulos, que sólo sirvan de intermediarias entre esas variables y el resto de tu base de datos:

Public Function DameUsuario() As String ...
Public Function DameLogo() As String ...
Public Function EstaFormAbierto(QueForm As String) As Boolean ...
...

Una vez creadas y que funcionen, tendrás otras ventajas:

- Las funciones públicas creadas por ti, las puedes usar como si fuesen funciones de Access. Es decir, esas funciones las puedes usar en consultas, macros, en la propiedad Origen del control de un control, en los ribbon, ...

- Puedes exportar los módulos creados, e importarlos en las bases de datos que vayas creando: si ya lo tienes hecho, ¿para qué hacerlo de nuevo? Incluso puedes crear tu propia base de datos con sólo código, y usarla como referencia para las nuevas; así evitas el copiar y pegar.
Arriba
01loko Ver desplegable
Habitual
Habitual


Unido: 17/Agosto/2017
Localización: Santander
Estado: Sin conexión
Puntos: 71
Enlace directo a este mensaje Enviado: 14/Enero/2018 a las 18:34
Muchas gracias por aclararme esto.
Lo cierto es que no entendia como funcionaban los modulos demasiado bien.

Creo que se puede dar por cerrado el hilo.
"El aprender no ocupa lugar, pero si mucho tiempo. Por eso aunque soy viejo sigo intentando aprender cosas nuevas cada dia"
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable