powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка 438 при работе с FileDialog. Добавление фильтров в режиме msoFileDialogSaveAs.
17 сообщений из 17, страница 1 из 1
Ошибка 438 при работе с FileDialog. Добавление фильтров в режиме msoFileDialogSaveAs.
    #34292005
blacksun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При работе с FileDialog в режиме msoFileDialogSaveAs возникает ошибка: 438 - Object doesn't support this property or method . Ошибка возникает при работе со свойством Filters начиная с инструкции .Filters.Clear (См. код ниже).
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
Function SaveFile(Optional stInitPath As String = "C:", _
                  Optional stButtonName As String = "", _
                  Optional stCaption As String = "", _
                  Optional stMask As String = "All files; *.*") As String
  
  Const TYPE_SPLTR As String = ";"
  Const ITEM_SPLTR As String = ","
  
  Dim strFileName As String
  Dim dlgSave As FileDialog
  Dim v, s As Variant
  Dim lnItemCounter, lnTypeCounter As Long
  
  On Error GoTo SaveFile_Err
    Set dlgSave = Application.FileDialog(msoFileDialogSaveAs)
    With dlgSave
      .InitialFileName = stInitPath
      If stCaption <> "" Then
        .Title = stCaption
      End If
      If stButtonName <> "" Then
        .ButtonName = stButtonName
      End If
      lnItemCounter =  0 
      ' Вот тут это кусок начинается
      .Filters.Clear
      For Each v In Split(stMask, ITEM_SPLTR)
        lnItemCounter = lnItemCounter +  1 
        lnTypeCounter =  0 
        For Each s In Split(v, TYPE_SPLTR)
           lnTypeCounter = lnTypeCounter +  1 
           If lnTypeCounter <  2  Then
            .Filters.Add Trim(s), Trim(Mid(v, Len(s) +  3 , Len(v) - Len(s) -  1 ))
           End If
        Next s
      Next v
      ' А вот тут заканчивается
      .InitialView = msoFileDialogViewDetails
      .Show
      SaveFile = .SelectedItems( 1 )
    End With
    
SaveFile_Exit:
  Exit Function
  
SaveFile_Err:
  SaveFile = ""
  Resume SaveFile_Exit
End Function

Прошу заметить MS Access 2003 !!! Каким образом в рамках FileDialog добавить в фильтры маски файлов при сохранении?!
...
Рейтинг: 0 / 0
Ошибка 438 при работе с FileDialog. Добавление фильтров в режиме msoFileDialogSaveAs.
    #34294336
blacksun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос никого не интересует? Или ответ никому не известен?

Пробовал менять св-во .DialogType. Св-во оказалось Read-Only. Однако совершенно точно возможность задания списка масок существует. См. рисунок (сохранение файла в MS Excel)
...
Рейтинг: 0 / 0
Ошибка 438 при работе с FileDialog. Добавление фильтров в режиме msoFileDialogSaveAs.
    #34294380
Фотография Старый ворчун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blacksunВопрос никого не интересует? Или ответ никому не известен?
видимо мало кто пользует FileDialog, я, например, привык к
Код: plaintext
1.
2.
3.
4.
5.
Private Declare Function GetOpenFileName _
  Lib "COMDLG32.DLL" Alias "GetOpenFileNameA" _
  (pOpenfilename As OPENFILENAME) As Long
Private Declare Function GetSaveFileName _
  Lib "COMDLG32.DLL" Alias "GetSaveFileNameA" _
  (pOpenfilename As OPENFILENAME) As Long
...
Рейтинг: 0 / 0
Ошибка 438 при работе с FileDialog. Добавление фильтров в режиме msoFileDialogSaveAs.
    #34294385
blacksun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но ведь удобно согласитесь! И преемственность от версии к версии с появлением этой (FileDialog) "обертки" должна сохраняться! Видимо сами редмондовцы не используют эту обертку. Или я не знаю просто как...
...
Рейтинг: 0 / 0
Ошибка 438 при работе с FileDialog. Добавление фильтров в режиме msoFileDialogSaveAs.
    #34294394
Фотография Старый ворчун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blacksunНо ведь удобно согласитесь! И преемственность от версии к версии с появлением этой (FileDialog) "обертки" должна сохраняться! Видимо сами редмондовцы не используют эту обертку. Или я не знаю просто как...У меня готовый, годами проверенный модуль, используемый и в VB, и в VBA, что может быть удобнее?
По поводу преемственности, посмотрите, что написано здесь Свойство «Окно файла (FileDialog)» :

авторКонстанты msoFileDialogOpen и msoFileDialogSaveAs не поддерживаются в Microsoft Office Access 2007.
видимо поддерживаются, но криво ...
...
Рейтинг: 0 / 0
Ошибка 438 при работе с FileDialog. Добавление фильтров в режиме msoFileDialogSaveAs.
    #34294399
