Контроль пути к файлу - PullRequest
       27

Контроль пути к файлу

4 голосов
/ 05 ноября 2008

Как разместить элемент управления путем к файлу на передней панели VBA? Я хочу, чтобы пользователь мог выбрать кнопку обзора и выбрать путь к файлу, а не открывать диалоговые окна повсюду. Мне нужно, чтобы пользователь выбрал три или более путей к файлам.

Ответы [ 5 ]

3 голосов
/ 16 марта 2009

После повторного перечитывания вашего Q, оно кажется, что вы хотите уклониться от диалоговых окон! О, я собирался сказать

Я мог бы опубликовать взлом об использовании MSDIAG на VBA, это объясняет как вы можете исправить свой реестр включить его использование под VBA, без других продуктов MS-VB установлен ... но я предпочитаю тебя погуглите это ... вы, конечно, можете понимаю почему.

Но вам не нужны диалоговые окна ... вам нужны элементы управления и кнопки: используйте списки ! Чтобы заполнить ваш список, используйте команду Dir (используя метод additem из списка). Два этапа для достижения этого:

  • сначала получите каталоги (и добавьте префикс «->» или что-либо еще, прежде чем добавлять его в список, чтобы пользователь понял, что это не файл);
  • затем получите имена файлов (вы можете фильтровать по расширению с помощью аргументов Dir, как в DOS).

Наконец, в OnClick и OnDoubleClick списка вы должны интерпретировать свойство списка по умолчанию (Item), проверить «->» и использовать ChDir для изменения каталога и повторного заполнения, иначе ваш файл будет выбран.

Писать оооочень намного сложнее, чем код ... поверь мне.

2 голосов
/ 05 ноября 2008

Вы имеете в виду VBA для Microsoft Office или просто общий VBA?

В офисе, Application.FileDialog(msoFileDialogOpen).

В противном случае посмотрите на функцию Win32 API SHBrowseForFolder (в shell32.dll). Вы можете импортировать его для использования в VBA, используя ключевые слова Declare Function.

1 голос
/ 22 сентября 2010

Это то, что вы хотите?

FilePath = Application.GetOpenFilename
1 голос
/ 06 ноября 2008

Возможно, подойдет поиск API для папок с сайта Microsoft MVP:

http://www.mvps.org/access/api/api0002.htm

Он использует SHBrowseForFolder, упомянутый fwzgekg, и не возвращает диалоговое окно файла, он возвращает просматриваемый список папок.

1 голос
/ 05 ноября 2008

Для этого нет прямой функции VBA. Вы можете решить объединить форму (форму доступа или универсальную форму Microsoft) с двумя элементами управления: (1) текстовое поле (2) кнопка обзора (которая в конечном итоге будет использовать команду fileDialog или Windows API).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...