Neuigkeiten:

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

Mobiles Hauptmenü

Prozedure mit Variable im Namen aufrufen

Begonnen von Xoar, Juni 14, 2017, 17:35:34

⏪ vorheriges - nächstes ⏩

Xoar

#30
Ok, danke für den Tipp/Hinweis.

Die Urzeiten zu den Positionen sind alle mit in der tblDienstposten versorgt, daraus lese ich diese immer aus.

Lachtaube

Ich fragte nach einer Regel der Dienstzeiten und sich wiederholenden Zyklen - nicht woher Du die Zeiten beziehst. Hintergrund der Fragerei ist, zu prüfen, ob Du ggf. ein Konzept wie deses verwenden kannst.
Grüße von der (⌒▽⌒)

Beaker s.a.

#32
Hallo Xoar,
Zitatsollte eigentlich diese von1_AfterUpdate Prozedure aufrufen, damit die von1Datum - bis1Datum Felder korrekt beschrieben werden.
Dann finde ich, unbeachtet Lachtaubes Argument bezügl. Recordset,
meinen Ansatz aber nicht verkehrt. Da kannst du dann das AfterUpdate
ganz vergessen und die Zeile in "PositionsZeitenEintragen" ausführen.
Wie gesagt, das passende Control (1-5) findest du in der Controls-
Auflistung des übergebenen Forms. Evtl. musst du die Nummer auch als
Parameter übergeben.

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)

Xoar

so, hat leider etwas länger gedauert. Heute ist hier die Hölle los....

also ich hab es jetzt so gelöst, dass ich direkt im Recordset die Daten ändere, und die ehemals in dem AfterUpdate-Ereignis stehende Function direkt in der PositionsZeitenUpdate ausführe. Das klappt auch mit zusammengesetzten Variablen super  :D

@ekkehard
dein Ansatz find ich trotzdem super, hab es auch mal ausprobiert. Bin aber gescheitert, mangels Kenntniss.
ich habe die Funktion um
Public Function PositionenZeitenEintragen(Datum As Date, MitarbeiterID As Integer, PositionID As Integer, welchesForm As Form, Optional welchesSteuerelement As String) eweitert.

Beim Aufruf habe ich dann für diesen Parameter ganz einfach den Namen des Formulares eingetragen, wovon die Controlls übergeben werden sollen. PositionenZeitenEintragen("01.01.2017",1,2,frmMehrereDienstpostenAuswahl,2
Da gab es zwar kein Fehler, aber in der Funktion selbst war dem FormParameter beim Aufruf nichts zugeordnet. Hab ich da was falsch gemacht?

Muss das Formular außerdem zu dem Zeitpunkt geöffnet sein und bleiben?

nen gutes Beispiel hab ich bis jetzt dafür noch nicht gefunden....

Grüße

Beaker s.a.

Hallo Xoar,
Du must das Formular als Form übergeben, der Name reicht nicht *).
Wenn du auf dem Form bist, das du übergeben willst reicht ein einfaches
"Me". Wenn's ein anderes ist Forms!frmMehrereDienstpostenAuswahl.
gruss ekkehard

*) Bevor berechtige Einwände kommen; - es geht natürlich auch mit dem
Formnamen als String. Dann musst du in der Prozedur allerdings eine
Variable einrichten
Dim frm As Form
Set frm = Forms(Parameter)

Aber wozu dieser Umweg?
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)

Xoar