blacksun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но!!! Режим msoFileDialogFilePicker не позволяет сохранять файлы!
Покупаю автомат и билет до Америки!
...
Рейтинг: 0 / 0
Ошибка 438 при работе с FileDialog. Добавление фильтров в режиме msoFileDialogSaveAs.
    #34294648
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в Access 2000-2003 встроена такая возможность:

(честно говоря, 2003го никогда не видел. Но сомнений в нем в этой части нет. А на 2007м наличие проверить не удосужился. извините)
/topic/99425&pg=-1#735850

уточнение констант там же в конце простыни.
...
Рейтинг: 0 / 0
Ошибка 438 при работе с FileDialog. Добавление фильтров в режиме msoFileDialogSaveAs.
    #34294956
blacksun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victoshaв Access 2000-2003 встроена такая возможность:
Не понял. Какая возможность? Выбора файла? Да встроена, но при этом работать со списком фильтров (добавлять/удалять) нельзя. Или встроена возможность работать со списком фильтров?
...
Рейтинг: 0 / 0
Ошибка 438 при работе с FileDialog. Добавление фильтров в режиме msoFileDialogSaveAs.
    #34295056
Фотография Старый ворчун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victoshaв Access 2000-2003 встроена такая возможность:

(честно говоря, 2003го никогда не видел. Но сомнений в нем в этой части нет. А на 2007м наличие проверить не удосужился. извините)
/topic/99425&pg=-1#735850

уточнение констант там же в конце простыни.
Я же говорю, что данные константы поддерживаются, но криво.
...
Рейтинг: 0 / 0
Ошибка 438 при работе с FileDialog. Добавление фильтров в режиме msoFileDialogSaveAs.
    #34295072
blacksun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Старый ворчун Victoshaв Access 2000-2003 встроена такая возможность:

(честно говоря, 2003го никогда не видел. Но сомнений в нем в этой части нет. А на 2007м наличие проверить не удосужился. извините)
/topic/99425&pg=-1#735850

уточнение констант там же в конце простыни.
Я же говорю, что данные константы поддерживаются, но криво.
И все равно не понял!
У меня вопрос конкретно про 2003. Оставим 2007 на будущее.
В 200 есть возможность через FileDialog задать фильтры для режима msoFileDialogSaveAs ?
...
Рейтинг: 0 / 0
Ошибка 438 при работе с FileDialog. Добавление фильтров в режиме msoFileDialogSaveAs.
    #34295077
blacksun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В 2003 (имелось в виду).
...
Рейтинг: 0 / 0
Ошибка 438 при работе с FileDialog. Добавление фильтров в режиме msoFileDialogSaveAs.
    #34295092
Фотография Старый ворчун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victoshaв Access 2000-2003 встроена такая возможность:
Уточню, что речь шла именно об Office FileDialog.
Конечно, есть и другие способы для открытия диалога выбора файла, в том числе и WizHook и
MSAU_OfficeGetFileName (Alias 56) и MSAU_GetFileName (Alias 55) и WIN23 API и др.
...
Рейтинг: 0 / 0
Ошибка 438 при работе с FileDialog. Добавление фильтров в режиме msoFileDialogSaveAs.
    #34295115
Фотография Старый ворчун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blacksun[quot Старый ворчун]И все равно не понял!
...
В 2003 есть возможность через FileDialog задать фильтры для режима msoFileDialogSaveAs ?
Victosha говорил не о FileDialog, а о другом способе вызова диалога.
Я на возможности использования фильтров этот и другие способы связанные с Access не проверял.
...
Рейтинг: 0 / 0
Ошибка 438 при работе с FileDialog. Добавление фильтров в режиме msoFileDialogSaveAs.
    #34295121
Фотография Старый ворчун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, сделал неправильную цитату
...
Рейтинг: 0 / 0
Ошибка 438 при работе с FileDialog. Добавление фильтров в режиме msoFileDialogSaveAs.
    #34295136
blacksun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем!
Про другие способы я знаю. Тоже не проверял их на работу с фильтрами, но... Меня интересовала прежде всего обертка FileDialog. Но видимо нет совершенства...
Думаю вопрос исчерпан....
...
Рейтинг: 0 / 0
Ошибка 438 при работе с FileDialog. Добавление фильтров в режиме msoFileDialogSaveAs.
    #34295157
Фотография Старый ворчун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый ворчунЯ на возможности использования фильтров этот и другие способы связанные с Access не проверял.
GetSaveFileNameA (Lib "COMDLG32.DLL") нормально работает с фильтром.
...
Рейтинг: 0 / 0
Ошибка 438 при работе с FileDialog. Добавление фильтров в режиме msoFileDialogSaveAs.
    #34295174
blacksun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Старый ворчун Старый ворчунЯ на возможности использования фильтров этот и другие способы связанные с Access не проверял.
GetSaveFileNameA (Lib "COMDLG32.DLL") нормально работает с фильтром.
Да? Выходит обертка то кастрированная.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка 438 при работе с FileDialog. Добавление фильтров в режиме msoFileDialogSaveAs.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]