Tabellenkontrollfelder per Makro gefüllt

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Otternase
*
Beiträge: 12
Registriert: Di, 31.07.2007 12:51

Tabellenkontrollfelder per Makro gefüllt

Beitrag von Otternase »

Heiho Forum,
So, da bin ich wieder - irgendwie habe ich immer noch nicht ganz begriffen, wie das mit dem Schreibschutz (unter anderem) funktioniert...
Ausgangsbasis:
OO-Base aktuelle Version
Mysql-Datenbank 5.O irgendwas
JDBC-Schnittstelle

Material
Eine Sql-Abfrage, die mir im MYSql_Querybrowser genau das Ergebnis liefert, das ich will:
Es sucht mir mittels geschachtelter Joins aus fünf Tabellen, die Daten zusammen, die ich brauche.

Ich habe mir ein Makro gebastelt (na ja, ehrlicherweise weitgehend abgeschrieben) das oben erwähnte Abfrage ausführt und in eine TabellenKontrollfeld in eine Formular namens "warenbestand" hineinschreibt. Das funktioniert auch super....
Das lautet so:

(...)
Sub sqlmachen
DIM zellinhalt as Variant
oForm = ThisComponent.drawpage.forms.getByName("warenbestand")
zellinhalt = oform.getByName("ArtNr").Text
If (zellinhalt="") Then
Tabelle_aktualisieren ("SELECT warenbestand.ArtikelNr, warenbestand.ArtikelName, products_options.products_options_name, products_options_values.products_options_values_name, products_options_values_sub.products_options_sub_values_name, products_options_sub.products_count FROM (rota.warenbestand) left JOIN (rota.products_attributes, rota.products_options, rota.products_options_values) ON (products_attributes.products_id = warenbestand.products_id and products_options.products_options_id = products_attributes.products_options_id AND products_options_values.products_options_values_id = products_attributes.options_values_id) Left Join (rota.products_options_sub, rota.products_options_values_sub) ON (products_options_sub.products_attributes_id = products_attributes.products_attributes_id AND products_options_values_sub.products_options_sub_values_id = products_options_sub.products_options_sub_values_id) ORDER BY warenbestand.ArtikelNr")
Else
Tabelle_aktualisieren ("SELECT warenbestand.ArtikelNr, warenbestand.ArtikelName, products_options.products_options_name, products_options_values.products_options_values_name, products_options_values_sub.products_options_sub_values_name, products_options_sub.products_count FROM (rota.warenbestand) LEFT JOIN (rota.products_attributes, rota.products_options, rota.products_options_values) ON (products_attributes.products_id = warenbestand.products_id and products_options.products_options_id = products_attributes.products_options_id AND products_options_values.products_options_values_id = products_attributes.options_values_id) LEFT Join (rota.products_options_sub, rota.products_options_values_sub) ON (products_options_sub.products_attributes_id = products_attributes.products_attributes_id AND products_options_values_sub.products_options_sub_values_id = products_options_sub.products_options_sub_values_id) WHERE warenbestand.ArtikelNr= '" + zellinhalt + "' ORDER BY warenbestand.ArtikelNr")
End if
End Sub

Sub Tabelle_aktualisieren(sSQL as string)
oDoc = thisComponent
oForm = oDoc.drawpage.Forms.getByName("warenbestand")
oForm.command = sSQL
oForm.CommandType = 2
oForm.reload()
End Sub
(...)
Am Ende habe ich eine tolle (echt, wirklich, ohne ironie) Übersicht über meinen kleinen Warenbestand...

Aber, so meine Frage: Ist es zu vermessen von mir zu hoffen, dass dieses Tabellenkontrollfeld jetzt auch noch editierbar ist bzw. editierbar werden kann? dgb_properties behauptet "Allowupdate" stände auf True - was ich ja für glatt gelogen halte....
Will sagen, ist es möglich, z.B. in dem Tabellen-Kontrollfeld direkt einzelne Daten zu manipulieren? und wenn ja, wie waäre das wohl ins Werk zu setzen

Oder ist mein Ansatz so grundsätzlich falsch (im Makro, in der Verwendung des Tabellen-Kontrollfeldes, in der Verwendung eines Formulars), dass ich besser alles wegschmeisse und einen neuen Weg gehe? Wenn ja, welchen?

Seid alle bedanket für guten Rat

Euer Otternase