Domanda

Sto tentando di creare una tabella all'interno di un database che memorizza tutti i documenti relativi al database "in esso". Quello che voglio davvero fare è avere un file caricato e avere un codice VBA che copia il file in una posizione di rete, rinomina il file concatenando due campi dal modulo della tabella dei documenti (eliminando il problema dei nomi dei file duplicati nella posizione esterna), E poi memorizza il nome del file e il percorso del file in un campo del percorso del file nella tabella. Sono molto nuovo per accedere e VBA, quindi sto avendo difficoltà a far funzionare tutto. Il codice che attualmente è qui sotto:

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
.

Non riesco a sembrare una maniglia su come muoversi, rinominare concatenando i due campi dal modulo o memorizzare il percorso nel campo del percorso della tabella. Sono stato alle seguenti località per ottenere quali informazioni ho potuto

MS Access Browse per il file e ottenere Nome file e percorso

VBA per copiare un file da una directory a un altro

Attualmente sto utilizzando Microsoft Access 2010 e non desidero utilizzare il tipo di campo Allegato file a causa dei limiti di dimensioni del database. Attualmente premo un pulsante e viene visualizzato un file Explorer per navigare sul file, e il percorso e il nome del file sono inseriti in stringhe. Dopo questo punto sono perso. Se sono necessarie altre informazioni, fammi sapere. Grazie in anticipo per l'assistenza.

È stato utile?

Soluzione

Credo che il tuo approccio alla gestione dei documenti sia giusto. Nella maggior parte dei casi, non ha molto senso memorizzare i documenti nel database stesso quando il filesystem è più adatto a questo lavoro.

Cosa stai facendo è abbastanza semplice ma la complessità principale verrà dalla corretta gestione dei vari percorsi e dei nomi dei file e estraendo le informazioni giuste da loro.

Può diventare difficile se non stai usando alcune funzioni di aiutante da sezionare e ricomporre i vari bit dei percorsi.

Ho creato un Database di esempio che ha alcune funzioni . Potrebbe non essere esattamente in linea con ciò di cui hai bisogno, ma puoi facilmente giocare con esso per adattarlo al tuo caso particolare.

Il database di esempio include un modulo VBA Tools che ha alcune funzioni utili per dividere un percorso nei suoi componenti.

Fondamentalmente, il database ha 2 moduli.

Il modulo principale consente di impostare il percorso di rete in cui i file devono essere salvati. È quindi possibile selezionare un numero di account predefinito (elencato nella tabella Account) associata a un documento, quindi fare clic sul pulsante Carica.

Form principale

Questo crea un nuovo record nella tabella Document e apre un modulo in cui è possibile modificare il titolo del documento e fare clic su un pulsante per caricare un file sul server.

Documento Carica modulo

Il file selezionato dall'utente viene copiato sul server dopo che il suo percorso è stato trasformato. Ho preso il presupposto che il file manterrebbe la sua estensione originale, il nome file sarebbe rinominato con il ID del record Document in cui vengono salvate le informazioni del file (come 5845.pdf) e che la cartella in cui il file viene salvato sul server sarebbe il Numero di conto, in modo che un file sorgente selezionato dall'utente

C:\Users\user\Desktop\SuperSecretFile.pdf
.

verrebbe salvato come, ad esempio:

\\docserver\files\123-55547\5845.pdf
.

Il modulo principale consente inoltre di aggiornare un record esistente, aprire il file dal server, aprire la cartella del server in cui il file si trova o anche copiare il file del server sul computer dell'utente con il nome originale del file.

Ti farò giocare con esso. Fammi sapere se hai qualche problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top