powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / база данных со ссылками на файлы
25 сообщений из 98, страница 1 из 4
база данных со ссылками на файлы
    #38623008
Inna86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Надеюсь, вы сможете помочь девушке.
Хочу немного упорядочить мою работу с документами. До этого момента использовала иксель, но он в этом плане очень неудобен, когда много документов.
Потихоньку осваиваю аксесс. Стандартные таблицы, формы и запросы у меня не вызывают вопросов. А вот ВБА пока что совсем дебри.
Но надеюсь, что вы мне поможете.

Есть БД.
В папке с БД есть папка files (здесь все файлы, пдф, изображения, doc, xls и прочее).
Хотелось бы, чтобы я могла вызвать из формы диалоговое окно для выбора файлов.
После выбора файла он должен быть скопирован в папку files, а в таблицу ссылок записывается название файла.
Далее в своих таблицах в подстановочном поле я ссылаюсь на те документы, которые относятся к нужным записям.
В итоге в форме, где я буду просматривать соответствующие записи я буду видеть прикрепленные к записи документы.
И нажатие на ссылку должно открыть документ. При вызове документа нужно учитывать, что файлы находятся на флешке, а значит путь к БД меняется, то есть путь к БД всегда должен определяться программно, точный путь заранее неизвестен.

Мда. Сумбурно получилось. Но я не технарь, простите.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38623023
Фотография гурД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inna86,

вам это всё нужно объяснить, показать похожий пример или в вашем файле? )
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38623066
Inna86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот пока пример того, что я хочу сделать. надеюсь он будет понятней, чем мое описание. свою начальную бд пока не стала трогать, а то запутаюсь.
Если можно, мне на примере.
Думаю, Вам придется долго мне объяснять, а так я посмотрю как сделано и хоть примерно пойму, как это делается. Все равно это изучать нужно, что я и собираюсь сделать. Думаю, за годик для своих нужд я смогу изучить vba. И очень надеюсь на помощь Вашего форума в этом. Постараюсь слишком много не просить. В конце концов, сама хочу понять как и что делается.
Сейчас хочется начать хотя бы с минимальных моих потребностей, чтобы работать было проще. А дальше по необходимости.

Спасибо, что отзвались.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38623912
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inna86,

Немного сделал по другому...
Для каждого документа свой набор файлов (даже если это один и тот же файл). Файлы копируются в папку files , но не под оригинальным именем, а с новым - Document_DocID_FileID , где Document префикс, DocID - код записи документа по БД, FileID - код записи прикреплённого файла. Это сделано для того, что бы избежать конфликта имён. И так проще рулить файлами, ИМХО.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38623913
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inna86...Далее в своих таблицах в подстановочном поле ...Выделенным не пользуйтесь, хотябы пока... Это часто вызывает недоразумения. В таблицы напрямую не рекомедуется смотреть, пользуйтесь формами, стало быть пусть будут просто данные в полях, без подстановок. ИМХО
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38623928
Фотография гурД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inna86вызвать из формы диалоговое окно для выбора файлов.
После выбора файла он должен быть скопирован в папку files, а в таблицу ссылок записывается название файла.

- Должна быть добавлена библитека Microsoft Office ... Library (Alt+F11 - Tools - References)
-
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
Private Sub Кнопка12_Click()

'    ПЕРЕМЕННЫЕ

    Dim strFileName As String 'полного пути к выбранному файлу
    Dim intResult As Integer  '
    
    Dim strIns As String 'текста запроса SQL на добавление (вставку)
    Dim fso As Object    'объекта FileSystemObject
    Dim f As Object      'объекта File, входящего в FileSystemObject
    
'    ВЫПОЛНЕНИЕ (FileDialog - объект, инициализируемый динамически, без переменной)

    With Application.FileDialog(msoFileDialogFilePicker)
    
        .AllowMultiSelect = False                       'только один файл
        .InitialFileName = "C:\Users\Андрей\Desktop"    'начальная директория поиска
'        .InitialFileName = CurrentProject.Path & "\files\"
        intResult = .Show
        If (intResult <> 0) Then
            strFileName = Trim(.SelectedItems.Item(1)) 'обрезаем пробелы с обеих сторон названия файла
'            текст запроса:
            strIns = "INSERT INTO FileNames (filenamesWithExtensions) VALUES ('" & strFileName & "');"
'            выполнение запроса из кода VBA:
            CurrentDb.Execute strIns
'            инициализация объекта FileSystemObject
            Set fso = CreateObject("Scripting.FileSystemObject")
            'инициализация его "под-объекта" File:
            Set f = fso.GetFile(strFileName)
'            метод Copy объекта File:
'            первый аргумент - целевой каталог
'            (св-во текущ каталог + папка + св-во объекта File, возвращающее только его имя из полного пути),
'            второй аргумент - не заменять файл, если уже существует:
            f.Copy CurrentProject.Path & "\files\" & f.Name, False
