Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Возможность прикрепления файлов (doc) к записи (2000, 2003)?
 
 автор: lena   (22.01.2008 в 15:10)   личное сообщение
 
 

Подскажите где можно почитать или посмотреть можно ли какими-либо средствами прикрепить текстовый файл к записи и при необходимости его смотреть.

  Ответить  
 
 автор: Юка   (22.01.2008 в 16:40)   личное сообщение
 
 

В таблице создать новое поле, открыть таблицу, кликнуть правой кнопкой мыши на этом поле против нужной записи из списка выбрать Добавить объект...выбрать то что нужно добавить...поставить галочку Создать из файла и выбрать тот файл, который нужно подключить к данной строке в таблице. Успехов!!

  Ответить  
 
 автор: akkorn   (22.01.2008 в 17:33)   личное сообщение
 
 

можно попроще: добавить еще одно текстовое поле в таблицу. и в него добавлять путь к файлу

  Ответить  
 
 автор: lena   (23.01.2008 в 12:47)   личное сообщение
 
 

а можно по подробнее... т.к. программа сетевая и документы должны на храниться на общем ресурсе.

  Ответить  
 
 автор: Юка   (23.01.2008 в 16:29)   личное сообщение
 
 

Подробнее некуда, просто откройте нужную таблицу с записями (в режиме Конструктор), создайте новое поле с именем например, SHABLON в поле Тип данных- выберете - (поле объекта OLE) и далее см. выше

  Ответить  
 
 автор: Юка   (23.01.2008 в 16:35)   личное сообщение
 
 

P.S. Если ресурс сетевой, нужны соответствующие права.

  Ответить  
 
 автор: Светлана   (06.02.2008 в 12:42)   личное сообщение
 
 

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

  Ответить  
 
 автор: osmor   (06.02.2008 в 13:08)   личное сообщение
 
 

т.е. Вы хотит хранить в поле только ссылку на файл? а сам файл на диске?

  Ответить  
 
 автор: Светлана   (06.02.2008 в 13:10)   личное сообщение
 
 

аха.. причем переход в этот файл из базы сделать по кнопке

  Ответить  
 
 автор: egOrka   (06.02.2008 в 15:11)   личное сообщение
 
 

если вы в поле храните путь к некоему файлу
и хотите его открыть не заморачиваясь с типом открываемого файла (.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 - полный путь к файлу
Преварительно не плохо было бы проверить наличие файла
Если у вас файлы на сетевом ресурсе я бы хранил в поле только имя файла , а путь к ресурсу в отдельной табличке (в настройках приложения)

  Ответить  
 
 автор: osmor   (06.02.2008 в 15:28)   личное сообщение
 
 

http://hiprog.com/index.php?option=com_content&task=view&id=647

  Ответить  
 
 автор: akkorn   (06.02.2008 в 20:43)   личное сообщение
 
 

Лена, Светлана!
Все делается в два хода. Но сперва об организации:
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
(собственно обэтом я выше уже говорил)

  Ответить  
 
 автор: Светлана   (11.02.2008 в 18:26)   личное сообщение
 
 

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

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList