Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Anlage aus Listenfeld laden

Begonnen von Dipar, Januar 28, 2016, 11:00:54

⏪ vorheriges - nächstes ⏩

Dipar

Hallo ihr lieben,
bin noch ziemlicher VBA Neuling und habe gerade ein Problem mit einem Listenfeld. In dem Listenfeld sind unterschiedliche Felder und unteranderem auch ein Anlagenfeld (das Listenfeld bekommt seine Daten aus einer Tabelle).
Nun möchte ich eine Ereignisprozedur starten, die beim Klicken auf das Listenfeld die entsprechende Anlage läd. Mir ist da so etwas geistreiches wie:
Private Sub Liste1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.Anlagen.Open
End Sub

eingefallen was leider nicht funktioniert.
Habe auch schon einige Zeit mit Suchen verbracht und nichts so wirklich passendes gefunden. Jemand von euch eine Idee wäre echt super:)

Grüße Dipar

Dipar


MaggieMay

Hallo,

kommt ganz darauf an, wie du dir dieses "Laden" vorstellst. Am einfachsten dürfte die Anzeige per Formular sein, d.h. entweder du öffnest ein PopUp-Formular mit dem ausgewählten Datensatz oder du zeigst die Anlage im aktiven Formular an. Wenn du die Anlage als Datei öffnen willst, musst du sie ja erstmal "exportieren" - auch das geht wohl, müsstest du aber mal nach googeln.
Freundliche Grüße
MaggieMay

Dipar

Also es gibt ja nen Anlagefeld wo dann schon entsprechende Daten hinterlegt sind(in der Tabelle auf die sich das Listenfeld bezieht). Aber im Listenfeld gibt es ja leider keine Büroklammer oder ähnliches wo man den entsprechenden Datensatz her raus aufrufen kann.
Deswegen ne Prozedur, die dann beim Klicken auf den Datensatz am besten den entsprechenden Datensatz sofort öffnet.

MaggieMay

ZitatAber im Listenfeld gibt es ja leider keine Büroklammer
...eben drum schlug ich dir das Öffnen des Datensatzes via Formular vor.
Freundliche Grüße
MaggieMay

DF6GL

Hallo,

ich befürchte, Du verstehst "Anlage" nicht...

Eine Anlage ist kein "Datensatz" der DB, eher ein in die Tabelle eingefügtes (abgespeichertes) Dokument, das mit einem anderen Programm erstellt wurde, z. B. ein Excel-Sheet, eine Bild-Datei oder sonst was "Datenbank-Fremdes"...

Also lies nochmal den Post von MaggieMay und setze den passend um....
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

Dipar

Hey MaggieMay und DF6GL,

erst einmal Danke für den Input!!!
Aber ich glaube ich verstehe das schon. Nen popup Formular öffnen iwie über den Befehl "docmd.openform", aber das finde ich nicht allzu elegant wenn ich ehrlich bin. Es wär schon cool wenn nen ähnlicher Dialog entstehen würde, wie wenn ich bei einem normalen Formular auf das Anlagefeld drücke und ich dann mit dem Doppelklick die Anlage in ihrer entsprechenden Software Anwendung öffnen könnte (z.B. Word, Adobe Reader...). Das mit dem exportieren verstehe ich nicht ganz weil das ja auch so im normalen Formular klappen würde.
Wie würdest du dir das denn mit dem öffnen im aktiven Formular vorstellen?

Grüße Dipar

DF6GL

Hallo,

mit einem Listenfeld ist das halt so ohne Weiteres nicht möglich....

Was hindert Dich denn daran, das Listenfeld durch ein entspr. formatiertes Endlosform zu ersetzen?
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 Dipar,
FollowHyperlink sollte dein Freund sein.
Und zeige Mal die Abfrage, die hinter dem Listenfeld steckt.
Oder verwende gleich das zum Datentyp (Anlage) passende Steuerelement (heisst genauso).

@Maggie/Franz
Ein Anlagefeld gibt es erst seit A2007. Ist einer dieser neuen "Datentypen", und ist genauso hässlich wie diese Mehrwerte-Felder. Dahinter liegt eine 1:n-Tabelle (intern).
Man kann darauf ein RS öffnen, und es gibt ein passendes Control (siehe oben), wie ich der OH entnommen habe.

Ich würde empfehlen, diese Tabelle selber anzulegen und zu verknüpfen. Muss man zwar evtl. ein eigenes UFo dazu anlegen, aber das Laden in der zugehörigen Anwendung funzt dann per FollowHyperlink auch aus dem Listenfeld heraus.
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)

