jensen363 Seniormester
29. oktober 2020 - 12:01 Der er 12 kommentarer

Log af user i tabel

Dette er godt nok mange år siden jeg har prøvet dette, ... men nu kaster jeg mig over at lave en database igen :-)

Jeg har behov for at der i forbindelse med oprettelse og/eller ændring af rækker i en tabel bliver 'logget' hvem der foretager dette

Environ("username") kan vist ikke benyttes mere .... korrekt ???

Hvad er alternativet ????
zuschlag Juniormester
29. oktober 2020 - 12:40 #1
Hej Jensen
Environ("username") fungerer vist fint.
VH Anders
jensen363 Seniormester
29. oktober 2020 - 12:52 #2
Ikke som inputvalue i tabeller, - kun som visning :-(
martens Professor
29. oktober 2020 - 12:56 #3
Jeg benytter nedenstående for at finde aktuel bruger .. Virker på såvel Domæne samt standalone PC´er
----------------------------------------------------
opret en VBA funktion

Public Function GetUserName() As String
      GetUserName = CreateObject("WScript.Network").UserName
End Function

og kald funktionen :
=GetUserName()

---
mvh martens
terry Ekspert
29. oktober 2020 - 12:59 #4
Ikke som inputvalue i tabeller? There isnt any default values you can use directly on the table, youll need to implement your own methods to do that.

There is also an API you can use to get the currentky logged in user
http://theaccessweb.com/api/api0008.htm
jensen363 Seniormester
29. oktober 2020 - 13:02 #5
I tried to use this ( suggested by Terry ) :

   
API: Get Login name

Author(s)
Dev Ashish


(Q) How do I retrieve the UserName with which the user is logged into the network?

(A) Paste the following code in a new module and call the function fOSUserName.

'******************** Code Start **************************
' This code was originally written by Dev Ashish.
' It is not to be altered or distributed,
' except as part of an application.
' You are free to use it in any application,
' provided the copyright notice is left unchanged.
'
' Code Courtesy of
' Dev Ashish
'
Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
    "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Function fOSUserName() As String
' Returns the network login name
Dim lngLen As Long, lngX As Long
Dim strUserName As String
    strUserName = String$(254, 0)
    lngLen = 255
    lngX = apiGetUserName(strUserName, lngLen)
    If ( lngX > 0 ) Then
        fOSUserName = Left$(strUserName, lngLen - 1)
    Else
        fOSUserName = vbNullString
    End If
End Function
'******************** Code End **************************

When I insert the code in a module, these two lines is shown in red :

Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
    "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
terry Ekspert
29. oktober 2020 - 13:10 #6
This works
Option Compare Database
Option Explicit

Private Const sModName = "mod_Utilities" 'Application.VBE.ActiveCodePane.CodeModule

Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
    "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
   
Private Declare Function apiGetComputerName Lib "kernel32" Alias _
    "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
   
   
   
   
   
'******************** Code Start **************************
' This code was originally written by Dev Ashish.
' It is not to be altered or distributed,
' except as part of an application.
' You are free to use it in any application,
' provided the copyright notice is left unchanged.
'
' Code Courtesy of
' Dev Ashish
'
Function fosusername() As String
' Returns the network login name
Dim lngLen As Long, lngX As Long
Dim strUserName As String
    strUserName = String$(254, 0)
    lngLen = 255
    lngX = apiGetUserName(strUserName, lngLen)
    If (lngX > 0) Then
        fosusername = Left$(strUserName, lngLen - 1)
    Else
        fosusername = vbNullString
    End If
End Function
'******************** Code End **************************
terry Ekspert
29. oktober 2020 - 13:14 #7
The code you show works fine, no idea why ist not working
jensen363 Seniormester
29. oktober 2020 - 13:15 #8
Still same issue

I'm using 64 Bit ...

The error message claim that the function needs to be updated to 64 Bit
terry Ekspert
29. oktober 2020 - 13:15 #9
try martens, that works too
terry Ekspert
29. oktober 2020 - 13:17 #10
64 bit access? Not a good idea...
terry Ekspert
29. oktober 2020 - 13:23 #11
I cant test this but try changing the declaration

Private Declare PtrSafe Function GetUserName Lib "advapi32.dll" Alias
"GetUserNameA" (ByVal lpBuffer As String, nSize As LongPtr) As Long
terry Ekspert
29. oktober 2020 - 13:26 #12
https://vba.miraheze.org/wiki/Access_fOSUserName_function

There is no need to use Access 64 bit just because you use Windows 64 bit, and I doubt you will experience performance improvements by using Access 64 bit, but you can be sure you will experience other issues.
Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links

Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





Premium
Coop ansætter ny digital direktør: Her er hans vigtigste opgave
Interview: Den danske supermarkedskoncern Coop skifter ud i topledelsen og ansætter Morten Viktor i en nyoprettet stilling som direktør for digital & e-commerce. "Min rolle bliver at få samlet hele det digitale kundemøde," fortæller han.
Computerworld
Stein Bagger gør comeback i ny branche: "De lignede et mafiahold, førte sig frem som nyrige og plaprede løs om urealistiske drømme"
Stein Bagger har skiftet navn og fører sig nu frem i store biler i en helt ny branche, skriver en dansk avis.
CIO
Podcast: Her er seks gode råd om ledelse og digitalisering fra danske top-CIO'er
The Digital Edge: Vi har talt med 17 af Danmarks dygtigste digitale ledere - og samlet deres seks bedste råd om digitalisering og ledelse. Få alle rådene på 26 minutter i denne episode af podcasten The Digital Edge.
Job & Karriere
Se Waoos forklaring: Derfor har selskabet fyret topchef Jørgen Stensgaard med omgående virkning
Waaos bestyrelse opsiger fiberselskabets topchef, Jørgen Stensgaard, der fratræder med omgående virkning. Se hele forklaringen fra Waao her.
White paper
Sådan sikrer du hovednøglen til jeres data
80% af alle ransomwareangreb skyldes misbrug af privilegerede brugeradgange. Ved at begrænse og overvåge adfærden på de privilegerede konti samt kontrollere mængden af tildelte rettigheder kan du mindske skaden ved hackerangreb mod din virksomhed og i visse tilfælde helt blokere dem. Internt kan du bruge kontrollen med brugeradgange til at dokumentere, hvem der bevæger sig i hvilke systemer, og hvad der foregår derinde. Privilegeret brugerstyring har de seneste to år stået øverst på Gartners Top10-liste over it-sikkerhedsprojekter, der bør få højeste prioritet. Alligevel er teknologien kun så småt ved at finde fodfæste i Danmark. Det kan viden om åbenlyse gevinster, relativ kort implementeringstid og yderst rimeligt budget være med til at ændre på. I dette whitepaper folder vi temaet privilegeret brugerstyring ud og placerer teknologien i det væld af prioriteringer, som CISO’en hver dag skal foretage.