Neuigkeiten:

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

Mobiles Hauptmenü

Was muss man beim Kopieren von Formularen mit Steuerelementen beachten?

Begonnen von Arndt, Juni 23, 2016, 21:41:11

⏪ vorheriges - nächstes ⏩

Arndt

Ich habe eine wahrscheinlich sehr triviale Frage, die ich aber nicht aus eigener Kraft lösen kann.

Gegeben ist ein Formular mit einem UFO und einem Listenfeld, welches das UFO filtert. Das Formular und das Unterformular werden kopiert und diese Kopien umbenannt, auch im Formular. Wenn man dann in dem Formular die Ereignisprozedur des Listenfeldes an diese Umbenennung anpasst und alles kongruent der Kopiervorlage benennt, wieso funktioniert das Listenfeld dann als Filter nicht? Was muss beim Kopieren von Formularen noch beachtet werden, das ich wahrscheinlich vergessen habe?

Danke für die Antworten

MaggieMay

Hallo Arndt,

man müsste schon etwas genauer wissen was da abläuft und bspw. den VBA-Code kennen, der diesbezüglich zum Einsatz kommt.

Außerdem wüsste ich gern, was der Grund für das Kopieren der Formulare ist. Bitte so genau wie möglich erklären und beschreiben. Oder eine auf genau dieses Problem reduzierte Beispiel-DB hochladen, an der man sich das anschauen kann.
Freundliche Grüße
MaggieMay

DF6GL

Hallo,


ZitatWas muss beim Kopieren von Formularen noch beachtet werden,

Beim Kopieren kann es sein, dass der Eintrag "[Ereignisprozedur]"  in den betroffenen Ereignis-Eigenschaften ("beim Klicken" z. B. ) nicht mehr vorhanden ist und Access nicht mehr weiß, dass dafür eine Ereignisprozedur existiert.   Also diese Eigenschaften im Form-Entwurf unter Eigenschaften/Ereignisse prüfen...
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

Hallo Arndt,

ZitatDas Formular und das Unterformular werden kopiert und diese Kopien umbenannt

was dabei noch zu beachten wäre ist wohl, dass das Unterformular-Steuerelement im HF seinen Namen vermutlich behält.
Freundliche Grüße
MaggieMay

Arndt

Zitat von: DF6GL am Juni 24, 2016, 14:33:30
nicht mehr vorhanden ist und Access nicht mehr weiß, dass dafür eine Ereignisprozedur existiert.   Also diese Eigenschaften im Form-Entwurf unter Eigenschaften/Ereignisse prüfen...

Danke für Deine Antwort Franz.

(i) Ich habe das gemacht und die Steuerelemente umbenannt, indem ich jeweils eine 1 angefügt habe. Die Ereignisprozedur ist auch an diese neuen Namen angepasst.

So wurde aus:

Private Sub btnAlleAnzeigen_Click()
Me![Untergeordnet90].Form.Filter = ""
Me![Untergeordnet90].Form.FilterOn = True
End Sub
Private Sub Liste87_Click()
Me![Untergeordnet90].Form.Filter = "[maßnahmedurchgang] like '" & Me!Liste87.Column(0) & "'"
Me![Untergeordnet90].Form.FilterOn = True
End Sub

wurde:

Private Sub btnAlleAnzeigen1_Click()
Me![Untergeordnet901].Form.Filter = ""
Me![Untergeordnet901].Form.FilterOn = True
End Sub
Private Sub Liste871_Click()
Me![Untergeordnet901].Form.Filter = "[maßnahmedurchgang] like '" & Me!Liste871.Column(0) & "'"
Me![Untergeordnet901].Form.FilterOn = True
End Sub

Es funktioniert jetzt aber nicht. Bei anderen Formularen funktioniert es auch nicht. Ich denke, dass beim Kopieren noch etwas anderes zu beachten ist. Bitte entschuldige die einfachen Fragen.

(ii) Ich habe zusätzlich gemerkt, dass es auf die selbe Weise nicht funktioniert, wenn ich beim OriginalFormular ein anderes UFO einsetze und die Ausdrücke der Ereignisprozedur des Filters an dessen Namen anpasse.

Was soll ich tun, um das Steuerelement flott zu kriegen? Es ist vermutlich nur ein kleiner Fehler.


DF6GL

Hallo,

ich habe nicht die Ereignisprozedur selber gemeint, sonder den Eintrag "[Ereignisprozedur]" in der/den Ereignis-Eigenschaft/en des betroffenen Steuerelementes (Button). Lies nochmal meinen letzten Beitrag..
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

Hallo,

