Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: datekk am Februar 05, 2019, 18:21:44

Titel: Seltsames Verhalten von verschachtelten Funktionen
Beitrag von: datekk am Februar 05, 2019, 18:21:44
Servus... mal wieder ein kurioses Problem.

In einem Klassenmodul wird eine Funktion aufgerufen. Ich nenne sie mal Funktion 1. Funktion 1 ruft eine Funktion 2 auf. Diese wird von Access ohne Fehler abgearbeitet bis Exit Function.

An dieser Stelle gehe ich davon aus, dass nun die weiteren Codezeilen in der Funktion 1 abgearbeitet werden, jedoch fährt Funktion 1 nicht mit der nächsten Codezeile fort, sondern wird auch ohne Fehler komplett beendet, sodass im Klassenmodul die nächste Codezeile ausgeführt wird.

Leider kann ich mir das nicht erklären. Ich habe alle Error-Handler entfernt und auch ein decompile durchgeführt. Compile läuft fehlerfrei durch.


Titel: Re: Seltsames Verhalten von verschachtelten Funktionen
Beitrag von: markusxy am Februar 05, 2019, 19:01:58
Vielleicht kannst du ja ein nachvollziehbares Beispiel hochladen.
Titel: Re: Seltsames Verhalten von verschachtelten Funktionen
Beitrag von: ebs17 am Februar 06, 2019, 09:29:04
Zitatein kurioses Problem
Man kann gar nicht genug lachen. Pflege und bewahre die Kuriositäten.

Ansonsten ist Deine Beschreibung eine nichtssagende Prosa bezüglich nachvollziehbarer Fakten.
Exit Function ... ist eher ein Abbruch als ein reguläres Beenden der Funktion.
Sowie: Eine Funktion im eigentlichen Sinne ist dazu da, einen Rückgabewert zu liefern, wobei man ihr bei Aufruf Argumente entsprechend ihrer Definition übergibt. Wenn die Funktion sauber definiert ist, interessiert nachfolgend der interne Ablauf gar nicht mehr.
vResult = FunctionXY(a, b)
Aufruf und Rückgabe sind eine Einheit in einer Codezeile.
Titel: Re: Seltsames Verhalten von verschachtelten Funktionen
Beitrag von: datekk am Februar 06, 2019, 09:45:17
ebs17... Dann lach mal.

Natürlich liefern meine Funktionen einen Rückgabewert und werden auch mit Werten bedient. Ich kann das hier nicht alles online stellen und daher würde ich es jetzt einfach dabei belassen. Ich schiebe es, wie so einiges an Fehlerverhalten auf eine fehlerhafte Office Installation, deren zig Reperaturversuche und Neuinstallationen allerdings bisher erfolglos blieben.

Wie beendest Du denn Deine Funktionen? Da ich Error-Handler nutze ist dies doch eine Möglichkeit. Man könnte auch mit Go to zu End Function springen, aber wäre das nicht das gleiche?

Public Function BehaltsFürDich (blah as String) as boolean
On Error Goto ErrorHandler

If blah = "macht sich lustig" Then BehaltsFürDich = True Else False

Exit Function
ErrorHandler:
debug.print err.num, err.description

End Function

;)

Titel: Re: Seltsames Verhalten von verschachtelten Funktionen
Beitrag von: ebs17 am Februar 06, 2019, 09:57:15
ZitatIch kann das hier nicht alles online stellen
Den ganzen Haufen will doch auch niemand wirklich sehen.

Wenn Du den Glauben an fehlerhafte Installationen vor Ort hast, dann kann Dir hier auch keiner helfen außer mit dem Hinweis, das vor Ort kompetent zu lösen.
Wenn Dir daran gelegen wäre, ein konkretes Problem zu besprechen, wäre da eine konkrete hinreichende Darstellung dazu notwendig - Handauflegen auf den Bildschirm zur Gewinnung fehlender Fakten funktioniert noch nicht.

ZitatAn dieser Stelle gehe ich davon aus ...
... und das im imaginären Raum - kann es sein, dass Du nur mal reden willst, so zur Mitleidsgewinnung?
Titel: Re: Seltsames Verhalten von verschachtelten Funktionen
Beitrag von: PhilS am Februar 06, 2019, 12:05:44
Zitat von: datekk am Februar 06, 2019, 09:45:17Ich kann das hier nicht alles online stellen und daher würde ich es jetzt einfach dabei belassen.
Ein Minimalbeispiel, das das Problem reproduziert, würde es ja tun. - Beim Erstellen eines solchen Beispiels findet man nicht selten selbst Ursache und Lösung des Problems.