Avatar billede Slettet bruger
09. maj 2005 - 10:55 Der er 5 kommentarer og
1 løsning

relativ sti til fuldstændig sti

jeg bruger GetOpenFilename til at browse mig til en sti.. man skal browse sig frem til en fil på en server, men man kan med ChDir kun ændre til mappede stier (så en mappe på serveren får tildelt et drevbogstav) og dermed returnerer GetOpenFilename en relativ sti..

Brugerne har mappet serveren med forskellige drevbogstaver, så når disse via en database udveksler oplysninger, vil stierne ikke passe..

og så til spørgsmålet: Hvordan får jeg den fuldstændige sti med GetOpenFilename??
Avatar billede Slettet bruger
09. maj 2005 - 10:58 #1
jeg bruger denne funktion..

Sub find_filename()
    find_file = Application.GetOpenFilename("All Files,*.*", , "Find File")
    If find_file <> False Then
        Selection.value = find_file
    End If
End Sub
Avatar billede Slettet bruger
09. maj 2005 - 10:59 #2
har uden held prøvet med ChDir..

Sub find_filename()
    ChDir(server_folder)
    find_file = Application.GetOpenFilename("All Files,*.*", , "Find File")
    If find_file <> False Then
        Selection.value = find_file
    End If
End Sub
Avatar billede bak Forsker
09. maj 2005 - 12:43 #3
Her er en funktion til dette baseret på denne microsoftartikel
http://support.microsoft.com/?kbid=160529

Declare Function WNetGetConnection32 Lib "MPR.DLL" Alias _
          "WNetGetConnectionA" (ByVal lpszLocalName As String, ByVal _
                                                                                          lpszRemoteName As String, lSize As Long) As Long

Dim lpszRemoteName        As String
Dim lSize                  As Long
Const NO_ERROR            As Long = 0
Const lBUFFER_SIZE        As Long = 255

Function GetNetPath(pth As String)
Dim DriveLetter As String
  DriveLetter = Left(pth, 2)
  cbRemoteName = lBUFFER_SIZE
  lpszRemoteName = lpszRemoteName & Space(lBUFFER_SIZE)
  lStatus& = WNetGetConnection32(DriveLetter, lpszRemoteName, _
                                  cbRemoteName)
  If lStatus& = NO_ERROR Then
      GetNetPath = Left(RTrim(lpszRemoteName), Len(RTrim(lpszRemoteName)) - 1) & Mid(pth, 3, 99)
  Else
      MsgBox "Unable to obtain the UNC path.", vbInformation
  End If
End Function

Sub test()
  Dim s As String
  s = Application.GetSaveAsFilename
  MsgBox GetNetPath(s)
End Sub
Avatar billede Slettet bruger
29. september 2005 - 11:10 #4
Hey bak.. jeg har brugt din løsning i lang tid, men har ikke fået lukket spm.. smid et svar..
Avatar billede bak Forsker
29. september 2005 - 12:39 #5
Godt at få ryddet op :-)
Avatar billede Slettet bruger
02. november 2005 - 14:30 #6
Det er så et godt billede på, hvor god jeg er til at rydde op.. jeg er ca. 1½ måned om at komme i gang..
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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