Ich kam über einen alten Beitrag, der die perfekte Lösung für meine Anforderung hatte - "Erstellen einer Dokumentdatenbank mit Microsoft Access" mit der Antwort von Renaud BomPuis in Form einer Beispieldatenbank (https://dl.dropboxusercontent.com/u/52900980/StackOverflow/SO25044339.accdb).Erstellen einer Dokumentendatenbank
Ich war in der Lage, den Quellcode für meine Bedürfnisse zu manipulieren und erfolgreich in meine Hauptdatenbank einzufügen. Das einzige Problem, das ich habe, ist, dass es für mich einen neuen Rekord an der falschen Stelle schafft. Wenn der Benutzer auf "Datei hochladen" klickt, wird ein neuer Datensatz erstellt und ein Formular geöffnet, um die Datei mithilfe des Dateidialogs auswählen zu können. Wenn der Benutzer jedoch seine Meinung ändert und auf "Abbrechen" klickt, wird der Datensatz bereits erstellt, enthält jedoch keinen Dateipfad.
Ich möchte nur in der Lage sein, einen neuen Datensatz zu erstellen, wenn der Benutzer es bestätigt, aber ich kann nicht scheinen, den Code in der richtigen Reihenfolge zu bearbeiten, damit es funktioniert.
Kann jemand bitte helfen? Danke vielmals.
EDIT: Code aus Kommentar
Private Sub btnUploadDoc_Click() ' Create a new record in the Documents table for the selected Works No
Dim DocID As Variant
Dim db As dao.Database
Dim rs As dao.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("tblDocuments", dbOpenDynaset, dbFailOnError)
With rs
.AddNew !WorksNo = cboWorksNo
.Update
.Move 0, .LastModified
DocID = !DocID
.Close
End With
Set rs = Nothing
Set db = Nothing
DoCmd.OpenForm "frmDocSelect", WhereCondition:="DocID=" & DocID
End Sub
Können zeigen Sie den Code auf Klick Schaltfläche Datei hochladen bitte? In unserem Firmennetz kann ich die db –
Private Sub downloaden btnUploadDoc_Click() "Erstellen Sie einen neuen Datensatz in der Tabelle Dokumente für den ausgewählten Arbeiten No Dim DocID As Variant Dim db Wie DAO.Database Dim rs Als dao.Recordset Set db = CurrentDb() Set rs = db.OpenRecordset ("tblDocuments", dbOpenDynaset, DbFailOnError) Mit rs .AddNew ! WorksNo = cboWorksNo .Update .Move 0, .LastModified DocID =! DocID . Schließen Ende mit Set rs = nichts Set db = Nothing DoCmd.OpenForm "frmDocSelect", WhereCondition: = "DocID =" & DocID End Sub – Chris
Ich gehe davon aus, dass Ihr Dokumentauswahlcode im Formular frmDocSelect ist. Sie sollten das auch posten (aber bearbeiten Sie Ihren ursprünglichen Beitrag und wickeln Sie den Code in Code-Tags ein - wie @Andre das letzte Mal für Sie getan hat). Ich denke, es ist wahrscheinlich einfacher, wenn Sie die Upload-Datei überprüfen, bevor Sie einen neuen Datensatz erstellen - und tun Sie dies einfach auf Ihrem aktuellen Formular - bevor Sie den neuen Datensatz öffnen – dbmitch