Access-o-Mania

Access-Forum => Bericht => Thema gestartet von: HubertN am August 26, 2020, 21:46:35

Titel: Aus einem Bericht auf ein Formular verlinken
Beitrag von: HubertN am August 26, 2020, 21:46:35
Hallo zusammen,
folgende Frage hätte ich:
Ich habe einen Bericht aus einer Abfrage erstellt.
Ein Feld hat den Namen "CCID".
Dieses Textfeld ist in den Eigenschaften so eingestellt, dass es ein Hyperlink ist.
Nun sollte sich beim anklicken des Feldes im Bericht ein Formular mit dem dazugehörigen Datensatz zur weiteren Bearbeitung öffnen.
Wie kann ich das umsetzen?
Vielen Dank schon einmal.
HubertN
Titel: Re: Aus einem Bericht auf ein Formular verlinken
Beitrag von: MzKlMu am August 27, 2020, 00:30:36
Hallo,
meines Wissens kann man in einem Bericht kein Feld anklicken.
Titel: Re: Aus einem Bericht auf ein Formular verlinken
Beitrag von: ebs17 am August 27, 2020, 08:28:31
ZitatIch habe einen Bericht aus einer Abfrage erstellt.
Jeder ist stolz auf seine Einfälle und Taten. Für Useraktionen zur Programmsteuerung sind aber Formulare das typische Mittel. Ein Bericht ist praktisch ein Ausdruck für die Ausgabe nach draußen (zum Gucken und Ausdrucken), der nur noch auf die Druckeraktivierung wartet.

Steuerungen innerhalb der Accessoberfläche per Hyperlink sind dann auch sehr ungewöhnlich und experimentell.
Ein Formular als Objekt bietet sehr viele Möglichkeiten über Ereignisse, Steuerelemente usw., was eine bessere Steuerung ermöglicht.
Titel: Re: Aus einem Bericht auf ein Formular verlinken
Beitrag von: PhilS am August 27, 2020, 11:54:09
Zitat von: HubertN am August 26, 2020, 21:46:35Ich habe einen Bericht aus einer Abfrage erstellt.
Ein Feld hat den Namen "CCID".
Dieses Textfeld ist in den Eigenschaften so eingestellt, dass es ein Hyperlink ist.
Nun sollte sich beim anklicken des Feldes im Bericht ein Formular mit dem dazugehörigen Datensatz zur weiteren Bearbeitung öffnen.
Der Hyperlink hilft dir bei der Navigation innerhalb einer Access-Anwendung nicht weiter.
Wenn du den Bericht in der Berichtsansicht öffnest (nicht Druckvorschau), dann kannst du dort auch die in Formularen übliche Klick- oder Doppelklick-Ereignisse verwenden, um Aktionen in der Access-Anwendung auszulösen.

Zitat von: ebs17 am August 27, 2020, 08:28:31Ein Bericht ist praktisch ein Ausdruck für die Ausgabe nach draußen (zum Gucken und Ausdrucken), der nur noch auf die Druckeraktivierung wartet.
Die Aussage ist richtig, aber mir zu pauschal. Zur Darstellung von Informationen mit stark variierender Länge in der Benutzeroberfläche ist ein (Unter-)Bericht oft eine bessere Lösung als ein Endlosformular (Stichwort: CanShrink/CanGrow).
Titel: Re: Aus einem Bericht auf ein Formular verlinken
Beitrag von: ebs17 am August 27, 2020, 12:16:33
@phil:
Kein Widerspruch. Darstellung = Angucken.
Man würde aber wohl kaum eine (anspruchsvolle?) Programmsteuerung in einen solchen Unterbericht packen, oder?
Titel: Re: Aus einem Bericht auf ein Formular verlinken
Beitrag von: DF6GL am August 27, 2020, 19:17:34
Hallo,