MaggieMay

Hi,
Zitat@Maggie/Franz
ich denke schon, dass wir wissen was ein Anlagefeld ist und mit FollowHyperlink wirst du da wohl nichts ausrichten können, da die Anlage ja eben nicht in Dateiform vorliegt.
Freundliche Grüße
MaggieMay

DF6GL

Hallo Ekkehard,

das ist mir schon bewußt/bekannt    :P  ;)

FollowHyperlink direkt auf das Listenfeld (die Listenfeld-Spalte) angewendet bringt wohl nichts.  Die Lösung mit einem Recordset2 ginge zwar, aber ich denke, das wäre dem TS zu kompliziert, wenn schon ein "Docmd.Openform" zu "unelegant" ist und er das Access-interne "Anlage-Verwaltungsfenster" wünscht.


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,
'tschuldigung, wollte nicht naseweis sein. Es gibt aber hier und dort  Regulars, die immer noch mit A2003 arbeiten, oder sich zumindest damit nicht auskennen (weil sie es nicht verwenden, so wie ich).

@Maggie
Zitatmit FollowHyperlink wirst du da wohl nichts ausrichten können, da die Anlage ja eben nicht in Dateiform vorliegt.
Nee, ist klar, mit dem Anlagefeld geht das nicht, aber eben WEIL die Anlage als, eine Art Kopie des Originals (habe ich jedenfalls so verstanden), gespeichert wird, und NICHT der Pfad.

@Franz
ZitatFollowHyperlink direkt auf das Listenfeld (die Listenfeld-Spalte) angewendet bringt wohl nichts
Ja, weil wahrscheinlich nicht der RS des Anlagefeldes die Datenherkunft ist, sondern die Tabelle/Abfrage mit dem Feld an sich.
Wie gesagt, würde ich, wenn's dann unbedingt dieser "Datentyp" sein soll, empfehlen sich mit dem passenden Control zu beschäftigen (ich bin da jetzt zu faul). Das sollte doch eigentlich passende Eigenschaften/Methoden zur Verfügung stellen.
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)

DF6GL

Hallo Ekkehard,

ja, wir reden letztendlich am Thema vorbei...  ;)

Zitatsich mit dem passenden Control zu beschäftigen

Klar, das wurde ja auch schon angesprochen:  Das Textfeld im Formular, das an das Anlagenfeld gebunden ist.  In meinem Vorschlag (Formular als Listenfeldersatz) wird genau dieses praktiziert.  Dieses St.-El. hat die Eigenschaft "Value", die im Gegensatz zu "normalen" Textfelder nicht den Wert, sondern einen Recordset vom Typ Recordset2 beinhaltet.

Dahinter liegt eine interne n-Tabelle (sieht man z. B. im Beziehungsfenster) , die sozusagen die Verschlimmbesserung einer expliziten  1-n-Tabellenbeziehnung darstellt und die eben auch ein Binary- Feld enthält , in dem die Binärdaten der Anlagedateien hinterlegt werden.

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

MaggieMay

#13
ZitatDas Textfeld im Formular, das an das Anlagenfeld gebunden ist.
Naja, so kann man das nun wirklich nicht sagen, das ist eben kein Textfeld, sondern ein Anlagenfeld.

Zitat von: Dipar am Januar 29, 2016, 13:13:16
Wie würdest du dir das denn mit dem öffnen im aktiven Formular vorstellen?
Du könntest das Formular an die Tabelle oder Abfrage binden und bei Auswahl im Listenfeld auf den markierten Datensatz springen. Dann wird dir die Anlage je nach Datentyp direkt angezeigt oder du musst das Feld anklicken, um zur Auswahlmaske zu kommen.
Freundliche Grüße
MaggieMay

Beaker s.a.

Hallo Franz,
ZitatDieses St.-El. hat die Eigenschaft "Value", die im Gegensatz zu "normalen" Textfelder nicht den Wert, sondern einen Recordset vom Typ Recordset2 beinhaltet.
Und da gibt es kein Feld mit dem Pfad zur Originaldatei?
ZitatDahinter liegt eine interne n-Tabelle (sieht man z. B. im Beziehungsfenster) , die sozusagen die Verschlimmbesserung einer expliziten  1-n-Tabellenbeziehnung darstellt und die eben auch ein Binary- Feld enthält
Hatte ich bereits in #8 unnötigerweise (s. #9) erwähnt.
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)