Avatar billede al_pacone Nybegynder
15. juli 2004 - 10:40 Der er 9 kommentarer og
1 løsning

Find computer navn.

Jeg har en funktion der finder computerens netværksnavn.
Jeg har fundet ud af at få netværksnavnet vist i et textfelt.
Computerens netværksnavn kunne f.eks. være PC1. Det vil jeg så godt have lavet om så det bliver vist som Stuen F.eks.

Jeg har lavet en tabel med de computere som jeg ønsker at få vist.

Table1
Kolonne 1, computer netværksnavne.
Kolonne 2, computer navn.

Kan man fra tabellen plukke computer navn ud, når man kender computer netværksnavnet.

Jeg vil godt have det vist i et textfelt.
15. juli 2004 - 10:45 #1
DLookup("[Computer navn]", "tabel1", "[Computer netværksnavn] = '" & "PC1" & "'")
15. juli 2004 - 10:45 #2
Denne funktion finder desuden den aktuelle computers navn:

Private Declare Function apiGetComputerName Lib "kernel32" Alias _
    "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Function GetMachineName() As String
'Returns the computername
Dim lngLen As Long, lngx As Long
Dim strCompName As String
    lngLen = 16
    strCompName = String$(lngLen, 0)
    lngx = apiGetComputerName(strCompName, lngLen)
    If lngx <> 0 Then
        GetMachineName = Left$(strCompName, lngLen)
    Else
        GetMachineName = ""
    End If
End Function
Avatar billede terry Ekspert
15. juli 2004 - 10:52 #3
Environ("USERDOMAIN") also returns PC name (I think)
Avatar billede al_pacone Nybegynder
15. juli 2004 - 10:55 #4
Når jeg forsøger at gører det som følgende, virker det ikke.
Kan det lade sig gører på den måde.
Jeg har lagt det i Form_Load.

ReturnComputerName er computer netværksnavnet.

Text4 = DLookup("[PC Nummer]", "tabel1", "[Anlæg] = '" & ReturnComputerName & "'")

Jeg er rimelig ny i Access, så det kan godt tænkes at jeg har overset noget ganske elementært.
15. juli 2004 - 10:57 #5
Det burde virke, men hvis ReturnComputerName  skifter værdi, når du skifter post, bør du flytte koden til Form_Current.
Avatar billede al_pacone Nybegynder
15. juli 2004 - 10:57 #6
Jeg bruger denne funktion.

Private Declare Function GetComputerName Lib "kernel32" _
    Alias "GetComputerNameA" _
    (ByVal lpBuffer As String, nSize As Long) As Long


Function ReturnComputerName() As String
Dim rString As String * 255, sLen As Long, tString As String
    tString = ""
    On Error Resume Next
    sLen = GetComputerName(rString, 255)
    sLen = InStr(1, rString, Chr(0))
    If sLen > 0 Then
        tString = Left(rString, sLen - 1)
    Else
        tString = rString
    End If
    On Error GoTo 0
    ReturnComputerName = UCase(Trim(tString))
End Function
Avatar billede al_pacone Nybegynder
15. juli 2004 - 11:05 #7
Rettet et par enkle fejl, så det kom til at virke.
Der skulle byttes om på Anlæg og PC Nummer.
Jeg bruger engelsk, så tabel1 skulle være table1.

Text4 = DLookup("[Anlæg]", "table1", "[PC Nummer] = '" & ReturnComputerName & "'")

Afprøver lige de andre forslag før jeg lukker.
Avatar billede al_pacone Nybegynder
15. juli 2004 - 11:07 #8
Environ("USERDOMAIN") returnerer ikke det rigtige navn.
Det skal bruges i et stort firma netværk, så userdomain bliver til CORP.
Avatar billede al_pacone Nybegynder
15. juli 2004 - 11:11 #9
Om man bruger din eller min funktion, giver det samme resultat.

Tak for hjælpen.
15. juli 2004 - 11:12 #10
Selv tak :o)

Ja, de 2 funktioner gør præcis det samme.
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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