Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2010, 10:55   #1
plusstick
 
Регистрация: 20.02.2010
Сообщений: 5
По умолчанию Поиск файла

Всем доброго времени суток.
Прошу помощи.
Мне нужно, чтобы при неком событии производился поиск отталкиваясь от определенной папки (от определенного уровня) по точному совпадению значения определенного поля на форме и имени файла (расширение значения не имеет) и полный путь этого файла вставлялся в другое поле на форме. Такое можно провернуть?
У меня есть кое-какой код, откопал в интернете:
Код:
Dim strAppPath As String
'сохраним путь базы
strAppPath = Application.CurrentProject.Path & "\"
' передадим полный путь
If Dir(strAppPath & "MyBase.mdb") <> "" Then
    MsgBox "Файл существует"
Else
    MsgBox "Файл не существует"
End If
или
Код:
' объявляем API для определения - есть ли файл
Private Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" (ByVal pszPath As String) As Long
 
Dim strAppPath As String

' сохраним путь базы
strAppPath = Application.CurrentProject.Path & "\"
 
If PathFileExists(strAppPath & "Нарушения_ПДД_data.mdb") = 1 Then
    ' Возвращает 1(файл существует) или 0 (файла нет) 
    MsgBox "Файл существует"
Else
    MsgBox "Файл не существует"
End If
или
Код:
'завернуть все это дело в оболочку в отдельном модуле:
 
' возвращает True(файл существует) или False(файла нет) 
Private Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" (ByVal pszPath As String) As Long

Public Function DoesFileExist(ByVal strPath As String) As Boolean
    DoesFileExist = PathFileExists(strPath)
End Function
 
'вызывается просто: 

MsgBox DoesFileExist("c:\autoexec.bat")
plusstick вне форума Ответить с цитированием
Старый 20.02.2010, 15:20   #2
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте plusstick.

"Мне нужно, чтобы..производился поиск отталкиваясь от определенной папки.." - речь о заданном каталоге?

"по точному совпадению" совпадение может быть только полным или это уже не "совпадает" а "содержит",
"..расширение значения не имеет.." - расширение это часть имени файла и если его игнорировать
речи о "полном совпадении" быть не может.

"..полный путь этого файла вставлялся в другое поле на форме..."
"Такое можно провернуть" если Вы учтёте все эти "детали" разместите в модуле подобный код, содержащий функцию
Код:
Public Const sPath = "C:\TEMP\" ' определенный уровень
Public Function sFullFile(oCtrl As Object) As String
If Len(Nz(oCtrl)) = 0 Then
ElseIf Not Len(Dir(sPath & oCtrl)) = 0 Then
    sFullFile = sPath & oCtrl
End If
End Function
данные в поле2 (другое поле) будет отображать источник (функция): =sFullFile(Поле1), который Вы зададите в свойствах поля "Данные"
Надеюсь у Вас всё получится.
Евгений.

Последний раз редактировалось Teslenko_EA; 21.02.2010 в 08:43.
Teslenko_EA вне форума Ответить с цитированием
Старый 21.02.2010, 10:22   #3
plusstick
 
Регистрация: 20.02.2010
Сообщений: 5
По умолчанию

Здравствуйте, Евгений.
Спасибо, что ответили. Я еще пока новичёк в Access'е и много чего не знаю. Да, речь идет о заданном каталоге, то есть заданный путь. Нужно по совпадению имени файла, исключая расширение, так как расширения прикрепляемых файлов в моей базе могут быть разными (jpg, pdf), а сами имена будут совпадать. В некой сетевой папке лежать все документы и схемы, и при вводе номера документа, идентифицируя его с именем файла он автоматически чтобы цеплял нужный файл. Либо можно по нажатию кнопки типа "Прикрепить".
Цитата:
данные в поле2 (другое поле) будет отображать источник (функция): =sFullFile(Поле1), который Вы зададите в свойствах поля "Данные"
извиняюсь, но я не совсем понял, что куда вставлять, в модуль я включил ваш код, а вот при каком событии, что писать не разобрался. Не могли бы вы уточнить, пожалуйста.
Вложения
Тип файла: rar base0.rar (14.6 Кб, 13 просмотров)
plusstick вне форума Ответить с цитированием
Старый 21.02.2010, 22:44   #4
WordVest
Пользователь
 
Регистрация: 21.02.2010
Сообщений: 36
По умолчанию

Эти проблемы решаются в основном с формами, которые поддерживают все проги MSO
WordVest вне форума Ответить с цитированием
Старый 22.02.2010, 11:09   #5
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте plusstick.
я позволил себе слегка подкорректировать Вашу конструкцию, для большей наглядности.
Евгений.
Вложения
Тип файла: rar base1.rar (20.8 Кб, 18 просмотров)

Последний раз редактировалось Teslenko_EA; 22.02.2010 в 13:12.
Teslenko_EA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск файла по контексту. (C#) Lena Eremina Помощь студентам 0 07.12.2009 18:45
Поиск определённого файла Flippp Общие вопросы C/C++ 3 23.06.2009 16:42
поиск файла Mihailhome Общие вопросы Delphi 1 25.05.2009 18:03
Поиск файла Cpluser Общие вопросы C/C++ 4 03.03.2009 11:30
Поиск файла БД D-mon БД в Delphi 12 29.05.2008 13:26