Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: akkorn
Лена, Светлана!
Все делается в два хода. Но сперва об организации:
1. Вы в базе храните имя файла, т.е. текст (например, файл1.txt)
2. Вы должны определиться, где следует искать файл:
-в папке с текущим файлом
-в папке с текущим файлом и подпапке (...\Files\)
-где-то на сервере.
Чтобы было проще конфигурить и в будующем можно было бы безболезненно менять местоположение файлов (всех)- создаем функцию PathToFiles и задаем в ней ей самой значение пути.
3. перед запуском необходимо проверить наличие файла, и если true- то запускаем, а если false- то говорим "а файла нема ((".

Приведу пример:

Option Compare Database
Option Explicit

'для FileUtils_IsFilePresent2()
Private Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" (ByVal pszPath As String) As Long

'для StartOfFile
Public Declare Function ShellExecute _
                Lib "shell32.dll" _
                Alias "ShellExecuteA" _
                (ByVal hwnd As Long, _
                ByVal lpOperation As String, _
                ByVal lpFile As String, _
                ByVal lpParameters As String, _
                ByVal lpDirectory As String, _
                ByVal nShowCmd As Long) As Long

Public Const SW_SHOWMAXIMIZED = 3
Public Const SW_SHOWDEFAULT = 10
Public Const SW_SHOWNOACTIVATE = 4
Public Const SW_SHOWNORMAL = 1


'для подстановки пути
Function PathToFiles() As String
PathToFiles = Application.CurrentProject.Path & "\Files\"
End Function


'проверка наличия файла
Function FileUtils_IsFilePresent2(ByVal strFileName As String) As Boolean
FileUtils_IsFilePresent2 = PathFileExists(strFileName)
End Function


'запуск файла
Function StartOfFile(strNameFile As String)
'Вызывается так
'StartOfFile("C:\Program Files\Adobe\Acrobat 5.0\Help\ENU\ACROBAT.PDF")
Dim intResult As Integer

intResult = ShellExecute(Application.hWndAccessApp, "open", strNameFile, 0, 0, SW_SHOWNORMAL)
If intResult = 31 Then
    MsgBox "Незарегестрированный тип файла", , "((("
End If
End Function


'основная рабочая функция
Function OpenFile1(Optional FileName As String)
If FileName = "" Then
MsgBox "Не задано имя файла..", , "Упс!"
GoTo End01
End If

If FileUtils_IsFilePresent2(PathToFiles & FileName) = True Then
StartOfFile (PathToFiles & FileName)
Else
MsgBox "    Данный          файл" & vbCrLf & "изволит отсутствовать..", , "' " & FileName & " '"
End If

End01:
End Function

'===========================================================================
'===========================================================================
'===========================================================================
'ЗАПУСК:
'OpenFile1(me.pole1.value)   либо
'OpenFile1("File1.txt")
'данный файл будет искаться в текущей папке
'и еще далее в папке Files.


Создаете новый модуль. Копируете туда ВСЕ ну и запускаете по кнопке как OpenFile1(me.pole1.value).

т.е. это выглядит так:

Private Sub Кнопка1_Click()
'OpenFile1 (Me.pole1.Value)
OpenFile1 ("File1.txt")
End Sub


Во! Наваял за 15 мин. Юзайте на здоровье!


====
Да! Те самые ДВА хода:
1- проверяем наличие файла
2- запускаем его при п.1=true
(собственно обэтом я выше уже говорил)


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.