🙏 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!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
-
Cardinal
- Beiträge: 9
- Registriert: Mo 21. Nov 2011, 20:19
Beitrag
von Cardinal » Di 22. Nov 2011, 15:44
Bist Du Dir sicher, dass die Markierung nicht in dieser Zeile ist?:
Ich bin mir sicher. Er kommt leider nicht so weit.
Hab den Auslöser auf Firma/nach Aktualiseren geändert... er hängt sich immer noch an besagter Stelle auf

-
gogo
- * LO-Experte *
- Beiträge: 1081
- Registriert: Sa 5. Feb 2011, 19:07
Beitrag
von gogo » Di 22. Nov 2011, 15:51
sry - mein Fehler!
Das Makro bitte dem Ereignis "Nach dem Aktualisieren" des Kontrollelements zuweisen nach dessen Änderung das Listfeld geändert werden soll. - also das in dem die Firma steht.
beim Formstart wird das makro ausgelöst ohne dass es das Formular schon gibt

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
-
Cardinal
- Beiträge: 9
- Registriert: Mo 21. Nov 2011, 20:19
Beitrag
von Cardinal » Di 22. Nov 2011, 15:55
sorry. Hatte das Makro noch im Formular drin. Habs jetzt nur noch beim Feld Firma. Jetzt kommt die Meldung nicht mehr. Aber es werden mir auch keine Projekte angezeigt. Dies ist jedoch schon ein Fortschritt... ich melde mich wenn ich genaueres weiss.
Danke nochmal. Und sorry fürs nerven.
-
gogo
- * LO-Experte *
- Beiträge: 1081
- Registriert: Sa 5. Feb 2011, 19:07
Beitrag
von gogo » Di 22. Nov 2011, 16:26
Das Prompt mit dem SQL-String kommt nicht? Dann wird das Makro nicht ausgeführt! Du kannst auch einen Button anlegen und beim Ereignis "Aktion ausführen" das Makro zuweisen - dann sollte bei klick auf den Button das Makro ablaufen.
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
-
Cardinal
- Beiträge: 9
- Registriert: Mo 21. Nov 2011, 20:19
Beitrag
von Cardinal » Di 22. Nov 2011, 16:50
Richtig, das Makro wurde nicht ausgeführt. Jetzt hab ichs mal so eingestellt, dass es ausgeführt wird, wenn txtFirma den Fokus verliert. Wie oben schon geschrieben kommt immer noch der Laufzeitfehler bei:
oForm = ThisDatabaseDocument.FormDocuments.GetByName("Geometrie").component.drawpage.Forms.getByName("MainForm")
jedenfalls ist die Zeile markiert und der Pfeil steht davor.
Gruss Car
-
uhai
- Beiträge: 15
- Registriert: Do 10. Nov 2011, 19:06
Beitrag
von uhai » Di 22. Nov 2011, 19:32
Danke gogo,
das habe ich jetzt verstanden
uhai
-
uhai
- Beiträge: 15
- Registriert: Do 10. Nov 2011, 19:06
Beitrag
von uhai » Mi 23. Nov 2011, 06:52
ok, so weit habe ich das verstanden. Basic muss ich üben, damit habe ich zu DOS-Zeiten das letzte mal gebastelt
Könnte man das auch mit Python machen?
Wenn ich mehrere Listenfelder in einer hierarchischen Abhängigkeit habe, muss ich mehrere Variablen definieren. Immer eine weniger als Listenfelder vorhanden sind. Wie fange ich aber User-Eingaben ab, die sich nicht an der logischen Struktur entlang arbeiten sondern die Listenfelder "frei" nutzen?
uhai
-
Cardinal
- Beiträge: 9
- Registriert: Mo 21. Nov 2011, 20:19
Beitrag
von Cardinal » Mi 23. Nov 2011, 10:24
so... ich habs hingekriegt. Ist vielleicht ein riesen gebastel, mir aber eig. sch. egal, da es meine Zwecke erfüllt:
Code: Alles auswählen
Sub Listenfeld_Aendern
'erzeugt oForm und fuellt diese Variable mit dem Objekt "MainForm"
'erzeugt oTextfeld und fuellt diese Variable mit dem Objekt "txtFirma"
sFirmenname = ThisComponent.Drawpage.Forms().getByIndex( 0 ).getByName( "txtFirma" ).Text
'erzeugt sFirmenname und fuellt diese Variable mit dem String der derzeit im Feld "txtFirma" steht.
dim ssql(0) as string
'erzeugt sSQL und fuellt diese Variable mit dem gewuenschten SQL-Statement
sSQL (0) = "SELECT DISTINCT ""Projekte"".""Projektname"" FROM ""Projekte"" ""Projekte"""_
& " WHERE ""Projekte"".""Firma"" = '" & sFirmenname & "';"
print sSQL (0)
'sSQL ins Listenfeld 1 einfügen
dim oDoc as object
dim oForm as object
dim oListboxModel as object
oDoc = ThisComponent
oForm = oDoc.DrawPage.Forms(0)
oListboxModel = oForm.getByName("Listenfeld 1")
oListboxModel.ListSource() = sSQL ()
oListboxModel.refresh()
end sub
ich bedanke mich hier nochmals für die Hilfe und speziellen Dank geht an gogo, der mir ein Makro zur Verfügung gestellt hat.
Gruss Car
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.