Avatar billede telep Nybegynder
22. marts 2002 - 13:19 Der er 7 kommentarer og
2 løsninger

Finde NT-user, computernavn mm.

Hej Xperts,

Hvordan er syntaksen for at finde følgende

Den accessuser der pt bruger databasen?
Den Windowsaccount/ NT-user der pt er logget på maskinen?
Den computer der pt bruger databasen, computernavn ?

VBA til Access XP!

/telep
Avatar billede driis Nybegynder
22. marts 2002 - 14:42 #1
Indsæt dette i et modul; så returnerer funktionen CompName computernavnet:


Public Declare Function GetComputerName Lib "kernel32.dll" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Dim buf As String
Dim Ans As Long

Public Function CompName() As String
buf = Space(255)
Ans = GetComputerName(buf, 255)
CompName = Left(buf, InStr(1, buf, vbNullChar) - 1)
End Function
Avatar billede telep Nybegynder
22. marts 2002 - 14:45 #2
Lidt forklaring!
Avatar billede driis Nybegynder
22. marts 2002 - 14:49 #3
Her har jeg tilføjet funktionen UserName, der giver dig navnet på den Windowaccount, der er logget på:


Public Declare Function GetComputerName Lib "kernel32.dll" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Dim buf As String
Dim Ans As Long

Public Function CompName() As String
buf = Space(255)
Ans = GetComputerName(buf, 255)
CompName = Left(buf, InStr(1, buf, vbNullChar) - 1)
End Function

Public Function UserName() As String
buf = Space(255)
Ans = GetUserName(buf, 255)
UserName = Left(buf, InStr(1, buf, vbNullChar) - 1)
End Function
Avatar billede driis Nybegynder
22. marts 2002 - 14:55 #4
OK: De 2 øverste linier ('Public Declare ...') deklarerer 2 Windows-API funktioner, som vi bruger til at finde de 2 navne. Funktionen 'GetComputerName' returnerer computernavnet til den variabel, som angives som 'lpBuffer', mens 'nSize' er længden af 'lpBuffer'.

I funktionen CompName initialiserer vi først variablen 'buf' ved at fylde 255 mellemrum i den, idet det ikke må være en tom streng, der bruges. Derefter kører vi GetComputerName - API kaldet, og 'buf' indeholder nu computernavnet + en masse overskydende mellemrum. Disse overskydende mellemrum fjernes i den sidste linie.

Jeg håber det var nogenlunde forståeligt - funktion nr. 2 kører efter nøjagtig samme princip, så jeg undlader at forklare den.
Avatar billede telep Nybegynder
22. marts 2002 - 14:58 #5
Gracie,

Tester og du får point!

/telep
Avatar billede telep Nybegynder
22. marts 2002 - 15:09 #6
Hov jeg ser lige at jeg mangler Access useren!
Avatar billede telep Nybegynder
22. marts 2002 - 15:38 #7
Hallo hallo
Avatar billede driis Nybegynder
22. marts 2002 - 16:07 #8
I know, jeg ved ikke hvordan man finder Access brugernavnet - håber, der er en anden Ekspert, der ved det?
Avatar billede telep Nybegynder
25. marts 2002 - 11:59 #9
telep
Avatar billede 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. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

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