Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: zoulhh am Dezember 23, 2016, 10:56:25

Titel: Mehrere Elemente mit gleicher Funktion
Beitrag von: zoulhh am Dezember 23, 2016, 10:56:25

Hallo zusammen,

wenn ich z.B. fünf Buttons haben, die alle das gleiche machen sollen (fragt nicht!), muss ich dann tatsächlich fünf Subs für das "Beim Klicken" Ereignis haben oder geht das eleganter?

Danke und schöne Weihnachten.

LGM
Titel: Re: Mehrere Elemente mit gleicher Funktion
Beitrag von: MzKlMu am Dezember 23, 2016, 11:05:58
Hallo,
eine Sub im Klassenmodul des Formulars und dann in den Buttons diese Sub aufrufen.
Private Sub Befehl1_Click()
test
End Sub

Private Sub Befehl2_Click()
test
End Sub

Public Sub test()
    MsgBox "Dies ist ein Test"
End Sub


Zitat(fragt nicht!),
Nein, ich frage leiber nicht.
Titel: Re: Mehrere Elemente mit gleicher Funktion
Beitrag von: el_gomero am Dezember 23, 2016, 12:53:58
Moinsen,

also die Sub Test würde ich in einem allgemeinen Modul unterbringen. Ist ja nicht gesagt, dass die Buttons alle im gleichen Form liegen, bzw dass irgendwann auf einem anderen Form noch welche dazukommen, oder sonstwo Code die Prozedur auch ausführen soll.

Sonst frag ich lieber auch nicht weiter.
Titel: Re: Mehrere Elemente mit gleicher Funktion
Beitrag von: zoulhh am Dezember 23, 2016, 13:07:00
Zitat von: MzKlMu am Dezember 23, 2016, 11:05:58
Hallo,
eine Sub im Klassenmodul des Formulars und dann in den Buttons diese Sub aufrufen.
Private Sub Befehl1_Click()
test
End Sub

Private Sub Befehl2_Click()
test
End Sub

Public Sub test()
    MsgBox "Dies ist ein Test"
End Sub


Zitat(fragt nicht!),
Nein, ich frage leiber nicht.

Moin Klaus,

das ist zwar richtig, macht es aber nicht eleganter oder so. Ich dachte eher an sowas wie

private sub button1_click,button2_click,button3_click
end sub

Aber das geht wohl nicht.

Hintergrund (Du hast gefragt :-) ): Ich habe ein Unterformular wo mir Kontaktdaten wie Strasse, Name usw. in Feldern angezeigt werden. Bei einem Klick auf ein beliebiges Feld soll aber immer der Datensatz über die ID in das Hauptformular übertragen werden. Das bedeutet, dass im Unterformular eben für jedes Feld ein Sub mit immer dem gleichen Aufruf steht. Das fand ich nervig.

Danke für Deine Mühe.

LGM
Titel: Re: Mehrere Elemente mit gleicher Funktion
Beitrag von: el_gomero am Dezember 23, 2016, 13:18:08
Zitat
private sub button1_click,button2_click,button3_click
end sub

Aber das geht wohl nicht.

In der Form auf keinen Fall, in der von Klaus beschriebenen schon.

Zitat
... Ich habe ein Unterformular wo mir Kontaktdaten wie Strasse, Name usw. in Feldern angezeigt werden. Bei einem Klick auf ein beliebiges Feld soll aber immer der Datensatz über die ID in das Hauptformular übertragen werden. ...

Das macht in einer relationalen db nun mal gar keinen Sinn. Im Ufo befinden sich Kontaktdaten die über die ID mit Kontakt in Verbindung stehen. Da gibt es dann nichts in HF zu übertragen.

Beschreibe doch mal die Aktion genauer ...
Titel: Re: Mehrere Elemente mit gleicher Funktion
Beitrag von: zoulhh am Dezember 23, 2016, 13:29:26
Zitat von: el_gomero am Dezember 23, 2016, 13:18:08Beschreibe doch mal die Aktion genauer ..

Hi Jürgen,

