Imprimir página | Cerrar ventana

pregunta sobre los Modulos

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=83382
Fecha de impresión: 20/Abril/2021 a las 12:02


Tema: pregunta sobre los Modulos
Publicado por: 01loko
Asunto: pregunta sobre los Modulos
Fecha de publicación: 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



-------------
Recordar de que soy nuevo y estoy aprendiendo.



Respuestas:
Publicado por: xavi
Fecha de publicación: 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

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: 01loko
Fecha de publicación: 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




-------------
Recordar de que soy nuevo y estoy aprendiendo.


Publicado por: pitxiku
Fecha de publicación: 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.


Publicado por: 01loko
Fecha de publicación: 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.


-------------
Recordar de que soy nuevo y estoy aprendiendo.



Imprimir página | Cerrar ventana