|
|
|
| Подскажите где можно почитать или посмотреть можно ли какими-либо средствами прикрепить текстовый файл к записи и при необходимости его смотреть. | |
|
| |
|
|
|
| В таблице создать новое поле, открыть таблицу, кликнуть правой кнопкой мыши на этом поле против нужной записи из списка выбрать Добавить объект...выбрать то что нужно добавить...поставить галочку Создать из файла и выбрать тот файл, который нужно подключить к данной строке в таблице. Успехов!! | |
|
| |
|
|
|
| можно попроще: добавить еще одно текстовое поле в таблицу. и в него добавлять путь к файлу | |
|
| |
|
|
|
| а можно по подробнее... т.к. программа сетевая и документы должны на храниться на общем ресурсе. | |
|
| |
|
|
|
| Подробнее некуда, просто откройте нужную таблицу с записями (в режиме Конструктор), создайте новое поле с именем например, SHABLON в поле Тип данных- выберете - (поле объекта OLE) и далее см. выше | |
|
| |
|
|
|
| P.S. Если ресурс сетевой, нужны соответствующие права. | |
|
| |
|
|
|
| Добрый день, а можно будет потом по этому полю в нужном месте сделать кнопку перехода? т.е. нажимая на кнопку машина будет искать указанный файл и открывать его? И как это сделать? | |
|
| |
|
|
|
| т.е. Вы хотит хранить в поле только ссылку на файл? а сам файл на диске? | |
|
| |
|
|
|
| аха.. причем переход в этот файл из базы сделать по кнопке | |
|
| |
|
|
|
| если вы в поле храните путь к некоему файлу
и хотите его открыть не заморачиваясь с типом открываемого файла (.txt/.doc/.xls/.jpg и тд.)
можно открыть его с помощью API ShellExecute, ShellExecute попытается найти программу зарегестрированную в системе для данного типа файла и откроет ваш файл в ней
т.е. .doc - в Wорде, .xls - в ёXеле и т.д.
Для этого в одном из модулей надо объявить API функцию ShellExecute
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
А в форме на кнопке у вас должно быть
...
ShellExecute Me.hwnd, "", sFile, "", "", 1
...
sFile - полный путь к файлу
Преварительно не плохо было бы проверить наличие файла
Если у вас файлы на сетевом ресурсе я бы хранил в поле только имя файла , а путь к ресурсу в отдельной табличке (в настройках приложения) | |
|
| |
|
|
|
| http://hiprog.com/index.php?option=com_content&task=view&id=647 | |
|
| |
|
|
|
| Лена, Светлана!
Все делается в два хода. Но сперва об организации:
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
(собственно обэтом я выше уже говорил) | |
|
| |
|
|
|
| )) спасибо конечно , но для меня как для чайника это сложновато)) я сделала через гиперссылку)) просто в первый раз она почему-то не работала.. | |
|
| |