Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Anhänge in Tabelle nur als Verknüpfung

Begonnen von Maximilian, Mai 12, 2020, 16:50:40

⏪ vorheriges - nächstes ⏩

Maximilian

Hallo Zusammen,

habe mal wieder ein Thema, wozu ich wahrscheinlich wieder "krude" Ideen zur Realisierung im Kopf habe. Sehr wahrscheinlich gibt es bessere Lösungen, weshalb ich hier nochmal fragen möchte.
Die Suche habe ich schon ausgereizt und zumindest mit meinen Suchkriterien nur herausbekommen, dass die Umsetzung in Access möglich, aber nicht direkt realisierbar ist.

In meiner Datenbank möchte ich auch Dateianhänge hinzufügen können. Die Datenbank selbst liegt lokal bei mir auf dem PC, die Dateianhänge auf verschiedenen Verzeichnissen in einem Netzwerklaufwerk.
Nun bietet Access ja die Möglichkeit "Anlage". Diese möchte ich allerdings nicht nutzen, da die Anlagen direkt in der Datenbank gespeichert werden und schnell die Datenbank-Größe zum Problem werden lassen. Zudem werden Änderungen der Originaldatei nicht automatisch übernommen.

Mein Ziel ist also eine Lösung, wie ich relativ einfach Datei-Verknüpfungen für mehrere Datensätze verwalten kann (anzeigen, hinzufügen, öffnen, löschen etc.). Wie gehe ich hier am besten vor?

Danke schonmal für eure Tips.
Maximilian

DF6GL

Hallo,


Du brauchst ein Konzept für die Verzeichnisstruktur, in der alle beteiligten Dateien abgelegt werden können/müssen.

Als erstees muss die DB in Frontend und Backend aufgeteilt werden.

Das BE (die Backend-Datei) kommt in ein Netzwerkverzeichnis zu liegen, auf das alle User volle Zugriffsrechte besitzen müssen.

Jeder User erhält eine Kopie der Frontend-Datei lokal gespeichert, die vom ihm gestartet wird.

Die Anlagen (verschiedene Dateien)  werden in eine noch zu klärende Verzeichnisstruktur abgelegt, wobei der komplette PfadDateiName als Text in der DB in einer entspr. Tabelle abgelegt wird.  Es sind URL-Pfade , keine Laufwerks-Mappings zu empfehlen.

Bilder können direkt in  einem  Bildsteuerelement angezeigt werden, für andere Dateien (z. B. Docx) und deren Bearbeitung, falls gewünscht, wird die dazu passende Anwendung (hier Word) bemüht.

Das "Verwalten" der Dateien erfolgt in einem Formular, das über einen Filedialog die Dateiauswahl einer abzulegenden Datei  oder das Öffnen von Dateien mit dem entspr. Bearbeitungsprogramm ermöglicht.




Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Maximilian

#2
Das ging ja mal wieder flott  :-*

Zitat von: DF6GL am Mai 12, 2020, 17:14:12
Die Anlagen (verschiedene Dateien)  werden in eine noch zu klärende Verzeichnisstruktur abgelegt, wobei der komplette PfadDateiName als Text in der DB in einer entspr. Tabelle abgelegt wird.  Es sind URL-Pfade , keine Laufwerks-Mappings zu empfehlen.

Auf dem Netzwerklaufwerk ist die Ordnerstruktur leider schon vorgegeben und nicht mit der Systematik der DB komplett übereinstimmend.

Zitat von: DF6GL am Mai 12, 2020, 17:14:12
Das "Verwalten" der Dateien erfolgt in einem Formular, das über einen Filedialog die Dateiauswahl einer abzulegenden Datei  oder das Öffnen von Dateien mit dem entspr. Bearbeitungsprogramm ermöglicht.

Den Filedialog habe ich auch schon gefunden und ausprobiert. Ein separates Formular ist auch schon angelegt. Okay ich sehe gerade, meine Frage ist doch zu allgemein gehalten gewesen.

Bisher habe ich eine Tabelle tblTrafostationen, wo meine eigentlichen Datensätze enthalten sind. Da jeder Datensatz mehrere Anhänge haben kann, habe ich nun eine zweite Tabelle tblAnhänge in Beziehung gesetzt zu tblTrafostationen.
Ein als Popup eingeblendetes Formular frmAnhänge ist mit dem Filedialog bestückt und gibt mir als Rückgabewert den Adresspfad des zu verlinkenden Dateianhangs zurück, den ich in die tblAnhänge schreiben kann. Nur wie bekomme ich von meinem frmAnhänge die Zuordnung zu meinem Datensatz in tblTrafostationen?

DF6GL

Hallo,

wenn die Beziehung besteht, dann füge das Form frmAnhänge als Unterformular in Form frmTrafostationen ein und verknüpfe das UFO-Steuerelement über die Schlüsselfelder.


ZitatAuf dem Netzwerklaufwerk ist die Ordnerstruktur leider schon vorgegeben und nicht mit der Systematik der DB komplett übereinstimmend.

Das ist auch nicht zwingend notwendig, es würde aber die Bedienbarkeit und Transparenz der DB verbessern.

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Beaker s.a.

Hallo Maximilian,
Ich würde auch Franz' Vorschlag mit dem UFo so umsetzen,
da du alle Anlagen auf einen Blick siehst. Möchte dir aber
zeigen, wie du das auch mit einem PopUp machen kannst.
Das PopUp hat als DS-Herkunft die Tabelle "tblAnhaenge"
mit dem Fremdschlüssel zu "tblTrafostationen" (TrafoID_F)
Das PupUp öffnest du vom Form mit den Stationen
DoCmd.OpenForm _
    FormName:="NameDeinesPopups", _
    DataMode:=acFormAdd, _
    WindowMode:=acDialog, _
    OpenArgs:=Me.TrafoID


Im PopUp hast du zwei Möglichkeiten den Wert in OpenArgs
zu verarbeiten
Private Sub Form_Load()
'1. bietet sich an wenn nur eine Anlage dazu kommt
    Me.txtTrafoID_F = Val(Me.OpenArgs)
'OpenArgs gibt immer einen String zurück, die ID ist aber vom Typ Long

2. wenn mehrere Anlagen hintereinander zugeordnet werden sollen
    Me.txtTrafoID_F.DefaultValue = Val(Me.OpenArgs)
End Sub

Me.txtTrafoID_F ist an den FK gebunden.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Maximilian

Zitat von: DF6GL am Mai 12, 2020, 18:51:00
wenn die Beziehung besteht, dann füge das Form frmAnhänge als Unterformular in Form frmTrafostationen ein und verknüpfe das UFO-Steuerelement über die Schlüsselfelder.
Stimmt das würde gehen, habe nur keinen Platz mehr für ein UFO  :(

@ekkehard: Top, das OpenArgs ist genau das was ich gesucht habe, danke. Können über OpenArgs auch zwei Argumente übergeben werden?

DF6GL

Hallo,

Du kannst einen beliebigen String als Openargs "übergeben", z. B. eine Liste von Kriterien-Werten.

Du musst nur dafür sorgen, dass der String wieder korrekt im Form-Open-, bzw. Form-Load-Ereignis aufgesplittet wird.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Maximilian

Okay, verstehe. Das Zusammenfügen meiner zu übergebenen Kriterien ist klar, einfach die Strings mit einem Trennzeichen zusammenfügen.
Nur wie bekomme ich die Kriterien wieder separiert, oder anders gefragt: Wie trenne ich den übergebenen String am gesetzten Trennzeichen wieder auf?

Maximilian

#8
Für alle die eventuell mitlesen als Info:
Eine Lösung die ich nun gefunden habe ist die in VBA enthaltene Funktion split()

https://docs.microsoft.com/de-DE/office/vba/Language/Reference/User-Interface-Help/split-function

DF6GL

Hallo,

habe ich geschrieben:

Zitatbzw. Form-Load-Ereignis aufgesplittet wird.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access