Neuigkeiten:

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

Mobiles Hauptmenü

Bericht als Snapshot oder pdf (A03)

Begonnen von MaxP, Januar 14, 2019, 12:43:57

⏪ vorheriges - nächstes ⏩

MaxP

Hallo Ekkehard,

danke für deine Tipps.

Deine Pkt. 2 u. 3 habe ich entsprechend bei mir geändert.
Bei Pkt. 1 habe ich nur den Hauptpfad als Konstante in dem Kopf aufgenommen. Da es 3 Unterordner gibt, muss die Variable strUOrdner m.E. im Modul bleiben.

Eine Übergabe von Variablen müsste zumindest auch bei Public u. Private Sub möglich sein (s. Post #9+#10). Aber ansonsten bin ich diesbezüglich leider ahnungslos.

Gruß
Max
Win 10 pro 64 bit, Access 2003

Beaker s.a.

Hallo Max,
Zitatmuss die Variable strUOrdner m.E. im Modul bleiben.
Eine Konstante ist eben keine Variable. Wie willst du die 3 UOrdner
denn auseinanderhalten? Drei gleiche Prozeduren mit unterschiedlicher
Konstante? Da muss man sich was ausdenken, wie die variabel in die
Prozedur kommen.
ZitatEine Übergabe von Variablen müsste zumindest auch bei Public u. Private Sub möglich sein
Private oder Public ist dabei erstmal egal. Natürlich kann auch eine Sub
Werte empfangen, aber nur eine Function kann auch einen Wert zurück
liefern.
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)

PhilS

Zitat von: MaxP am Januar 16, 2019, 08:27:38
Das Problem ist, im ersten Code werden Variablen genutzt, die erst im 2. Code definiert werden und ich weiß nicht, wie ich die wieder in Code 1 "zurückbekomme".
Ich habe mir erlaubt, deinen Code zu überarbeiten und ein Video daraus zu machen.Allerdings das ganze auf Englisch; dazu habe ich auch deinen Code ins Englische "übersetzt".
Ich wollte eigentlich den Schwerpunkt auf die Übergabe von Werten zwischen verschiedenen Prozeduren legen,  letztendlich hat sich der Code bei der Überarbeitung aber etwas anders entwickelt.Das Video habe ich bereits vor einigen Tagen aufgezeichnet, daher ist die weitere Diskussion hier, nach dem 16., darin nicht berücksichtigt.

Nun, genug der Vorrede, hier der Link zum Video: Let's Code - VBA - Nested, Dependent Procedures

Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

PhilS

Zitat von: Beaker s.a. am Januar 16, 2019, 18:39:41
ZitatEine Übergabe von Variablen müsste zumindest auch bei Public u. Private Sub möglich sein
Private oder Public ist dabei erstmal egal. Natürlich kann auch eine Sub
Werte empfangen, aber nur eine Function kann auch einen Wert zurück
liefern.
Nicht ganz korrekt.  Über ByRef-Argumente, kann auch eine Sub-Prozedur Werte an den Aufrufer zurückliefern. Allerdings würde ich das i.d.R. vermeiden, weil es weniger intuitiv lesbar ist.
(Das wollte ich ursprünglich auch in meinen Video zeigen, aber letztendlich hat sich das nach der Umstrukturierung als unnötig erwiesen.)
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

MaxP

Hallo zusammen,

@ PhilS: schön, wenn ich auch ein wenig zurückgeben kann.

Mit der Übergabe von Variablen scheint das nicht so einfach zu sein. Deshalb habe ich mir bezüglich meines Codes (wie so häufig) damit beholfen, dass ich die betroffenen Variablen nun unsichtbar im Formular speichere.
Nun funzt es, wie es soll.

Vielen Danke an Euch.

Gruß
Max
Win 10 pro 64 bit, Access 2003

Beaker s.a.

Hallo Philipp,
ZitatNicht ganz korrekt.  Über ByRef-Argumente, kann auch eine Sub-Prozedur Werte an den Aufrufer zurückliefern.
Danke für die Erinnerung an diese Tatsache. Hatte ich beim Schreiben
nicht daran gedacht; - wie so oft  :-[ .
Verwende ich auch nur sehr selten.
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)

PhilS

Zitat von: MaxP am Januar 21, 2019, 14:16:19
Mit der Übergabe von Variablen scheint das nicht so einfach zu sein. Deshalb habe ich mir bezüglich meines Codes (wie so häufig) damit beholfen, dass ich die betroffenen Variablen nun unsichtbar im Formular speichere.
Technisch ist die Übergabe von Variable an andere Prozeduren und zurück nicht besonders schwer. - Vielleicht behandle ich das nochmal explizit in einem anderen Video.Für deinen konkreten Fall war es nur nach einer sinnvollen Strukturierung des Prozessablaufes im Code einfach  überflüssig.
Die Verwendung von Steuerelementen im Formular ist aus meiner Sicht so ziemlich die schlechteste Lösung dafür. - Nicht weil sie nicht funktionieren würde, sondern weil sie (Entwickler-)fehlerträchtig ist und trotz ihrer engen Kopplung nur schlecht nachvollziehbar ist.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

MaxP

Hallo Phil,

Dein angekündigtes Video (sofern in deutsch) würde mich interessieren. Wie und wo erfahre ich, wenn es wo online ist?

Gruß
Max
Win 10 pro 64 bit, Access 2003

PhilS

Zitat von: MaxP am Januar 23, 2019, 08:53:20Dein angekündigtes Video (sofern in deutsch) würde mich interessieren. Wie und wo erfahre ich, wenn es wo online ist?

Wenn ich das Video auf deutsch mache, werde ich es auf meinem YouTube-Channel codekabinett/de veröffentlichen.

In letzter Zeit mache ich die meisten Videos nur noch auf Englisch (codekabinett/EN), weil sich der nicht unerhebliche Aufwand für die dort etwas größere Zielgruppe mehr lohnt. - Dieses Thema scheint mir aber so oft miss-/unverstanden zu sein, dass ich hier tatsächlich wieder mal ein Video auf Deutsch dazu machen könnte.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor