es geht um folgendes. ich habe 2 Listboxen. Die eine Listbox fülle ich mit Hilfe eines Makros per SQL Abfrage. Das funktioniert auch soweit. Nun möchte ich die zweite Listbox in Abhängigkeit der ersten befüllen.
Beispiel: Ich wähle in Listbox 1 A aus, dann soll Listbox 2 ohne weiteren Mausklick mit A1, A2, A3 etc. gefüllt werden.
Soweit ich bisher rausbekommen habe muss ich erst einmal den selektierten Wert aus Listbox 1 ermitteln, was mit der Funktion .SelectedItem() funktionieren soll. Nur wie ich diese Variable dann in eine SQL Abfrage einbinde ist mir bisher nicht ganz klar. Hoffentlich hat hier jemand eine passende Lösung zur Hand.
Hier mal mein bisheriger Code:
Code: Alles auswählen
Sub REDialogAusfuehren
    'Variablen deklarieren
    Dim REDialog as Object 
    Dim REObjektBox as Object
    Dim REGattungBox as Object
    Dim REConnection as Object
    Dim REDatasource as Object
    Dim SQL_Anweisung as Object
    Dim Objektabfrage as String
    'Dialog aufrufen
    DialogLibraries.LoadLibrary("Test12")
    REDialog = createUnoDialog(DialogLibraries.Test12.DialogRechnungen)
    'Datenbank Verbindung
    DatabaseContext=createUnoService("com.sun.star.sdb.DatabaseContext")
    If DatabaseContext.hasByName("Test12_DB")=true Then
    Datenquelle = DatabaseContext.getByName("Test12_DB")
    Else
    MsgBox("Falsche Datenbank angemeldet")
    End If
    If Not Datenquelle.IsPasswordRequired Then
    Verbindung = Datenquelle.GetConnection("","")
    Else
    Authentifizierung = createUnoService("com.sun.star.sdb.InteractionHandler")
    Verbindung = Datenquelle.ConnectWithCompletion(Authentifizierung)
    End If
    SQL_Anweisung = Verbindung.createStatement()
    Objektabfrage = "Select ""AufgabenID"" From ""aufgaben"""
    Objektergebnis = SQL_Anweisung.executeQuery(Objektabfrage)
    REObjektBox = REDialog.GetControl("ListBox1")
    REObjektBox.removeItems(0, REObjektBox.getItemCount())
    While Objektergebnis.next
    ListBoxItem=Objektergebnis.getString(1)
    REObjektBox.additem(ListBoxItem, REObjektBox.ItemCount)
    Wend
End SubCode: Alles auswählen
 Sub ListBox1_ItemStatusChanged (Event
 as Object)     Dim strSQL As String
        Dim ListBox As Object
        Dim Selected As String
    Selected=Event.Source.SelectedItem()
        strSQL="SELECT ""Gattung"" FROM ""aufgaben"" WHERE ""AufgabenID""=" &
 Selected & ""
    ListBox=Event.Source.Model.Parent.getByName("ListBox2")
    ListBox.ListSourceType=com.sun.star.sdb.ListSourceType.SQL
     ListBox.ListSource=Array(strSQL) 
End SubGrüße
Kenji