Hallo Leute,
hab ma wieder ein kleines für mich unlösbares Problem....
Innerhalb eines Dialogs wähle ich mit Hilfe voneindander abhängigen Comboboxen eine Datensatznummer aus. (Das funktioniert noch alles und die Nummer kann ich mir auch ausgeben Lassen)
Jetzt möchte ich diese Datensatznummer dazu verwenden in aus verschiedenen Tabellen meiner Datenbank Werte auszugeben.
Hierzu hab ich mir zwei verschiedene Lösungsansätze überlegt:
1. Die Datensatznummer aus dem Dialog in ein Makro einbinden, dass dann über eine SQL Abfrage:
Code: Alles auswählen
SELECT DISTINCT FR FROM Weight2 WHERE ID = Datensatznummer
den gesuchten Wert aus einer Tabelle ausliest. (Bis hier klappt alles so weit)
Als nächsten Schritt möchte ich dann aber diesen Wert in eine List- oder ComboBox eintragen. Da diese sich aber in einem Formular befinden, weiß ich nicht wie das funktioniert. Die Funtkionen addItem und removeItems rufen folgenden Feheler hervor: Methode oder Eigenschaft nicht gefunden?
Mir folgendem code Versuche ich einen Eintrag in eine List oder ComboBox in einem Formular zu schreiben:
Code: Alles auswählen
Sub FL_Fuellen
Dim oDoc as Object
Dim oDocCtl as Object
Dim oSheet as Object
Dim oDraw as Object
Dim oForm as Object
Dim oElement as Object
Dim oElementView as Object
Dim s
oDoc = thisComponent
oDocCtl = oDoc.getCurrentController()
oSheet = oDoc.sheets.GetByName ("Weight 2")
oDraw = oSheet.drawpage
oForm = oDraw.getForms.GetByName("Formular1")
oElement = oForm.getByName("ComboBox1")
oElementView = oDocCtl.getControl(oElement)
'MsgBox oElementView.dbg_properties
oCombobox1 = oElement
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("Neue Datenbank5.1")
Connection = DataSource.GetConnection("","")
Statement = Connection.createStatement()
ResultSet = Statement.executeQuery("SELECT DISTINCT FR FROM Weight2")
i=0
If not isNull (ResultSet) then
Do while ResultSet.Next
i= i+1
s = Resultset.getString(1) '&'Chr(13)
Msgbox s
oComboBox1 = oElement
oComboBox1.removeItems(i-1, 5)
'oComboBox1.removeItems(i-1, oComboBox1.getItemCount()) 'schränkt ein wie viele gespeichert werden
oComboBox1.addItem(s,-1) ' beeinflusst ab was für einem Datensatz gespeichert wird
Loop
end if
end sub
2. Variante die ich mir überlegt have:
Der Box über Ihre "Eigenschaften" und mittels SQL Befehl die richtigen Daten zuweisen. Problem hierbei: Innerhalb des SQL Befehls (Hier muss man "richitges" SQL verwenden oder?) kann ich jetzt nur feste Parameter für die WHERE Abfrage übergeben:
Code: Alles auswählen
SELECT `FR` FROM `mysql`.`weight2` AS ``weight2`WHERE `ID` = 2
Ich müsste theoretisch die 2 durch die Datensatznummer aus meinen Dialog ersetzten.
Code: Alles auswählen
SELECT `FR` FROM `mysql`.`weight2` AS ``weight2`WHERE `ID` = Datensatznummer aus Dialog
Ich vermute aber mal, dass das nicht geht oder?
Ich Hoffe Ihr versteht meine Probleme und jemand hat vielleicht einen Typ euch?
Vielen Dank schon mal für eure Mühen!
Ich verwende oo3.2 unter windows 7 mit Verbindung zu MySQL 5.2. Die Verbindung funktioniert.
Gruß hoffie