meinen Beitrag (#3) hast du vermutlich übersehen? Oder nicht verstanden?

Das gilt natürlich auch für alle anderen Steuerelemente in den kopierten Formularen.
Es gibt keinen Grund, diese ebenfalls umzubenennen.
Das ist ehrlich gesagt völliger Blödsinn. Warum willst du dir unnötig viel Arbeit machen?
Das Kopieren der Formulare an sich ist schon fragwürdig genug...

Sorry, für diese harten Worte.
Freundliche Grüße
MaggieMay

Arndt

Ich habe das gesamte Eigenschaftsfenster wie im Original angepasst. Die Elemente habe ich umbenannt, weil irgendwo stand, dass es in einer Datenbank keine gleich lautenden Namen geben sollte. Daher die Mühe.

MaggieMay

Da hast du dann wohl etwas gründlich falsch verstanden. Wichtig ist, dass die Datenfelder in den Tabellen eindeutig benannt werden. Aber wenn du schon Kopien von Formularen verwendest - warum ist immer noch unklar -, so dürfen die Objekte innerhalb der Formulare natürlich ihren ursprünglichen Namen behalten. Andernfalls verlierst du die mit der Kopie verbundenen Vorteile, nämlich die Wiederverwendbarkeit der darin enthaltenen Prozeduren und in Ausdrücken verwendeten Bezüge.

Aber kommen wir doch bitte nochmal zurück auf die Frage, warum überhaupt du glaubst, Formularkopien einsetzen zu müssen.
?
Freundliche Grüße
MaggieMay

Arndt

Weil ich denke dass ich dass (i) andere Alternativen noch schwerer zu verstehen sind und (ii) weil ich denke, dass die Formulare dann leichter zwischen verschiedenen DB hin und her zu kopieren sind, wenn sie unabhängig von einander sind.

MzKlMu

Hallo,
die Begründung ist mit rätselhaft.
In einer korrekt aufgebauten DB sollte es niemals notwendig sein Formulare kopieren zu müssen.

Und warum auch noch zwischen DBs ?

Jede DB hat doch die Ihr zugedachte Aufgabe und die dazu notwendigen Formulare. Da gibt es keine Formulare die man austauschen könnte.
Gruß Klaus

Arndt

Ja sowas kommt vor, rätselhaft. Es soll n designgleiche Formulare für n Aufgaben geben, die sich nur in den Punkten der Kombinationsauswahlfelder und einigen Bezeichnungen unterscheiden. Dazu möchte ich einfach ein vorhandenes Formular n mal kopieren und die Kombinationsfelder anpassen.

Die Frage ist doch einfach nur, ob es jemanden gibt, der bereit ist, die Aufgabe zu lösen.

Ehrlich gesagt kommt es mir hier in diesem Forum etwas komisch vor ... vielleicht ist das nicht der richtige Ort für mich.

MzKlMu

Hallo,
wenn Du Deine Fragen zu Access öffentlich postest, musst Du Dir auch Fragen zur Sinnhaftigkeit gefallen lassen. Wenn Du das nicht willst, darfst Du nicht fragen.
Und in einem anderen Forum wirst Du mit den gleichen Zweifeln an Deinem Vorhaben leben müssen. Da kommen die gleichen Fragen, da kannst Du sicher sein.

Ein ein Forum das Hilfe zu Access anbietet wäre ein schlechtes Forum wenn diese Rückfragen nicht kommen würden.

Wie auch schon in Deinen anderen Beiträgen hege ich Zweifel an einem korrekten Datenmodell. Und da bin ich sicher nicht alleine.

Mann kann übrigens auch Formulare zur Laufzeit andere Bezeichnungen/Feldinhalte zuweisen und auch die Datenherkunft eines Kombis lässt sich austauschen. Da sind keine Kopien notwendig.

Aber, nachdem Du ja Zweifel hast, ob Du hier richtig bist, halte ich mich ab sofort raus.

Gruß Klaus

MaggieMay

@Arndt:
Zitat von: Arndt am Juni 27, 2016, 21:03:53
Die Frage ist doch einfach nur, ob es jemanden gibt, der bereit ist, die Aufgabe zu lösen.
sorry, aber die Frage ist und bleibt, wozu du das zu brauchen glaubst und wie man das Ziel nicht vielleicht doch etwas "energiersparender" und "ökonomischer" erreichen kann.

Sich dieser Diskussion durch Abmeldung zu entziehen, war im Sinne (d)einer Problemlösung möglicherweise keine so gute Entscheidung.

PS:
Es ist für mich ehrlich gesagt ein Unding, wie vielfach mit x Kopien von Abfragen oder auch Formularen etc. hantiert wird, nur weil sich ein paar Details (wie bspw. Abfrageparameter oder Textfeldbeschriftungen o.ä.) in Abhängigkeit vom Verwendungszweck ändern. Da gibt es meist tatsächlich bessere, pflegeleichtere und effizientere, Lösungen.
Freundliche Grüße
MaggieMay