Author |
Topic |
|
Евгений
88 Posts |
Posted - 02/03/2005 : 17:45:35
|
Нужно открыть документ, который должен выбрать юзер. Подскажите, как показать ему такое окно, как при нажатии File->Open, или что-нибудь подобное. И желательно чтобы видимость файлов была ограничена до заданых расширений (можно дефолтные расширения программы). |
|
Tumanov
Russia
1198 Posts |
Posted - 02/03/2005 : 19:06:24
|
Application.DoCmd (1002) не годится? Тогда можно использовать виндусовский CommonDialog1.ShowOpen из comdlg32.ocx. Там все фильтры поставить можно и вообще настроек куча. |
|
|
Евгений
88 Posts |
Posted - 02/03/2005 : 19:50:03
|
> Application.DoCmd (1002) не годится? Нет, т.к. я хочу не просто открыть документ, а открыть его невидимым, с выключеными макрами, сразу получить на него ссылку и т.п.
> Тогда можно использовать виндусовский CommonDialog1.ShowOpen > из comdlg32.ocx. Там все фильтры поставить можно > и вообще настроек куча. А примерно как это делается? |
|
|
Tumanov
Russia
1198 Posts |
Posted - 02/03/2005 : 21:31:16
|
В VB6 на формочку бросается компонент CommonDialog, а дальше примерно так: CommonDialog1.InitDir = InPath(1) CommonDialog1.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer Or cdlOFNLongNames 'CommonDialog1.Filter = "*.*" 'CommonDialog1.FilterIndex = 1 CommonDialog1.FileName = "*.*" CommonDialog1.DialogTitle = "Исходный файл" CommonDialog1.ShowOpen 'Это собственно вызов диалога If CommonDialog1.FileName = "" Then Exit Sub s = CommonDialog1.FileName Debug.Print s
Можно в MSDN дать поиск по ShowOpen - должна быть куча материала. Вот пример использования OCX (это без формочки) из статьи "Enhance Your Apps with Common Dialogs: Part I" Sub GetFileFromOCX() Dim CDLG As Object Set CDLG = CreateObject("MSComDlg.CommonDialog") With CDLG .DialogTitle = "Get me a File!" .Filter = _ "Documents|*.doc|Templates|*.dot|Text Files|*.txt" .ShowOpen MsgBox .FileName End With Set CDLG = Nothing End Sub Но вот "с выключеными макрами" - этого я не обещаю :)
|
|
|
Евгений
88 Posts |
Posted - 02/04/2005 : 18:20:02
|
Спасибо :) |
|
|
Dmitry
25 Posts |
Posted - 08/03/2005 : 23:48:37
|
Пробовал метод с OCX. Не работает. В инете пишут что без developer license он небудет работать. Может кто нить знает как это обойти?
quote: Originally posted by Tumanov
В VB6 на формочку бросается компонент CommonDialog, а дальше примерно так: CommonDialog1.InitDir = InPath(1) CommonDialog1.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer Or cdlOFNLongNames 'CommonDialog1.Filter = "*.*" 'CommonDialog1.FilterIndex = 1 CommonDialog1.FileName = "*.*" CommonDialog1.DialogTitle = "Исходный файл" CommonDialog1.ShowOpen 'Это собственно вызов диалога If CommonDialog1.FileName = "" Then Exit Sub s = CommonDialog1.FileName Debug.Print s
Можно в MSDN дать поиск по ShowOpen - должна быть куча материала. Вот пример использования OCX (это без формочки) из статьи "Enhance Your Apps with Common Dialogs: Part I" Sub GetFileFromOCX() Dim CDLG As Object Set CDLG = CreateObject("MSComDlg.CommonDialog") With CDLG .DialogTitle = "Get me a File!" .Filter = _ "Documents|*.doc|Templates|*.dot|Text Files|*.txt" .ShowOpen MsgBox .FileName End With Set CDLG = Nothing End Sub Но вот "с выключеными макрами" - этого я не обещаю :)
|
|
|
|
Topic |
|