web-dev-qa-db-ja.com

MSAccessフォームへのファイルブラウザボタンの追加

MS Access 2007フォームに[参照]ボタンを追加して、標準のWindowsファイルブラウザ(モーダルウィンドウとして)を表示し、ユーザーがディレクトリを選択できるようにします。ユーザーがそのブラウザをOKにすると、選択したディレクトリのパスがAccessフォームのテキストボックスに書き込まれます。

これを行うための最良の方法は何ですか?ネイティブアクセス方法はありますか?

9
Isaac Moses

Application.FileDialogを使用する関数を作成します。 FileDialogはモーダルです。

この関数は、ユーザーがフォルダーを選択した場合はそのフォルダーを選択し、FileDialogで[キャンセル]をクリックした場合は空の文字列を返します。

Public Function FolderSelection() As String
    Dim objFD As Object
    Dim strOut As String

    strOut = vbNullString
    'msoFileDialogFolderPicker = 4
    Set objFD = Application.FileDialog(4)
    If objFD.Show = -1 Then
        strOut = objFD.SelectedItems(1)
    End If
    Set objFD = Nothing
    FolderSelection = strOut
End Function

コマンドボタンのクリックイベントでその機能を使用できると思います。

Dim strChoice As String
strChoice = FolderSelection
If Len(strChoice) > 0 Then
    Me.TextBoxName = strChoice
Else
    ' what should happen if user cancelled selection?
End If

MicrosoftがいつかOfficeからFileDialogオブジェクトを削除する可能性がある場合は、代わりにWindows APIメソッドを使用できます: BrowseFolder Dialog

12
HansUp