2013-06-04 27 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 

Câu hỏi của tôi là cách đặt mặc định FileDialog thành một thư mục cụ thể khi mở thư mục lần đầu?Mặc định một thư mục cho FileDialog trong VBA

Cảm ơn trước sự giúp đỡ nào trong vấn đề này

+0

Kiểm tra mã được cung cấp ở đây: http://stackoverflow.com/questions/9399651/picking-a-folder- using-application-filedialog –

Trả lời

31

Thêm đường dẫn thư mục (bao gồm cả các dấu \) để InitialFileName. Ví dụ, để mở hộp thoại trong thư mục chính của người dùng làm:

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

Nếu bạn quên Trailing \, sau đó hộp thoại sẽ vẫn mở cửa vào đúng thư mục, nhưng tên thư mục cũng sẽ xuất hiện như tên tệp được chọn mặc định. Sau đó, hộp thoại sẽ tìm kiếm một thư mục con có cùng tên, thường không tồn tại.

+0

Đây là một mẹo hay. Tôi đã thử ChDir và nó không có tác dụng ở đây. – FCastro

+0

Tôi nghĩ 'Application.PathSeparator' thay vì' "\" 'sẽ tốt hơn –

-1

Hoặc, trước khi mở hộp thoại, chỉ cần thay đổi thư mục tập tin deault với:

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

Mã này chỉ tốt để sử dụng với MS Word, OP hỏi về MS Access –

Các vấn đề liên quan