🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Funktion ändern Problem

Alles zur Programmierung im LibreOffice.
Antworten
Alletkla
Beiträge: 23
Registriert: Di 15. Mai 2018, 15:54

Funktion ändern Problem

Beitrag von Alletkla » Di 18. Sep 2018, 21:17

Hi Community, ich hoffe bei diesem Problem, kann mir jemand helfen. Die anderen waren anscheinend zu speziell.

Ich habe eine Funktion "getSQL" definiert

Code: Alles auswählen

Function getSQL(sSQL as String)
Dim Qu
	Qu = ThisDataBaseDocument.CurrentController.ActiveConnection.CreateStatement.executeQuery(sSQL)
	Qu.next
	Msgbox(Count(Qu))
	getSQL = Qu.getstring(1)
End Function
Ich wollte diese nun erweitern, dass ich auch beliebig viele Spalten abfragen kann. Also z.B. mit 1 Statement ein Array mit 3 Strings durch die Funktion erhalte.


ändere ich aber die Funktion zu:

Code: Alles auswählen

Function getSQL(Optional Co, sSQL as String)
erhalte ich eine Fehlermeldung ich hätte diese Funktion bereits anders definiert.? Diese verschwindet, wenn ich die Zugriffe auf diese Funktion lösche????

Ich kann die Funktion also ohne Fehlermeldung so definieren, aber sobald ich sie aufrufen will, sagt mir Basic, ich hätte diese bereits anders definiert :/

Danke

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Funktion ändern Problem

Beitrag von gogo » So 23. Sep 2018, 12:03

Der Fehler passiert beim Kompilieren des Moduls. Du hast schon irgendwo "Function getSQL(" stehen.
Benenne mal getSQL( in getSQLX( um...
Das bezieht sich immer nur auf ein Modul, Du kannst in unterschiedlichen Modulen gleichnamige Funktionen haben, die stören sich nicht, aber du kannst Dir nicht immer sicher sein welche Funktion der Interpreter benutzt, daher in solchen Fällen immer mit Modulnamen aufrufen... Modul1.Test(), Modul2.Test()

weiters: optionale Argumente müssen nach den obligaten stehen.
Versuch' mal

Code: Alles auswählen

Function getSQL(sSQL, optional Co)
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

Alletkla
Beiträge: 23
Registriert: Di 15. Mai 2018, 15:54

Re: Funktion ändern Problem

Beitrag von Alletkla » Di 25. Sep 2018, 09:43

Danke gogo,
also, dass eine Funktion nur ein mal vorkommen darf, war mir durchaus bewusst. Um nicht immer diesen Modulaufruf zu benötigen vermeide ich daher in kleinen Projekten doppelte Bezeichnungen selbst in verschiedenen Modulen.

Allerdings lag das Problem anscheinend bei der Reihenfolge von optionalen und obligaten Argumenten. Danach funktionierte es reibungslos.

Vielen dank :)


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten