Создание базы данных документов с помощью Microsoft Access
-
21-12-2019 - |
Вопрос
Я пытаюсь создать таблицу в базе данных, в которой будут храниться все документы, связанные с базой данных.Что я действительно хочу сделать, так это загрузить файл и иметь код vba, который копирует файл в сетевое расположение, переименовывает файл путем объединения двух полей из формы таблицы документов (устраняя проблему повторяющихся имен файлов во внешнем расположении), а затем сохраняет имя файла и путь к файлу в поле пути к файлу в таблице.Я новичок в доступе и vba, поэтому мне трудно заставить все работать.Код, который у меня сейчас есть, приведен ниже:
Option Compare Database
Private Sub Command15_Click()
Dim f As Object
Set f = Application.FileDialog(3)
f.AllowMultiSelect = False
If f.Show Then
For i = 1 To f.SelectedItems.Count
sFile = Filename(f.SelectedItems(i), sPath)
MsgBox sPath & "---" & sFile
Next
End If
End Sub
Public Function Filename(ByVal strPath As String, sPath) As String
sPath = Left(strPath, InStrRev(strPath, "\"))
Filename = Mid(strPath, InStrRev(strPath, "\") + 1)
End Function
Кажется, я не могу понять, как перемещать, переименовывать путем объединения двух полей из формы или сохранять путь в поле пути таблицы.Я посетил следующие места, чтобы получить всю информацию, которую мог
MS Access найдите файл и получите имя и путь к файлу
VBA для копирования файла из одного каталога в другой
В настоящее время я использую Microsoft Access 2010 и не хочу использовать тип поля вложения файла из-за ограничений размера базы данных.В настоящее время я нажимаю кнопку, и появляется проводник для перехода к загружаемому файлу, а путь и имя файла вводятся в строки.После этого момента я теряюсь.Если нужна какая-либо другая информация, пожалуйста, дайте мне знать.Заранее спасибо за помощь.
Решение
Я считаю, что ваш подход к управлению документами правильный.В большинстве случаев нет особого смысла хранить документы в самой базе данных, если файловая система больше подходит для этой задачи.
То, что вы делаете, довольно просто, но основная сложность связана с правильным управлением различными путями и именами файлов и извлечением из них нужной информации.
Это может оказаться затруднительным, если вы не используете некоторые вспомогательные функции для анализа и перекомпоновки различных частей путей.
Я создал образец базы данных у которого есть несколько функций.Возможно, это не совсем то, что вам нужно, но вы можете легко поиграть с ним в соответствии с вашим конкретным случаем.
Пример базы данных включает в себя Tools
Модуль VBA, который имеет несколько полезных функций для разделения пути на составляющие.
По сути, база данных имеет 2 формы.
Основная форма позволяет указать сетевой путь, по которому будут сохраняться файлы.Затем вы можете выбрать заранее определенный номер счета (указанный в Account
таблица), связанная с документом, затем нажмите кнопку загрузки.
При этом создается новая запись в Document
table и открывает форму, в которой вы можете отредактировать заголовок документа и нажать кнопку, чтобы загрузить файл на сервер.
Выбранный пользователем файл копируется на сервер после преобразования его пути.Я предположил, что файл сохранит исходное расширение, имя файла будет переименовано в ID
принадлежащий Document
запись, где сохраняется информация о файле (например, 5845.pdf
) и что папка, в которой файл сохраняется на сервере, будет иметь номер учетной записи, так что исходный файл, выбранный пользователем
C:\Users\user\Desktop\SuperSecretFile.pdf
будет сохранено, например, так:
\\docserver\files\123-55547\5845.pdf
Основная форма также позволяет обновить существующую запись, открыть файл с сервера, открыть папку сервера, в которой находится файл, или даже скопировать файл сервера обратно на компьютер пользователя с исходным именем файла.
Я позволю тебе поиграть с этим.Дайте мне знать, если у вас возникнут какие-либо проблемы.