m.M:  Ich sehe nach anfänglichen Misstrauen bei der Einführung der Berichtsansicht durchaus Vorteile bei der Berichts-Ansicht insofern, als dass sie sich der im wörtlichen Sinn gebräuchlichen Methode einer geschäftlichen Berichtserstattung annähert und nicht nur für Druckzwecke und Seiten-Layout-Bewunderung dient.


Dazu sind die (vielleicht noch nicht opulenten) Klickereignisse sehr oft nützlich, sei es, wie in diesem Fall, einfach ein Detail-Formular (oder auch ein Detail-Diagramm)  per Klick auf ein Datenfeld zu öffnen oder per Buttonklick erforderliche Abläufe anzustoßen. Längere Auswertungen werden zudem auch nicht durch den Seitenumbruch zerstückelt. 

Anspruchsvolle, sprich komplexe oder weitergehende Abläufe würde ich konformgehend  (wenn es denn möglich ist) auch nicht an dieser Stelle ansiedeln wollen.

Titel: Re: Aus einem Bericht auf ein Formular verlinken
Beitrag von: HubertN am August 27, 2020, 19:54:39
Vielen Dank für eure Gedanken.

Vielleicht habe ich mich nicht ganz verständlich ausgedrückt.
In meinem Bericht werden offenen Tätigkeiten an Hand einer Abfrage gefiltert und ausgegeben.

Etwa so:
CCID      TätigkeitID    Tätigkeit 

10      01          irgendwelche Anpassung

Hier sollte man dann auf das Feld "CCID" klicken können und ein Formular mit dieser ID öffnet sich.

Wie könnte man das umsetzen? Ich hoffe das ist einigermaßen verständlich.
Titel: Re: Aus einem Bericht auf ein Formular verlinken
Beitrag von: PhilS am August 27, 2020, 21:17:52
Zitat von: HubertN am August 27, 2020, 19:54:39Hier sollte man dann auf das Feld "CCID" klicken können und ein Formular mit dieser ID öffnet sich.
Das war schon alles verständlich.
Das kann man genauso umsetzen, wie in einem Formular. Voraussetzung ist aber, dass der Bericht in der Berichtsansicht geöffnet ist.
Falls dir der grundlegende Ansatz fehlt, schaut dir mal die DoCmd.OpenForm Methode (https://docs.microsoft.com/en-us/office/vba/api/access.docmd.openform) an. Dort kannst du in dem WhereCondition-Argument einen entsprechenden Filter mitgeben.
Beispiel:
DoCmd.OpenForm "DeinFormular",,,"ID=" & Me.CCID
Titel: Re: Aus einem Bericht auf ein Formular verlinken
Beitrag von: PhilS am August 27, 2020, 21:35:34
Zitat von: ebs17 am August 27, 2020, 12:16:33@phil:
Man würde aber wohl kaum eine (anspruchsvolle?) Programmsteuerung in einen solchen Unterbericht packen, oder?
Der Begriff "(anspruchsvolle?) Programmsteuerung" lässt Interpretationsspielraum.

Wenn es um Code geht, der das Verhalten des Berichts steuert, dann gehört dieser schon direkt in diesen Bericht. - Ausgenommen natürlich allgemeine Prozeduren, die mehrfach verwendet werden.

Allgemeine Programmlogik, die nicht mit der UI-Steuerung des jeweiligen Objektes zusammenhängt, würde ich dort genauso wenig unterbringen, wie in einem Formular.
Titel: Re: Aus einem Bericht auf ein Formular verlinken
Beitrag von: ebs17 am August 27, 2020, 22:15:42
ZitatEtwa so:
CCID      TätigkeitID    Tätigkeit
Für eine solche übersichtliche Tabelle und Gestaltung erschließt sich mir nicht die Vorteilhaftigkeit eines Berichtes. Aber jeder nach seinem Willen.
Titel: Re: Aus einem Bericht auf ein Formular verlinken
Beitrag von: HubertN am August 28, 2020, 04:03:58
Vorerst noch einmal Danke.
Werde mich (wenn die Lösung steht) melden.
Grüße HubertN
Titel: Re: Aus einem Bericht auf ein Formular verlinken
Beitrag von: HubertN am August 28, 2020, 07:47:37
@phil:
habe deinen Code (DoCmd.OpenForm "DeinFormular",,,"ID=" & Me.CCID) umgesetzt und der funktioniert auch soweit :-)
Nur ein kleines Problem habe ich noch.
Es gibt bei meiner Auswertung eine CCID aber mehrere Tätigkeiten (TätigkeitID) dazu.