danke für Deine Antwort. Das Hauptformular editiert Datensätze. Dort ist auch ein Suchfeld vorhanden, die Ergebnisse (verkürzt, also nicht alle Felder) werden im Unterformular (endlos) angezeigt. Dort kann man dann auf ein beliebiges Feld klicken und der Datensatz wird zum Editieren ins Hauptformular übernommen.

Ist das echt so ungewöhnlich? Hab ich da so einen Denkfehler drin?

LGM


Titel: Re: Mehrere Elemente mit gleicher Funktion
Beitrag von: MzKlMu am Dezember 23, 2016, 13:34:59
Hallo,
wozu eine verkürzte Darstellung ?
Ich halte das Unterformular für ersatzlos überflüssig.

Außerdem ist das ohnehin unlogisch. Wenn im Hafo der gleiche Datensatz angezeigt wird, so kannst Du gleich im Hafo editieren.

Ja, das Vorhaben ist ungewöhnlich.
Titel: Re: Mehrere Elemente mit gleicher Funktion
Beitrag von: el_gomero am Dezember 23, 2016, 13:36:36
mit deiner Beschreibung kann ich nichts anfangen. Hatte etwas in der Art erwartet:

Kunde Müller hat mehrere Kontaktmöglichkeiten - Tel heim Nr 456, Mobil1 0123, email mueller@gmx.de. Nun will ich die Mobilnummer ändern und eine neue 2. Mobilnummer zufügen ...
Titel: Re: Mehrere Elemente mit gleicher Funktion
Beitrag von: crystal am Dezember 23, 2016, 13:48:24
Hallo,
wie wäre es denn, wenn du im Ufo auf die mehreren Buttons verzichtest (ich vermute, du hast jetzt im Ufo mehrere Buttons wie "Name bearbeiten", "Straße bearbeiten" usw.)?
Du müsstest dazu über die gesamte Ufo-Zeile einen transparenten Button legen und deinen Code in den Klick-Event dieses einen Buttons legen. Dadurch würde der Klick-Event gefeuert werden, egal wo du im Ufo klickst.

lg
crystal
Titel: Re: Mehrere Elemente mit gleicher Funktion
Beitrag von: Joss am Dezember 23, 2016, 14:57:01
Hallo zoulhh,

zu deiner Anfangsfrage:

Erstelle eine Private Function z.B. test(), die deinen Code enthält.
Dann markierst du alle 5 Schaltflächen, und schreibst in das Ereignis "Beim Klicken" ein Gleichheitszeichen und den Funktionsnamen:
=test()

Gruß
Josef
Titel: Re: Mehrere Elemente mit gleicher Funktion
Beitrag von: DF6GL am Dezember 23, 2016, 17:33:06
Hallo,


Zitat
Erstelle eine Private Function z.B. test(), die deinen Code enthält.


mach da besser eine Public Function daraus...
Titel: Re: Mehrere Elemente mit gleicher Funktion
Beitrag von: zoulhh am Dezember 24, 2016, 10:43:00
Zitat von: MzKlMu am Dezember 23, 2016, 13:34:59
Hallo,
wozu eine verkürzte Darstellung ?
Ich halte das Unterformular für ersatzlos überflüssig.

Außerdem ist das ohnehin unlogisch. Wenn im Hafo der gleiche Datensatz angezeigt wird, so kannst Du gleich im Hafo editieren.

Ja, das Vorhaben ist ungewöhnlich.

Hi,

entschuldige bitte, ich habe es evtl. falsch ausgedrückt. Das Unterformular ist ein Endlosformular, dass Suchergebnisse anzeigt, quasi in einer Liste. Es besteht nicht aus Buttons sondern aus Feldern. Diese Felder kann man anklicken und dann den angeklickten Datensatz editieren. Außerdem kann man in dem Unterformular durch Klick auf die Überschrift die "Liste" sortieren. Ich hänge mal ein Bild an.

Ich hab mir echt Mühe gegeben, finde das aber immer noch eine wichtige Funktion und überhaupt nicht abwegig. Vielleicht denke ich aber über zu viele Ecken.

Danke für Deine Gedanken zu diesem Thema.

LGM

Titel: Re: Mehrere Elemente mit gleicher Funktion
Beitrag von: zoulhh am Dezember 24, 2016, 10:44:46
Zitat von: Joss am Dezember 23, 2016, 14:57:01


