Crear una base de datos de documentos usando Microsoft Access
-
21-12-2019 - |
Pregunta
Estoy intentando crear una tabla dentro de una base de datos que almacene todos los documentos relacionados con la base de datos "en ella".Lo que realmente quiero hacer es cargar un archivo y tener un código vba que copie el archivo en una ubicación de red, cambie el nombre del archivo concatenando dos campos del formulario de la tabla de documentos (eliminando el problema de nombres de archivos duplicados en la ubicación externa). y luego almacena el nombre del archivo y la ruta del archivo en un campo de ruta del archivo en la tabla.Soy muy nuevo en acceso y vba, por lo que tengo dificultades para que todo funcione.El código que tengo actualmente está a continuación:
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
Parece que no puedo entender cómo moverme, cambiar el nombre concatenando los dos campos del formulario o almacenar la ruta en el campo de ruta de la tabla.He estado en los siguientes lugares para obtener la información que pude.
ms access busca el archivo y obtiene el nombre y la ruta del archivo
VBA para copiar un archivo de un directorio a otro
Actualmente estoy usando Microsoft Access 2010 y no deseo usar el tipo de campo de archivo adjunto debido a limitaciones de tamaño de la base de datos.Actualmente presiono un botón y aparece un explorador de archivos para navegar hasta el archivo que se está cargando, y la ruta y el nombre del archivo se ingresan en cadenas.Después de este punto estoy perdido.Si se necesita alguna otra información por favor hágamelo saber.Gracias de antemano por la ayuda.
Solución
Creo que su enfoque para gestionar los documentos es correcto.En la mayoría de los casos, no tiene mucho sentido almacenar documentos en la propia base de datos cuando el sistema de archivos es más adecuado para este trabajo.
Lo que está haciendo es bastante sencillo, pero la principal complejidad vendrá de la gestión correcta de las distintas rutas y nombres de archivos y de la extracción de la información correcta de ellos.
Puede resultar complicado si no utiliza algunas funciones auxiliares para diseccionar y recomponer las distintas partes de las rutas.
he creado un base de datos de muestra que tiene algunas funciones.Puede que no se ajuste exactamente a lo que necesita, pero puede probarlo fácilmente para adaptarlo a su caso particular.
La base de datos de muestra incluye una Tools
Módulo VBA que tiene algunas funciones útiles para dividir una ruta en sus constituyentes.
Básicamente, la base de datos tiene 2 formularios.
El formulario principal le permite configurar la ruta de red donde se guardarán los archivos.Luego puede seleccionar un número de cuenta predefinido (que figura en la lista Account
tabla) asociada con un documento, luego haga clic en el botón cargar.
Esto crea un nuevo registro en el Document
y abre un formulario donde puede editar el título del documento y hacer clic en un botón para cargar un archivo en el servidor.
El archivo seleccionado por el usuario se copia al servidor después de que se haya transformado su ruta.Supuse que el archivo mantendría su extensión original, el nombre del archivo cambiaría a ID
del Document
registrar dónde se guarda la información del archivo (como 5845.pdf
) y que la carpeta donde se guarda el archivo en el servidor sería el número de cuenta, de modo que un archivo fuente seleccionado por el usuario
C:\Users\user\Desktop\SuperSecretFile.pdf
se guardaría como, por ejemplo:
\\docserver\files\123-55547\5845.pdf
El formulario Principal también le permite actualizar un registro existente, abrir el archivo desde el servidor, abrir la carpeta del servidor donde se encuentra el archivo o incluso copiar el archivo del servidor nuevamente a la computadora del usuario con el nombre original del archivo.
Te dejaré jugar con eso.Déjame saber si tienes algún problema.