'            освобождение памяти от инициализированных объектов:
            Set fso = Nothing: Set f = Nothing
                
        End If
    End With

End Sub

...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38624394
Inna86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, мальчики.
Пища для размышлений большая. Вот сижу, разбираюсь. Даже что-то получается, но нужно несколько дней.

Единственное, уважаемый Панург, в Вашем варианте Вы предлагаете переименовывать файлы. Но суть как раз в том, что мои файлы для удобства поиска и работы с ними (удобство именно для меня) имеют название вида: НазваниеДокумента_НомераДокумента_ДатаДокумента_Налоговая. Разделители - нижнее подчеркивание. Отказываться от названий не хочу потому, что не всегда я буду пользоваться базой, иногда просто нужно найти нужный файл. То есть я хочу все свои файлы перевести в свою БД, чтобы в БД имею о них всю инфу, пометки, задачи и прочее, а в папке files я смогу их искать при необходимости.
Но эту задачу я попробую сама выполнить. Ваш код меня наставил на путь.
Я еще хочу, чтобы при копировании названия файла, его название также копировалось в другую таблицу, где бы в 4 столбца попадала бы информация, разделенная разделителями. Но тут я сама попробую что-то изобразить.

Спасибо большое за помощь Панургу и ГурДу. Дальше мне надо самой поразбираться. Так как раз БД я делаю сама, то и должна понимать, что и как там вообще происходит.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38624506
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inna86,

авторПосле выбора файла он должен быть скопирован в папку files

эта фраза меня весьма смутила
у вас может появиться несколько версий одного файла

мое видение задачи
таблицаструктуратаб1ид1-название задачи-описание задачитаб2ид2-ид1-ссылки на оригиналы прикрепляемых файловтаб2стаблица свободных(не прикрепленных) файлов, возможно эту функцию можно перенести на таб2 с флажком+динамический поиск
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38625176
Inna86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, ПЕНСИОНЕРКА. Надо обдумать.

Подскажите пожалуйста еще одну вещь. Я тут пробую разные варианты, которые мне могли бы подойти.
Один из них - это открывать файл таким образом (команду увидела в коде Панурга и вот сижу изучаю, как ее еще можно использовать):
Application.FollowHyperlink CurrentProject.Path & "select tblFolder.FolderName where ID=1" & Me.AttachedFiles.value
пробовала по-разному, не получается. пытаюсь читать книжку, пока каша.
FolderName - это поле в таблице tblFolder, где находится наименование папки.
Me.AttachedFiles.value - это по идее должно быть название файла из поля, которое в данный момент в ленточной форме активно.
Голова кругом. Нужна ли мне вообще эта база данных? или по старинке все делать. Сегодня только и сижу, что VBA изучаю
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38625252
Inna86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый Панург, поняла, что долго я буду мучаться. Ваш вариант прям уже и использовать можно. Но не могли бы Вы сделать, чтобы имена файлов не переименовывались и чтобы я могла сразу выбрать несколько файлов, которые бы подряд вставились бы в таблицу?

Вообще, я хочу, чтобы моя бд хотя бы начала использоваться (основные нужные мне функции стандартными средствами я сделала), для этого я все мои файлы загоню в папку FILES, причем все файлы имеют уникальные названия. Хотелось бы просто одним выделением загнать их в базу данных, а там уже распределить по нужным записям. Вот как я хочу. Хоть одно четкое понимание появилось.

Извините, если я достала. У самой уже каша в голове. Я то знаю, чего хочу, то не знаю. Если бы у меня была такая возможность, как я написала, я бы хотя бы уже пользовалась бд, а не этим икселем. А дальше уже спокойно бы начала изучать VBA.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38625361
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС, я настоятельно рекомендую вам полностью поменять свою концепцию. Чтобы было удобно искать файлы делать это можно/нужно исключительно через вашу оболочку. Средства аксеса по представленю файлов в иерархическом виде, в виде таблицы есть. У меня в аналогичной задачке по мере набора имени файла в табличной форме автоматически позиционируется запись, содержащая вводимый образец. При нажатии на фильтр в списке остаются только файлы со строковым образцом в имени. Гораздо быстрее и эффективнее, чем файловый менеджер. Если нужна наглядност представления файлов по рубрикам, то используйте тривью. Причем таких параллельный рубрикаторов может быт больше одного, т.е. файл может быть в нескольких ветках дерева одновременно.

Ну и еще один шаг - отказаться от хранения файлов в файловой структуре, переложить их в оле поля таблиц БД. У такого решения есть и плюсы и минусы, не буду категорически советовать сделать именно так.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38625486
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-Л,

авторотказаться от хранения файлов в файловой структуре, переложить их в оле поля таблиц БД

