MS Access 2007フォームに[参照]ボタンを追加して、標準のWindowsファイルブラウザ(モーダルウィンドウとして)を表示し、ユーザーがディレクトリを選択できるようにします。ユーザーがそのブラウザをOKにすると、選択したディレクトリのパスがAccessフォームのテキストボックスに書き込まれます。
これを行うための最良の方法は何ですか?ネイティブアクセス方法はありますか?
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 。