Erstelle eine Private Function z.B. test(), die deinen Code enthält.
Dann markierst du alle 5 Schaltflächen, und schreibst in das Ereignis "Beim Klicken" ein Gleichheitszeichen und den Funktionsnamen:
=test()

Gruß
Josef

DAS, lieber Josef, ist geil. Vielen, vielen Dank.

LGM
Titel: Re: Mehrere Elemente mit gleicher Funktion
Beitrag von: crystal am Dezember 24, 2016, 10:58:36
Hallo,

einfacher geht's mit einem transparenten Button (s.o. #9).

Ansonsten finde ich deinen "Master-Datail-Ansatz" sehr benutzerfreundlich und vom Layout her gut gelungen. Vielleicht würde ich ihn "umdrehen", also Master (Vorselektion) oben und Details unten - wäre von der Bedienung her vielleicht etwas logischer oder einsichtiger.

Eines muss ich noch bemerken: hättest du schon zu Anfang ein Bild hochgeladen, hätte man einige Missverständnisse vermeiden können.

Schöne Weihnachten!

lg
crystal
Titel: Re: Mehrere Elemente mit gleicher Funktion
Beitrag von: Beaker s.a. am Dezember 24, 2016, 12:48:17
Hallo,
Vielleicht macht es Sinn auch das Ereignis "Beim Anzeigen" (Current) mit der
gleichen Prozedur zu behandeln, - wegen manuellem Blättern.
gruss ekkehard
Titel: Re: Mehrere Elemente mit gleicher Funktion
Beitrag von: Joss am Dezember 24, 2016, 12:52:25
@Franz,

Zitatmach da besser eine Public Function daraus...

ich finde die "Private Function" sinnvoller, da der Code nur in diesem Formularmodul verwendet wird, und damit auch leichter diesem Formular zugeordnet werden kann.
Im Sinne der Code-Dokumentation finde ich es sogar sinnvoll, zusätzlich im Code noch einen Kommentar anzubringen, wo die Funktion verwendet wird.

Gruß
Josef
Titel: Re: Mehrere Elemente mit gleicher Funktion
Beitrag von: DF6GL am Dezember 24, 2016, 14:15:39
Hallo,

mal abwarten, bis diese Private Function plötzlich auch in einem anderen Klassenmodul gebraucht wird...  Wäre ja nicht das erste Mal, dass sowas auftaucht...    ;) 8)
Titel: Re: Mehrere Elemente mit gleicher Funktion
Beitrag von: zoulhh am Dezember 24, 2016, 15:57:04
Zitat von: Joss am Dezember 23, 2016, 14:57:01
Hallo zoulhh,

zu deiner Anfangsfrage:

Erstelle eine Private Function z.B. test(), die deinen Code enthält.
Dann markierst du alle 5 Schaltflächen, und schreibst in das Ereignis "Beim Klicken" ein Gleichheitszeichen und den Funktionsnamen:
=test()

Gruß
Josef

Hey Josef,

kann ich da auch einen Wert übergeben wenn ich das in einem Listenfeld benutzte? Praktisch den Wert der jeweiligen Auswahl? Sowas wie

=test(me!listenauswahl)

Habs versucht, gibt aber einen Fehler. (Ist jetzt schon wieder für eine andere Sache, Deine Lösung von vorhin funktioniert perfekt).

Edit:

Ahh

=test( [listenauswahl] )

Alles klar. Nochmal danke für den Tip(p).

LGM
Titel: Re: Mehrere Elemente mit gleicher Funktion
Beitrag von: Beaker s.a. am Dezember 25, 2016, 00:06:35
Hallo Zhoulhh,
Auf der Accessoberfläche kann Access bzw. VBA mit "Me!" nichts anfangen, - da
musst du den vollständigen Formularbezug angeben.
=test(Formulare!DeinForm!DeineListe.Value)
Damit übergibst du den Wert der gebundenen Spalte der Liste.
Wenn du aber statt einem UFo ein Listfeld verwendest, brauchst du auch nur ein
Ereignis zu behandeln; - Liste_Click (BeimKlicken).
gruss ekkehard