это видимо сильно зависит от
--количества прицепляемых файлов
--их размера
--дорабатываются ли они после прицепления
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38625499
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня крутилось на MS SQL (соответсвено adp) решение. Количество файлов - тысячи (десятки тысяч). Файлы, хранящиеся в оле полях, запускаются в "родной" программе одним кликом.
Помимо "готовых" вложенных файлов было много генерируемых по шаблонам.
В качестве дополнительной опции вордовские и эксельные файлы после обновления в базе автоматически обновляли свой файловый "первоисточник" из которого были загружены. Т.е. при работе через оболочку собсно "файловые файлы" всегда были аптудейт.
Еще одна мощная и крайне полезная фишка для генерируемых файлов - гибкая настройка путей и правил формирования имен файлов при их формировании. Т.е. при формировании договора можно было разложить их по папкам, соответсвующим типам договоров, далее - по подпапкам по имени контрагента. А можно сформировать имя вида <Тип договора>_<Имя контрагента>_договор.doc все в одной папке.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38625543
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторХочу немного упорядочить мою работу с документами.
...............
Есть БД.
В папке с БД есть папка files (здесь все файлы, пдф, изображения, doc, xls и прочее).
..
И нажатие на ссылку должно открыть документ.
При вызове документа нужно учитывать, что файлы находятся на флешке,
а значит путь к БД меняется, то есть путь к БД всегда должен определяться программно,
точный путь заранее неизвестен.


П-ЛУ меня крутилось на MS SQL (соответсвено adp) решение.

.

вопрос человека, привыкшего работать в конфигурации,
принимаемой в организации на довольно длительное время в качестве стандарта

соответствуют ли конфигурации этих двух систем
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38625879
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inna86,

Переделал слегка по твои пожелания... Надеюсь всё будет понятно.

А фото где в профиле? Без него в следующий раз помогать не буду!
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38625959
Inna86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Теперь фото есть. Месячной давности. Теперь помогать будешь?

Но я и сама постараюсь не задавать слишком много вопросов.

Спасибо большое
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38625988
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inna86Теперь фото есть. Месячной давности.Замечательное фото.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38626354
Фотография гурД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Инна, наоборот, спрашивайте, что не ясно, не стесняйтесь. Насколько я знаю, здесь только будут рады помочь
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38626355
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
просто для порядка :)
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38626365
Фотография гурД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inna86 чтобы я могла сразу выбрать несколько файлов, которые бы подряд вставились бы в таблицу
То есть, чтобы в окне диалога выбора файлов можно было бы выбирать сразу несколько (.allowmultiselect=true)?

Ищите книги по VBA, удобно читать, например, в транспорте. Среди прочих у меня есть такая:
Кузьменко В.Г. VBA 2003. Самоучитель. - Москва, ООО "Бином-Пресс", 2010.
Такие книги вполне реально, думаю, купить не только в магазине, но и на развале или в букинисте...
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #38626994
Вот читаю. Вопросов нет, точнее их слишком много. Рано задавать, а то получится урок какой-то.
Я пока первоначально сделала, что хотела стандартными средствами, загрузку с Вашей помощью, а далее нужно смотреть, изучать и думать, надо мне это все вообще или нет.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
база данных со ссылками на файлы
    #39491272
Финист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Апп...
ПанургInna86,

Немного сделал по другому...
Для каждого документа свой набор файлов (даже если это один и тот же файл). Файлы копируются в папку files , но не под оригинальным именем, а с новым - Document_DocID_FileID , где Document префикс, DocID - код записи документа по БД, FileID - код записи прикреплённого файла. Это сделано для того, что бы избежать конфликта имён. И так проще рулить файлами, ИМХО.

Очень класный код. Я плохо в этом разбираюсь, но постараюсь адаптировать для своей базы.
Но вопрос в другом. Можно ли как то сделать, что бы в таблицу вставлялись гиперссылки на новые изображения? Смысл в том, что бы кликабельные ссылки на эти изображения вставлялись в запрос. Или может другие способы есть?
Был бы очень признателен за ответ.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39494883
Финист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПанургInna86,

Немного сделал по другому...
Для каждого документа свой набор файлов (даже если это один и тот же файл). Файлы копируются в папку files , но не под оригинальным именем, а с новым - Document_DocID_FileID , где Document префикс, DocID - код записи документа по БД, FileID - код записи прикреплённого файла. Это сделано для того, что бы избежать конфликта имён. И так проще рулить файлами, ИМХО.

Подскажите пож., как сделать в данном примере:
1. Что бы нофый файл сохранялся под именем Text_DocID_FileID? где Text - значение текстового поля записи документа по БД.
2. Что бы в форме отображались не старые наименованя файлов, а новые.
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39495119
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Финист,
...
Рейтинг: 0 / 0
база данных со ссылками на файлы
    #39496373
Финист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

Большое спасибо! Всё работает!
...
Рейтинг: 0 / 0
25 сообщений из 98, страница 1 из 4
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / база данных со ссылками на файлы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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