GetUserName 64-bit?

Status
Niet open voor verdere reacties.

linkav

Gebruiker
Lid geworden
13 jun 2007
Berichten
465
Allen,

Ik heb een access-programma (windows 7/access2010-32 bit) en gebruik hierin:
Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpbuffer As String, nSize As Long) As Long
om de gegevens van de ingelogde gebruiker te weten.

Nu is er een PC vervangen en draait deze op Win8/Access2013-64-bit en nu krijg ik foutmeldingen op "GetUserName".

Hoe kan ik dit oplossen maar wel zodanig dat hetzelfde programma zowel op de ene PC als op de andere blijft werken?

Gr,
Ariane
 
Een 32 bits Office versie is niet compatibel met een 64 bits variant, dus degene die dit gedaan heeft zou ik Er eerst maar eens uitgooien. En daarna de Office 64 bits vervangen door 32 bits.
 
Voor universele code wat betreft VBA kan je dit doen:
Code:
#If WIN64
    Private Declare PtrSafe Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As LongPtr) As Long
#Else
    Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpbuffer As String, nSize As Long) As Long
#End if
 
Ik begrijp dat een 32-bit versie niet compatibel is met een 64-bit versie van Office maar toch....

Maar op de ene PC heb ik Win7(64-bit) /Office 2010 (32-bit) (Zie bijlage)

Op de ander PC heb ik Win8 (64 bit) / Office 2013 (64-bit).
Als ik de code weghaal op de ingelogde gebruiker op te halen, werkt de rest van het programma perfect...
 

Bijlagen

Je kan de gebruikersnaam ook als volgt ophalen, zonder een API te gebruiken:
Gebruiker = Environ("USERNAME")

Maar kijk ook even naar #3.
 
Beste edmoor,

Bedankt voor uw reactie.

Ik probeer het stukje code uit!

Gr,
Ariane
 
Waarschijnlijk moet je deze variant gebruiken:
Code:
Gebruiker = VBA.Environ("USERNAME")
De oude functie die je gebruikte stand nog uit de Access 2000 tijd, en die hoef je dus niet meer te gebruiken. De Environ variant werkt namelijk een stuk makkelijker.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan