powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / API функции в Microsoft access
6 сообщений из 6, страница 1 из 1
API функции в Microsoft access
    #32114905
111andrei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOS!Прошу помощи.
Подскажите, как вызвать програмно в access стандартное окно WINDOWS для открытия файла. Хорошо бы пример.Андрей
...
Рейтинг: 0 / 0
API функции в Microsoft access
    #32114920
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
1. Сажается на форму контроль типа CommonDialog, пусть его зовут diaDocument.

2. Пример кода:

On Error Resume Next
diaDocument.ShowOpen
If diaDocument.FileName > "" Then ... = diaDocument.FileName
...
Рейтинг: 0 / 0
API функции в Microsoft access
    #32115898
Фотография Savik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
Option Compare Database
Option Explicit
Private Type BROWSEINFO
    hOwner As Long
    pidlRoot As Long
    pszDisplayName As String
    lpszTitle As String
    ulFlags As Long
    lpfn As Long
    lParam As Long
    iImage As Long
End Type

Private Declare Function SHGetPathFromIDList Lib  "shell32.dll"  Alias _
             "SHGetPathFromIDListA"  (ByVal pidl As Long, ByVal pszPath As String) As Long
Private Declare Function SHBrowseForFolger Lib  "shell32.dll"  Alias _
             "SHBrowseForFolderA"  (lpBrowseInfo As BROWSEINFO) As Long
Private Const BIFRETURNONLYFSDIRS = &H1

Declare Function GetOpenFileName Lib  "comdlg32.dll"  Alias  "GetOpenFileNameA"  _
        (pOpenFileName As OPENFILENAME) As Boolean
Declare Function GetSaveFileName Lib  "comdlg32.dll"  Alias  "GetSaveFileNameA"  _
        (pOpenFileName As OPENFILENAME) As Boolean
Private 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
Public Const OFN_ALLOWMULTISELECT = &H200
Public Const OFN_CREATEPROMPT = &H2000
Public Const OFN_EXPLORER = &H80000
Public Const OFN_FILEMUSTEXIST = &H1000
Public Const OFN_HIDEREADONLY = &H4
Public Const OFN_NOCHANGEDIR = &H8
Public Const OFN_NODEREFERENCELINKS = &H100000
Public Const OFN_NONETWORKBUTTON = &H20000
Public Const OFN_NOREADONLYRETURN = &H8000
Public Const OFN_NOVALIDATE = &H100
Public Const OFN_OVERWRITEPROMPT = &H2
Public Const OFN_PATHMUSTEXIST = &H800
Public Const OFN_READONLY = &H1
Public Const OFN_SHOWHELP = &H10
'---------------------------------------------
'Выбор папки
Public Function BrowseFolder(szDialogTitle As String) As String
    Dim X As Long, bi As BROWSEINFO, dwIList As Long
    Dim szPath As String, wPos As Integer
    If IsNull(tDir) Then
        tDir =  "C:" 
    End If
    With bi
        .hOwner = hWndAccessApp
        .lpszTitle = szDialogTitle
        .ulFlags = BIFRETURNONLYFSDIRS
    End With
    dwIList = SHBrowseForFolger(bi)
    szPath = Space$( 512 )
    X = SHGetPathFromIDList(ByVal dwIList, ByVal szPath)
    If X Then
        wPos = InStr(szPath, Chr( 0 ))
        BrowseFolder = left$(szPath, wPos -  1 )
    Else
        BrowseFolder =  ""
    End If
End Function
'----------------------------------------------
'Выбор файла
Public Function OpenFile(ByVal InitDir As String, ByVal fname As String, ByVal Zagl As String) As String
    Dim strFile As String * 512 
    Dim of As OPENFILENAME
    Dim f As String
    Dim p%
    'Установка начальных значений структуры
    With of
        .hwndOwner = hWndAccessApp
        .hInstance = 0
        .lpstrCustomFilter = 0
        .nMaxCustrFilter = 0
        .lpfnHook = 0
        .lpTemplateName = 0
        .lCustrData = 0
        .lpstrInitialDir = InitDir
        'установка фильтров для поиска файлов
        .lpstrFilter = "Текстовые файлы (*.txt) " & Chr(0 ) & "*.txt " & Chr(0 ) & _
        "Все файлы (*.*) " & Chr(0 ) & "*.* " & Chr(0 ) & Chr( 0 )
        .nFilterIndex =  0 
        .lpstrFile = fname & String$( 512  - Len(fname),  0 )
        .nMaxFile =  511 
        .lpstrFileTitle = String$( 512 ,  0 )
        .nMaxFileTitle =  511 
        'Заголовок окна
        .lpstrTitle = Zagl
        .lpstrDefExt = "txt "
        .Flags = OFN_FILEMUSTEXIST + OFN_PATHMUSTEXIST + OFN_EXPLORER
        .lStructSize = Len(of)
    End With
    If GetOpenFileName(of) Then
        p% = InStr(1 , of.lpstrFile, Chr( 0 ))
        OpenFile = left(of.lpstrFile, p% -  1 )
    Else
        OpenFile = ""
    End If
End Function
...
Рейтинг: 0 / 0
API функции в Microsoft access
    #32115902
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Мой вариант немножко короче. :^)
...
Рейтинг: 0 / 0
API функции в Microsoft access
    #32116212
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант предложенный Savik более универсален и будет работать и акесе97, к томо же вопрос был про API, а вариант с размещением лишних ActivX надо отвергнуть сразу - замучаешся с распространением.
...
Рейтинг: 0 / 0
API функции в Microsoft access
    #32116475
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Насчет распространения - надо просто не забыть OCX пристегнуть...
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / API функции в Microsoft access
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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