powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / API и подстановка имени файла в Access
25 сообщений из 28, страница 1 из 2
API и подстановка имени файла в Access
    #32272735
Фотография beseder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел в форуме пример подстановки в программу имени файла,найденного через диалоговое окно с помощью API function. Конкретнее, нужно в команду DoCmd.TransferSpreadsheet acImport, 8, "ExelTable", имя файла, True, "" вместо конкретного имени файла подставлять имя, которое выбирается в данный момент.
Следуя примеру, хотел использовать функцию, которая
возвратит путь к файлу) :
DoCmd.TransferSpreadsheet ..., ..., ...,OpenFile(...), ..., ...

Но! 1.Не могу подключить библиотеку comdlg32.dll
2. в списке, после as, OpenFileName отсутствует и т.п.
Более того, когда просто хотел создать диалоговое окно типа:

Function Select_File(Field As String)
Dim fd As FileDialog
Dim s
Set fd = Application.FileDialog(msoFileDialogFilePicker и т.д.

То не смог выбрать после as FileDialog - нету его и все.
References на Microsoft Office вроде как есть.
использую Access 2000.

HELP PLEASE!
Ниже тот самый пример использования API :
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

Public Function OpenFile(ByVal InitDir As String, ByVal FName As String, _
Optional ext As String = "mdb", _
Optional Title As String = "Открыть файл", _
Optional Flags As Long) As String
Dim strFile As String * 512
Dim of As OPENFILENAME
Dim f As String
Dim p%
' Установка начальных значений структуры
of.hwndOwner = Application.hWndAccessApp
of.hInstance = 0
of.lpstrCustomFilter = 0
of.nMaxCustrFilter = 0
of.lpfnHook = 0
of.lpTemplateName = 0
of.lCustrData = 0
'Ниже вы можете изменить фильтры для поиска файлов
of.lpstrFilter = "MS Access Database (*.mdb)" & Chr$(0) & "*.mdb" & Chr$(0) & _
"Add-ins (*.mda)" & Chr$(0) & "*.mda" & Chr$(0) & _
"MDE-Files (*.mde)" & Chr$(0) & "*.mde" & Chr$(0) & _
"Excel-Files (*.xls)" & Chr$(0) & "*.xls" & Chr$(0) & _
"Programs (*.exe)" & Chr$(0) & "*.exe" & Chr$(0) & _
"DAT-Files (*.dat)" & Chr$(0) & "*.dat" & Chr$(0) & _
"Image-Files (*.jpg)" & Chr$(0) & "*.jpg" & Chr$(0) & _
"All Files (*.*)" & Chr$(0) & "*.*" & Chr$(0) & Chr$(0)


Select Case ext
Case "xls"
of.nFilterIndex = 4
Case "mda"
of.nFilterIndex = 2
Case "mdb"
of.nFilterIndex = 1
Case "mde"
of.nFilterIndex = 1
Case "exe"
of.nFilterIndex = 5
Case "dat"
of.nFilterIndex = 6
Case "jpg"
of.nFilterIndex = 7
Case Else
of.nFilterIndex = 8

End Select

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

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

of.lpstrInitialDir = InitDir
of.lpstrDefExt = ext

of.Flags = Flags 'OFN_FILEMUSTEXIST + OFN_PATHMUSTEXIST '+ OFN_EXPLORER
of.lStructSize = Len(of)
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 и подстановка имени файла в Access
    #32272749
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*А1:
А у тебя акцесс какой? Если 97, то ок. Иначе тебе в прошлом топике сказали, как проще получить имя файлы.
*ранен.
*Б1:
Функция выбора файла может возвратить и "", и Null (как написана), поэтому ее значение сперва желательно класть в переменную
MyStr=OpenFile(...)
if len(nz(MyStr,""))>0 then
DoCmd.TransferSpreadsheet ..., ..., ...,MyStr, ..., ...
else
msgbox "ФИК ТЕБЕ!"
endif
*ранен.
*Б3:
Сделай поиск на форуме по "Getz"
Найди функцию от уважаемых товарищей Гетц и Литвин. Ей можно подкладывать любые расширения, а не один из 8 вариантов. (опять же для 97)
*убит.
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32272757
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не "Б3", а "В1" :))\r
\r
Вот она:\r
/topic/46451
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32272781
Фотография beseder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня 2000 Access
какой пршлый топик ты имеешь ввиду?
Про импорт?
дык у меня проблема с FileDialog, который я не могу выбрать из предлагаемого , нетути его там.
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32272791
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тады
Редактор ВБА/меню Tools/References...
поставить галку возле
Microsoft Office 10.0 (9.0) Object Library
И усе будить.
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32272802
Фотография beseder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да есть галка! На 9.0
Только вот с File... есть только FileSearch.
И как это понимать?
Может переустановить?
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32272813
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А не знаю. :(
М.б. он только в 10 появился?
А хелп по FileDialog выскакивает? (у меня 2000-го нету рядом)
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32272822
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на сколько я знаю именно в 10 он и появился.
поставь десятку и наслаждайся.
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32272825
Kach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FileDialog появмлся в 2002 Акцесе только
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32272828
Фотография beseder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не-а. Только по FileSearch и вские там хелпы по использованию Import/Insert File Dialog Box. так что, наверное, надо другой Office?
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32272833
Фотография beseder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тааак. Постойте.
так что делать. Ставить другой Office или не ставить?
Если нет, то что с подстановкой имени файла в команду в Access 2000 ?
Как для 97 - не получится, (я правильно понял?)
А как в 2002 (т.е. с FileDialog) -тоже нет.
Тогда как?
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32272837
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получиться, как для 97. М. взять функцию из моей ссылки и разобраться с ней. Можешь всять свою, и разобраться с ней.
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32272840
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что за дурость тут творится?
чем тебя апишный вариант не устроил?
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32272847
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...пришел лесник и всех разогнал...
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32272872
Фотография beseder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нравится он мне, только вот compile erorr
can't find library : comdlg32.dll
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32272926
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32272930
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мда ...
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32272975
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гм.. это у меня случайно слова закончились
Где он у тебя на какую библиотеку ругается?
Имя файла проверь. Или путь полный ему укажи.
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32273112
Для вызова API функциий никаких дополнительных ссылок не нужно.
Достаточно в заголовке модуля объявить
[Private] Declare Function GetOpenFileName....
Затем ее можно использовать в процедурах этого (если Private), или других модулей.
А Вы, вероятно, втулили эти Declare между процедурами. :)

