Frage

Ich versuche, eine Tabelle innerhalb einer Datenbank zu erstellen, in der alle mit der Datenbank verbundenen Dokumente „darin“ gespeichert werden.Was ich wirklich tun möchte, ist, eine Datei hochzuladen und VBA-Code zu haben, der die Datei an einen Netzwerkspeicherort kopiert, die Datei umbenennt, indem zwei Felder aus dem Dokumenttabellenformular verkettet werden (wodurch das Problem doppelter Dateinamen am externen Speicherort beseitigt wird). und speichert dann den Dateinamen und den Dateipfad in einem Dateipfadfeld in der Tabelle.Ich bin ein sehr neuer Access- und VBA-Neuling und habe daher Schwierigkeiten, alles zum Laufen zu bringen.Der Code, den ich derzeit habe, ist unten:

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

Ich bekomme anscheinend keinen Überblick darüber, wie man die beiden Felder aus dem Formular verschiebt, umbenennt, indem man sie verkettet, oder wie man den Pfad im Pfadfeld der Tabelle speichert.Ich war an den folgenden Orten, um so viele Informationen wie möglich zu erhalten

MS Access sucht nach einer Datei und ruft Dateinamen und -pfad ab

VBA zum Kopieren einer Datei von einem Verzeichnis in ein anderes

Ich verwende derzeit Microsoft Access 2010 und möchte aufgrund von Datenbankgrößenbeschränkungen nicht den Feldtyp „Dateianhang“ verwenden.Momentan drücke ich eine Taste und ein Datei-Explorer erscheint, der zu der hochzuladenden Datei navigiert, und der Pfad und der Dateiname werden in Zeichenfolgen eingegeben.Ab diesem Punkt bin ich verloren.Wenn weitere Informationen benötigt werden, lassen Sie es mich bitte wissen.Vielen Dank im Voraus für die Hilfe.

War es hilfreich?

Lösung

Ich glaube, Ihr Ansatz zur Verwaltung der Dokumente ist richtig.In den meisten Fällen macht es wenig Sinn, Dokumente in der Datenbank selbst zu speichern, wenn das Dateisystem dafür besser geeignet ist.

Was Sie tun, ist ziemlich einfach, aber die größte Komplexität liegt in der korrekten Verwaltung der verschiedenen Pfade und Dateinamen und dem Extrahieren der richtigen Informationen daraus.

Es kann schwierig werden, wenn Sie nicht einige Hilfsfunktionen verwenden, um die verschiedenen Teile der Pfade zu zerlegen und neu zusammenzusetzen.

Ich habe eine erstellt Beispieldatenbank das hat ein paar Funktionen.Entspricht möglicherweise nicht ganz Ihren Anforderungen, Sie können aber problemlos damit experimentieren, um es an Ihren speziellen Fall anzupassen.

Die Beispieldatenbank umfasst a Tools VBA-Modul, das über einige nützliche Funktionen verfügt, um einen Pfad in seine Bestandteile aufzuteilen.

Grundsätzlich hat die Datenbank 2 Formen.

Im Hauptformular können Sie den Netzwerkpfad festlegen, unter dem die Dateien gespeichert werden sollen.Anschließend können Sie eine vordefinierte Kontonummer auswählen (aufgelistet in). Account Tabelle), die mit einem Dokument verknüpft ist, und klicken Sie dann auf die Schaltfläche „Hochladen“.

Main Form

Dadurch wird ein neuer Datensatz erstellt Document Tabelle und öffnet ein Formular, in dem Sie den Dokumenttitel bearbeiten und auf eine Schaltfläche klicken können, um eine Datei auf den Server hochzuladen.

Document Upload form

Die vom Benutzer ausgewählte Datei wird nach der Pfadumwandlung auf den Server kopiert.Ich ging davon aus, dass die Datei ihre ursprüngliche Erweiterung behalten würde und der Dateiname in umbenannt würde ID des Document Aufzeichnen, wo die Dateiinformationen gespeichert sind (z. B 5845.pdf) und dass der Ordner, in dem die Datei auf dem Server gespeichert ist, die Kontonummer ist, sodass eine vom Benutzer ausgewählte Quelldatei vorliegt

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

würde zum Beispiel gespeichert werden als:

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

Mit dem Hauptformular können Sie auch einen vorhandenen Datensatz aktualisieren, die Datei vom Server öffnen, den Ordner des Servers öffnen, in dem sich die Datei befindet, oder sogar die Serverdatei unter dem ursprünglichen Namen der Datei zurück auf den Computer des Benutzers kopieren.

Ich lasse dich damit herumspielen.Lassen Sie mich wissen, wenn Sie irgendwelche Probleme haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top