powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Хочу в Access вызвать стандртное окно выбора файла???
4 сообщений из 4, страница 1 из 1
Хочу в Access вызвать стандртное окно выбора файла???
    #32137149
Besa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Через сервис-ActivX подключаю comdlg32, потом пытаюсь вставить объект в форму.... а он выдает:
Попытка открыть форму содержащую обект OLE или элемент ActivX, или создать элемент ActivX.....

Помогите...
...
Рейтинг: 0 / 0
Хочу в Access вызвать стандртное окно выбора файла???
    #32137163
wowa_ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подключить библиотеку Office 10 Object Library

Function OpenFile() As String
Dim FFs As FileDialogFilters
With Application.FileDialog(msoFileDialogOpen)
Set FFs = .Filters ' задание фильтра для выбора файлов
With FFs
.Clear
.Add "Все файлы", "*.*"
End With
.AllowMultiSelect = False 'допускаем выбор только 1 файла
If .Show = False Then Exit Function 'если файл не выбран то выход из функции
OpenFile = .SelectedItems(1) 'если файл выбран запомнить его
End With
End Function
...
Рейтинг: 0 / 0
Хочу в Access вызвать стандртное окно выбора файла???
    #32137219
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В режиме конструктора формы идешь в меню Вставка-Элемент АктивИкс\r
Выбираешь MS Common control. Он нормально должен встать. Если че не так, зарегистрируй этот компонент ручками через regserv32. \r
\r
А самое лучшее пользоваться не активИкс,а модулем класса. Все то же самое, тока компонент таскать за собой не надо.\r
\r
Я уже давал его в форум: /topic/24160
...
Рейтинг: 0 / 0
Хочу в Access вызвать стандртное окно выбора файла???
    #32137269
Фотография Ден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну можно и без подключения ActiveX к проекту...

Option Compare Database
Option Explicit
Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Boolean

Type MSA_OPENFILENAME
' Отбор строк, используемых в фильтрах окне диалога "Открытие".
' Для создания фильтров вызывает MSA_CreateFilterString().
' Значение по умолчанию = Все файлы, *.*
strFilter As String
' Исходный фильтр.
' Значение по умолчанию = 1.
lngFilterIndex As Long
' Исходный каталог, для которого открывается окно диалога.
' Значение по умолчанию = текущий рабочий каталог.
strInitialDir As String
' Исходное имя файлов, выводящихся в окне диалога.
' Значение по умолчанию = "".
strInitialFile As String
strDialogTitle As String
' Стандартное расширение имени файла, если не указано пользователем.
' Значение по умолчанию = системные значения (Открыть, Сохранить).
strDefaultExtension As String
' Используемые флаги (см. список констант).
' Значение по умолчанию = отсутствие флагов.
lngFlags As Long
' Полный путь к выбранному файлу. Если пользователь указал
' несуществующий файл, по команде "Открыть" возвращается
' только текст из поля "Имя файла".
strFullPathReturned As String
' Имя выбранного файла.
strFileNameReturned As String
' Позиция в полном пути (strFullPathReturned), с которой
' начинается имя файла (strFileNameReturned).
intFileOffset As Integer
' Позиция в полном пути (strFullPathReturned), с которой
' начинается расширение имени файла.
intFileExtension As Integer
End Type

Const ALLFILES = "Все файлы"

Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As Long
nMaxCustrFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustrData As Long
lpfnHook As Long
lpTemplateName As Long
End Type

Const OFN_ALLOWMULTISELECT = &H200
Const OFN_CREATEPROMPT = &H2000
Const OFN_EXPLORER = &H80000
Const OFN_FILEMUSTEXIST = &H1000
Const OFN_HIDEREADONLY = &H4
Const OFN_NOCHANGEDIR = &H8
Const OFN_NODEREFERENCELINKS = &H100000
Const OFN_NONETWORKBUTTON = &H20000
Const OFN_NOREADONLYRETURN = &H8000
Const OFN_NOVALIDATE = &H100
Const OFN_OVERWRITEPROMPT = &H2
Const OFN_PATHMUSTEXIST = &H800
Const OFN_READONLY = &H1
Const OFN_SHOWHELP = &H10

Private Sub MSAOF_to_OF(msaof As MSA_OPENFILENAME, of As OPENFILENAME)
' Данная процедура осуществляет переход от удобной
' структуры MSAccess к структуре win32.

Dim strFile As String * 512

' Инициализирует некоторые компоненты структуры.
of.hwndOwner = Application.hWndAccessApp
of.hInstance = 0
of.lpstrCustomFilter = 0
of.nMaxCustrFilter = 0
of.lpfnHook = 0
of.lpTemplateName = 0
of.lCustrData = 0

If msaof.strFilter = "" Then
of.lpstrFilter = MSA_CreateFilterString(ALLFILES)
Else
of.lpstrFilter = msaof.strFilter
End If
of.nFilterIndex = msaof.lngFilterIndex

of.lpstrFile = msaof.strInitialFile & String$(512 - Len(msaof.strInitialFile), 0)
of.nMaxFile = 511

of.lpstrFileTitle = String$(512, 0)
of.nMaxFileTitle = 511

of.lpstrTitle = msaof.strDialogTitle

of.lpstrInitialDir = msaof.strInitialDir

of.lpstrDefExt = msaof.strDefaultExtension

of.flags = msaof.lngFlags

of.lStructSize = Len(of)
End Sub

Private Function MSA_GetOpenFileName(msaof As MSA_OPENFILENAME) As Integer
' Открывает окно диалога "Открытие".

Dim of As OPENFILENAME
Dim intRet As Integer

MSAOF_to_OF msaof, of
intRet = GetOpenFileName(of)
If intRet Then
OF_to_MSAOF of, msaof
End If
MSA_GetOpenFileName = intRet
End Function
Private Sub OF_to_MSAOF(of As OPENFILENAME, msaof As MSA_OPENFILENAME)
' Данная процедура осуществляет переход от структуры win32
' к удобной структуре MSAccess.

msaof.strFullPathReturned = Left$(of.lpstrFile, InStr(of.lpstrFile, Chr$(0)))
msaof.strFileNameReturned = of.lpstrFileTitle
msaof.intFileOffset = of.nFileOffset
msaof.intFileExtension = of.nFileExtension
End Sub


Function FindTblSource(strSearchPath) As String
' Открывает окно диалога для поиска базы данных Борей
' пользователем. Возвращает полный путь к файлу Борей.
On Error Resume Next
Dim msaof As MSA_OPENFILENAME

' Задает параметры окна диалога.
msaof.strDialogTitle = "Поиск файла данных"
msaof.strInitialDir = strSearchPath
msaof.strFilter = MSA_CreateFilterString("Все файлы", "*.*")

' Вызывает подпрограмму окна диалога.
MSA_GetOpenFileName msaof

' Возвращает путь и имя файла.
FindTblSource = Trim(msaof.strFullPathReturned)

End Function

Sub test()
FindTblSource "test"
End Sub
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Хочу в Access вызвать стандртное окно выбора файла???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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