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.

¿Fue útil?

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.

Main Form

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.

Document Upload form

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top