Приведенный выше пример должен нормально работать в А95-А2002 и других VB/VBA проектах. А метод FileDialog действительно появился только в А2002.
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32273285
Фотография beseder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем спасибо за помощь и не ругайтесь - я же только учусь :-(
Установил я 2002 , вызвал диалог (FileDialog).
Ну а дальше-то как имя выбранного файла подставлять в
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "new", ИМЯФАЙЛА?, True, ""
Что-то у меня не получается:-(((
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32273341
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нравится он мне, только вот compile erorr
can't find library : comdlg32.dll

Д.б. в \windows\system32. Может, кто-нить скажет, почему его там может не быть?

Установил я 2002.
Хороший способ программировать.
Тогда уж еще нажми F1 на FileDialog...
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32273394
RVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ты установил 2002, то теперь это должно работать:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Function Select_File()
Dim fd As FileDialog
Dim s
    
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    Dim vrtSelectedItem As Variant

    With fd
        If .Show = - 1  Then
            For Each vrtSelectedItem In .SelectedItems
                s = vrtSelectedItem
' ****Твоя строка
DoCmd.TransferSpreadsheet acImport,acSpreadsheetTypeExcel9, "new", s, True, "" 
' ****
            Next vrtSelectedItem
        End If
    End With
    Set fd = Nothing
End Function
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32273489
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
comdlg32.dll
нада просто зарегистрировать

и буджет диалог в 97
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32273701
Фотография beseder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>RVI
Спасибо огромное! Все получилось. Я, дурья голова, подставлял vrtSelectedItem впрямую.
...
Рейтинг: 0 / 0
API и подстановка имени файла в Access
    #32273767
RVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>beseder

Ну и что, хоть в прямую, хоть через переменную - должно работать!
Что-то ты мудришь...
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / API и подстановка имени файла в Access
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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