2011-01-27 5 views
4

이 항목은 How to show "Open File" Dialog in Access 2007 VBA?이며 그곳에는 참조를 사용하지 않는 해결책이 있지만 사용자가 선택한 파일 경로를 표시하는 방법을 알 수 없습니다. 누군가가 Access VBA에서 파일 찾아보기 대화 상자 사용

당신에게

이 아주 많이 감사 설명해 수있는 것은 내가 처음에 대한

Dim f As Object 
Set f = Application.FileDialog(3) 
f.AllowMultiSelect = True 
f.Show  
MsgBox "file choosen = " & f.SelectedItems.Count 
+0

파일 경로에 대한 이야기입니다. 하지만 다중 선택을 사용할 수 있습니다. 모든 파일이있는 폴더 경로를 원하십니까? – froeschli

+0

내 버전에서이 기능을 사용 중지합니다. 다른 사람의 코드입니다. 내 버전에서는 파일을 완료해야하기 때문에 한 번에 하나의 파일이됩니다. – lalachka

+0

[Access 2007 VBA에서 "파일 열기"대화 상자를 표시하는 방법?] (http://stackoverflow.com/questions/1091484/how-to-show-open-file-dialog-in-access-2007- vba) – Fionnuala

답변

5

먼저 일을 이야기하고있는 작품이다 : 당신은 항상 가능하면 강력한 형식의 변수를 사용하는 것을 선호한다. 이 경우 ObjectOffice.FileDialog으로 바꿀 수 있습니다.

선택한 각 파일의 경로를 표시하려면 SelectedItems 컬렉션을 반복해야합니다. FileDialog는 또한 사용자 정의를 요구하는 경우, 설정할 수있는 다른 특성을 가지고

Dim f As Office.FileDialog 
Set f = Application.FileDialog(3) 
f.AllowMultiSelect = True 

' Show the dialog. If the method returns True, the user picked at least one file. 
' If the method returns False, the user clicked Cancel. 
If f.Show Then 
    MsgBox f.SelectedItems.Count & " file(s) were chosen." 

    ' Display the full path to each file that was selected 
    Dim i As Integer 
    For i = 1 To f.SelectedItems.Count 
     MsgBox f.SelectedItems(i) 
    Next i 
End If 

참고 : 예를 들어, 다음 코드를 추가합니다. 예를 들어 .Title 속성을 사용하면 제목 표시 줄에 대화 상자의 캡션으로 표시 할 제목을 지정할 수 있습니다. .Filter 속성을 사용하여 필터를 지정할 수도 있습니다. 그러면 대화 상자에서 사용자가보고 선택할 수있는 파일 형식이 제한됩니다. 예를 들어, 데이터베이스에만 액세스하도록 선택 사항을 제한하려면 다음 코드를 추가하십시오.

' Clear out the current filters 
f.Filters.Clear 

' Add a few custom filters 
f.Filters.Add "Access Databases", "*.mdb" 
f.Filters.Add "All Files", "*.*" 
+1

@Cody Gray FileDialog는 늦은 바인딩에서 잘 작동합니다. 'Dim f As Object'는 Microsoft Office Object Library에 대한 참조를 설정하지 않아도됩니다. – HansUp

+1

@ 한스럽 : 늦은 구속력으로 작동한다는 것을 완전히 알고 있습니다. 대부분의 일들이 그렇습니다. 그렇다고해서 이것이 권장되는 방법은 아닙니다. 초기 바인딩보다 많은 이점을 필요로하지 않을 때 후기 바인딩의 단점을 수용하는 것이 좋습니다. –

+1

후기 바인딩은 참조를 설정하지 않아도된다는 장점이 있습니다. 늦게 바인딩하는 것을 피하기 위해 "권장 관행"이라고 주장하고 있습니까? 누구에게 추천 했습니까? – HansUp

관련 문제