Народ!
У меня следующий вопрос. Я хочу, чтобы в новой программе после компилляции работало диалоговое окно msoFileDialogOpen. Если я пишу
With Application.FileDialog(msoFileDialogOpen), то программа выдает ошибку msoFileDialogOpen - неизвестная переменная. Если пишу явно
With Application.FileDialog(Application.FileDialog.DialogType = msoFileDialogOpen), то
выдает ту же ошибку для объекта FileDialog. Как ее исправить так, чтобы можно было импортировать модуль с данным кодом в новую базу данных?
Application.FileDialog
Модератор: Naeel Maqsudov
Может так?
Код: Выделить всё
Sub Макрос1()
Dim iOpen As Boolean
iOpen = Application.Dialogs(msoFileDialogOpen).Show
If iOpen = True Then
MsgBox "Вы открыли: " & ActiveWorkbook.Name, , ""
Else
MsgBox "Вы не выбрали нужную рабочую книгу", , ""
End If
End Sub
А в Access Application.Dialogs нет. Как быть?
Application.FileDialog 1
-
- Сообщения: 520
- Зарегистрирован: 04 фев 2007, 18:37
- Откуда: Сургут
- Контактная информация:
Здравствуйте afg.
В Access диалоги можно использовать установив в проекте ссылку на библиотеку
Microsoft Common Dialog Control 6.0 (SP3) (файл comdlg.ocx)
далее на форме размещаем элемент управления (контрол) Microsoft Common Dialog Control, version 6.0 (он появится в списке "Другие элементы" панели инструментов "Конструктор форм"). Для использования нужен подобный код:
использование диалогов обеспечивает в данном случае библиотека comdlg.ocx
и при распространении Вашего приложения использующего данную библиотеку, позаботьтесь о том что бы у пользователей она была установлена.
Удачи.
Евгений.
В Access диалоги можно использовать установив в проекте ссылку на библиотеку
Microsoft Common Dialog Control 6.0 (SP3) (файл comdlg.ocx)
далее на форме размещаем элемент управления (контрол) Microsoft Common Dialog Control, version 6.0 (он появится в списке "Другие элементы" панели инструментов "Конструктор форм"). Для использования нужен подобный код:
Код: Выделить всё
Private Sub Кнопка0_Click()
DialogOpen
End Sub
Function DialogOpen() As String
CommonDialog1.Flags = cdlOFNFileMustExist Or cdlOFNHideReadOnly
CommonDialog1.FileName = "*.mdb"
CommonDialog1.Action = 1 'CommonDialog1.ShowOpen
DialogOpen = CommonDialog1.FileName
End Function
и при распространении Вашего приложения использующего данную библиотеку, позаботьтесь о том что бы у пользователей она была установлена.
Удачи.
Евгений.
А как быть со стандартными окнами Windows? Они же в принципе должны быть доступны...Teslenko_EA писал(а):Здравствуйте afg.
В Access диалоги можно использовать установив в проекте ссылку на библиотеку
Microsoft Common Dialog Control 6.0 (SP3) (файл comdlg.ocx)
далее на форме размещаем элемент управления (контрол) Microsoft Common Dialog Control, version 6.0 (он появится в списке "Другие элементы" панели инструментов "Конструктор форм").
Удачи.
Евгений.
-
- Сообщения: 520
- Зарегистрирован: 04 фев 2007, 18:37
- Откуда: Сургут
- Контактная информация:
afg, и снова здравствуйте.
С применением библиотеки используются "стандартные" диалоги Windows.
единсвенный (нр немаловажный) плюс - Вам не придется писать "многостраничный" код для получения того же результата.
Но если Вам интересно дпя сравнения прилагаю.
Удачи.
Евгений
P.S.
и вообще все ActiveX'ы служат для облегчения "программерской работы"
С применением библиотеки используются "стандартные" диалоги Windows.
единсвенный (нр немаловажный) плюс - Вам не придется писать "многостраничный" код для получения того же результата.
Но если Вам интересно дпя сравнения прилагаю.
Удачи.
Евгений
P.S.
и вообще все ActiveX'ы служат для облегчения "программерской работы"
- Aent
- Сообщения: 1108
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Господа, а почему бы вам не воспользоваться стандартным объектом FileDialog,
поддерживаемым MS OFFICE ? Не надо никаких дополнительных ActiveX. В проекте
должна быть стандартная ссылка на Microsoft Office 11.0 Object Library ( для 2003)
Цитирую Help
Provides file dialog box functionality similar to the functionality of the standard Open and Save dialog boxes found in Microsoft Office applications. With these dialog boxes, 'users of your solutions can easily specify the files and folders that your solution should use.
Using the FileDialog object
Use the FileDialog property to return a FileDialog object. The FileDialog property is located in each individual Office application's Application object. The property takes a single argument, DialogType, that determines the type of FileDialog object that the property returns. There are four types of FileDialog object:
Open dialog box - lets users select one or more files that you can then open in the host application using the Execute method.
SaveAs dialog box - lets users select a single file that you can then save the current file as using the Execute method.
File Picker dialog box - lets users select one or more files. The file paths that the user selects are captured in the FileDialogSelectedItems collection.
Folder Picker dialog box - lets users select a path. The path that the user selects is captured in the FileDialogSelectedItems collection.
Each host application can only instantiate a single instance of the FileDialog object. Therefore, many of the properties of the FileDialog object persist even when you create multiple FileDialog objects. Therefore, make sure that you've set all of the properties appropriately for your purpose before you display the dialog box.
In order to display a file dialog box using the FileDialog object, you must use the Show method. Once a dialog box is displayed, no code will execute until the user dismisses the dialog box. The following example creates and displays a File Picker dialog box and then displays each selected file in a message box.
P.S Object Browser - великая сила
поддерживаемым MS OFFICE ? Не надо никаких дополнительных ActiveX. В проекте
должна быть стандартная ссылка на Microsoft Office 11.0 Object Library ( для 2003)
Цитирую Help
Provides file dialog box functionality similar to the functionality of the standard Open and Save dialog boxes found in Microsoft Office applications. With these dialog boxes, 'users of your solutions can easily specify the files and folders that your solution should use.
Using the FileDialog object
Use the FileDialog property to return a FileDialog object. The FileDialog property is located in each individual Office application's Application object. The property takes a single argument, DialogType, that determines the type of FileDialog object that the property returns. There are four types of FileDialog object:
Open dialog box - lets users select one or more files that you can then open in the host application using the Execute method.
SaveAs dialog box - lets users select a single file that you can then save the current file as using the Execute method.
File Picker dialog box - lets users select one or more files. The file paths that the user selects are captured in the FileDialogSelectedItems collection.
Folder Picker dialog box - lets users select a path. The path that the user selects is captured in the FileDialogSelectedItems collection.
Each host application can only instantiate a single instance of the FileDialog object. Therefore, many of the properties of the FileDialog object persist even when you create multiple FileDialog objects. Therefore, make sure that you've set all of the properties appropriately for your purpose before you display the dialog box.
In order to display a file dialog box using the FileDialog object, you must use the Show method. Once a dialog box is displayed, no code will execute until the user dismisses the dialog box. The following example creates and displays a File Picker dialog box and then displays each selected file in a message box.
Код: Выделить всё
Sub Main()
'Declare a variable as a FileDialog object.
Dim fd As FileDialog
'Create a FileDialog object as a File Picker dialog box.
Set fd = Application.FileDialog(msoFileDialogFilePicker)
'Declare a variable to contain the path
'of each selected item. Even though the path is a String,
'the variable must be a Variant because For Each...Next
'routines only work with Variants and Objects.
Dim vrtSelectedItem As Variant
'Use a With...End With block to reference the FileDialog object.
With fd
'Use the Show method to display the File Picker dialog box and return the user's action.
'The user pressed the action button.
If .Show = -1 Then
'Step through each string in the FileDialogSelectedItems collection.
For Each vrtSelectedItem In .SelectedItems
'vrtSelectedItem is a String that contains the path of each selected item.
'You can use any file I/O functions that you want to work with this path.
'This example simply displays the path in a message box.
MsgBox "The path is: " & vrtSelectedItem
Next vrtSelectedItem
'The user pressed Cancel.
Else
End If
End With
'Set the object variable to Nothing.
Set fd = Nothing
End Sub
P.S Object Browser - великая сила
- Aent
- Сообщения: 1108
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Несколько непонятна Ваша проблема. В Access (по крайней мере в 2003)
FileDialog есть. Пример из Help'а Access 2003:
FileDialog есть. Пример из Help'а Access 2003:
Код: Выделить всё
'This example displays the Open dialog box and allows a user to select multiple files to open.
Dim dlgOpen As FileDialog
Set dlgOpen = Application.FileDialog( _
FileDialogType:=msoFileDialogOpen)
With dlgOpen
.AllowMultiSelect = True
.Show
End With
Согласен, что есть. У меня он не запускается. Как обеспечить вызов библиотеки (и какой) чтобы его запустить?Aent писал(а):Несколько непонятна Ваша проблема. В Access (по крайней мере в 2003)
FileDialog есть. Пример из Help'а Access 2003: