Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выбор папки на диске, в MS Outlook 2003 
V
    Опции темы
mihanik
Дата 13.10.2006, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 9
Всего: 109



Друзья!

Не могу MS Outlook 2003 по-человечески отобразить диалог выбора папки.
Вернее, вообще не могу.

Пробовал использовать BrowseForFolder.

Но вылетает ошибка в строке hWndOwner = owner.hWnd.

Код

 Public Function BrowseForFolder(owner As Form, Title As String, StartDir As String) As String
          
          бла-бла-бла
          
          hWndOwner = owner.hWnd

 
 
Жалуется, что или типы не совместимы, или объект не поддерживает указанный метод или свойство.
(Изначально прога писалась для VB, а я пишу на VBA for Outlook)
Поэтому не могу обьявить переменную вот так 

Код

owner As Form


 
 Жалуется, что неизвестный тип...
Пытался подобрать какого-нибудь другого, кто бы поддерживал свойство .hWnd, но не смог.


Пытался использовать способ, который описан ЗДЕСЬ

Код

With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Выберите папку:"
.Show
If .SelectedItems.Count > 0 Then
str = .SelectedItems(1)
End If
End With 



Так тоже жалуется, что у Application нет такого метода  FileDialog  ...

Есть идеи? 




--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
geckelberryfinn
Дата 20.10.2006, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 3.12.2003

Репутация: нет
Всего: нет



Я под VBA такой код использовал
Код

Const BIF_RETURNONLYFSDIRS = 1

Const MAX_PATH = 260

Private Declare Function lstrcat Lib "kernel32" _
            Alias "lstrcatA" _
            (ByVal lpString1 As String, _
            ByVal lpString2 As String) As Long

Private Declare Function SHBrowseForFolder Lib "shell32" _
            (lpbi As BrowseInfo) As Long

Private Declare Function SHGetPathFromIDList Lib "shell32" _
            (ByVal pidList As Long, _
            ByVal lpBuffer As String) As Long

Function GetFolder() As String
   Dim iNull As Integer, lpIDList As Long, lResult As Long
    Dim sPath As String, udtBI As BrowseInfo
    With udtBI
        .hwndOwner = 0
        .lpszTitle = lstrcat("C:\", "")
        .ulFlags = BIF_RETURNONLYFSDIRS
    End With
    lpIDList = SHBrowseForFolder(udtBI)
    If lpIDList Then
        sPath = String$(MAX_PATH, 0)
        SHGetPathFromIDList lpIDList, sPath
        CoTaskMemFree lpIDList
        iNull = InStr(sPath, vbNullChar)
        If iNull Then
            sPath = Left$(sPath, iNull - 1)
        End If
    End If
GetFolder = sPath
End Function


использовать этот код просто

Код

txtFolder.Text = GetFolder

PM MAIL   Вверх
mihanik
Дата 20.10.2006, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 9
Всего: 109



Спасибо. Сегодня попробую...


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
mihanik
Дата 26.10.2006, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 9
Всего: 109



Ребята!!!

Я РЕШИЛ!!!

Решение описано ЗДЕСЬ

Работает  в любом офисном приложении... smile


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0424 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.