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

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

On Error Resume Next
diaDocument.ShowOpen
If diaDocument.FileName > "" Then ... = diaDocument.FileName
...
Рейтинг: 0 / 0
06.03.2003, 17:31
    #32115898
Savik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API функции в Microsoft access
Код: 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
06.03.2003, 17:33
    #32115902
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API функции в Microsoft access
Мой вариант немножко короче. :^)
...
Рейтинг: 0 / 0
07.03.2003, 09:31
    #32116212
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API функции в Microsoft access
Вариант предложенный Savik более универсален и будет работать и акесе97, к томо же вопрос был про API, а вариант с размещением лишних ActivX надо отвергнуть сразу - замучаешся с распространением.
...
Рейтинг: 0 / 0
07.03.2003, 14:28
    #32116475
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API функции в Microsoft access
Насчет распространения - надо просто не забыть OCX пристегнуть...
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / API функции в Microsoft access / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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