2013-06-04 20 views
11
Private Sub Command93_Click() 

    Dim f As Object 
    Dim strFile As String 
    Dim strFolder As String 
    Dim varItem As Variant 
    Dim P As String 
    Dim DeleteEverything As String 

     DoCmd.SetWarnings False 
     DeleteEverything = "DELETE * FROM [TABLE]" 
     DoCmd.RunSQL DeleteEverything 

    Set f = Application.FileDialog(3) 
    f.AllowMultiSelect = False 
    If f.Show Then 
     For Each varItem In f.SelectedItems 
      strFile = Dir(varItem) 
      strFolder = Left(varItem, Len(varItem) - Len(strFile)) 
      P = strFolder & strFile 
     Next 
    End If 
    Set f = Nothing 

     DoCmd.TransferText acImportFixed, "[IMPORT SPECIFICATION]", "[TABLE]", P, False 

End Sub 

Moje pytanie brzmi: jak ustawić FileDialog domyślnie do określonego folderu, gdy początkowo otwiera?Domyślnie folder dla FileDialog w VBA

Dzięki z góry za wszelką pomoc w tej materii

+0

Sprawdź kod podany tutaj: http://stackoverflow.com/questions/9399651/picking-a-folder- using-application-filedialog –

Odpowiedz

31

Dodaj ścieżkę do folderu (w tym spływu \) do InitialFileName. Na przykład, aby otworzyć okno dialogowe, w katalogu domowym użytkownika zrobić:

f.InitialFileName = Environ("USERPROFILE") & "\" 

Pominięcie spływu \, następnie będzie nadal otwarty w odpowiednim folderze, ale nazwy folderu pojawi się również okno dialogowe jak domyślna nazwa wybranego pliku. Następnie okno dialogowe będzie szukać podkatalogu o tej samej nazwie, który zwykle nie istnieje.

+0

To dobra wskazówka. Próbowałem ChDir i nie miało to żadnego wpływu. – FCastro

+0

Myślę, że 'Application.PathSeparator' zamiast' "\" 'będzie lepszy –

-1

Albo przed otwarciem okna, wystarczy zmienić deault katalogu plików z:

Application.Options.DefaultFilePath(wdDocumentsPath) = "your\path\here" 
+1

Ten kod jest tylko dobry do użycia z MS Word, OP pyta o MS Access –