nach einigem basteln hab ich diesen funktionierenden code herausgefunden:
Sub DialogStart
Dim objDatabaseContext As Object
Dim objDataSource As Object
Dim objConnection As Object
Dim objConnection1 As Object
Dim objInteractionHandler as Object
Dim objStatement As Object
Dim objStatement1 As Object
Dim objResultSet As Object
Dim objResultSet1 As Object
Dim i As integer
Dim j As integer
i = 1
j = 1
objDatabaseContext = _
createUnoService("com.sun.star.sdb.DatabaseContext")
objDataSource = objDatabaseContext.getByName("Linux4")
If Not objDataSource.IsPasswordRequired Then
objConnection = objDataSource.GetConnection("","")
Else
objInteractionHandler = _
createUnoService("com.sun.star.sdb.InteractionHandler")
objConnection = _
objDataSource.ConnectWithCompletion(objInteractionHandler)
End If
objStatement = objConnection.createStatement()
objResultSet = _
objStatement.executeQuery("Select `Name` FROM `Daten`.`Personen` `Personen` Order By `Name` Asc")
objConnection1 = _
objDataSource.ConnectWithCompletion(objInteractionHandler)
objStatement1 = objConnection1.createStatement()
objResultSet1 = _
objStatement1.executeQuery("Select `NA1` FROM `Daten`.`Firmen` `Firmen` Order By `NA1` Asc")
DialogLibraries.LoadLibrary("Standard")
Dlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
Dlg.Title = "Personenauswahl"
If Not IsNull(objResultSet) Then
While objResultSet.next
Dlg.getControl("ListBox1").addItem(objResultSet.getString(1),i)
i = i+1
Wend
End If
If Not IsNull(objResultSet1) Then
While objResultSet1.next
Dlg.getControl("ListBox2").addItem(objResultSet1.getString(1),j)
j = j+1
Wend
End If
Dlg.Execute()
objResultset.Close()
objResultset1.Close()
objStatement.Close()
objConnection.Close()
End Sub
wahrscheinlich etwas umständlich, kenne mich aber wie gesagt kaum mit makros aus.
aber jetzt stellt sich für mich immer noch das 2. problem:
wie kann ich es denn erreichen, dass in der 2. listbox nur die personen angezeigt werden, die zu der firma gehören, die in der 1. listbox ausgewählt wurden? Personen sind über eine id miteinander verknüpft.
ich weiß zwar ungefähr, wie ich markierte einträge aus einer listbox auslesen kann, aber wie bekomme ich denn die variable in den sql-code für die 2. listbox?
bin froh um jeden ratschlag!
gruß
jens