Mein Ansatz sieht so aus:
DoCmd.OpenForm "DeinFormular", WhereCondition:="CCID = '" & Me!CCID & "'"

Jetzt öffnet sich schon einmal das richtige Formular mit der CCID, aber noch nicht die dazugehörige "TätigkeitID"
Danke schon einmal.
Titel: Re: Aus einem Bericht auf ein Formular verlinken
Beitrag von: PhilS am August 28, 2020, 10:51:26
Zitat von: HubertN am August 28, 2020, 07:47:37Es gibt bei meiner Auswertung eine CCID aber mehrere Tätigkeiten (TätigkeitID) dazu.

Mein Ansatz sieht so aus:
DoCmd.OpenForm "DeinFormular", WhereCondition:="CCID = '" & Me!CCID & "'"
Der Zusammenhang zwischen CCID und TätigkeitID ist mir nicht klar.
Wenn das entsprechende Feld in der Tabelle (Datenherkunft des Formulars) TätigkeitID heißt, dann muss sich die WhereCondition auch das Tabellenfeld beziehen.

DoCmd.OpenForm "DeinFormular", WhereCondition:="TätigkeitID = '" & Me!CCID & "'"
Die Begrenzung des Kriteriums für CCID bzw. TätigkeitID ist nur dann richtig, wenn es sich um ein Textfeld (Datentyp!) handelt. Bei einem Zahl-Datentyp musst du die begrenzenden Hochkommas weglassen.
Titel: Re: Aus einem Bericht auf ein Formular verlinken
Beitrag von: HubertN am August 28, 2020, 12:01:41
Zum besseren Verständnis habe ich ein Bild beigegeben.

Erklärung zum Bild:
man klickt auf eine der abgebildeten CCID's
(in diesem Fall gibt es 4 gleiche CCID und 4 unterschiedliche Tätigkeiten)
dann sollte sich die jeweilige Tätigkeit z. B.: 02 zur Eingabe öffnen.

Titel: Re: Aus einem Bericht auf ein Formular verlinken
Beitrag von: DF6GL am August 28, 2020, 12:54:17
Hallo,

dann filtere halt zusätzlich mit der Tätigkeit-ID...


DoCmd.OpenForm "DeinFormular", WhereCondition:="CCID = '" & Me!CCID & "' And [TätigkeitID] = '" & Me![TätigkeitID] & "'".


btw:
ID-Felder sollten nicht vom Datentyp Text sein. (Besser Autowert, bzw. Long-Datentyp)
Sonder- und Leerzeichen sollten vermieden werden.

Titel: Re: Aus einem Bericht auf ein Formular verlinken
Beitrag von: MzKlMu am August 28, 2020, 14:14:01
Hallo,
wenn die TätigID eindeutig ist (was man vom Namen her annehmen muss), so ist doch die CCID hier bedeutungslos.
Es sollte also so reichen:
DoCmd.OpenForm "DeinFormular", WhereCondition:="[TätigkeitID] = '" & Me![TätigkeitID] & "'"
Titel: Re: Aus einem Bericht auf ein Formular verlinken
Beitrag von: HubertN am August 28, 2020, 17:20:26
Habe gerade die letzten 2 Codes getestet. Alle beide funktionieren perfekt.
"Problem gelöst"
Vielen vielen Dank an alle.
Gr. HubertN