Listeneinträge aus Datenbank einfügen
Verfasst: Mi, 21.12.2005 13:25
hallo zusammen!
eins vorweg: habe wenig ahnung von makros und habe das folgende makro aus einem buch modifiziert.
habe folgendes problem: in einem dialog sollen 2 listboxen erstellt werden, wobei die inhalte aus einer mysql-datenbank stammen.
mit der listbox, in der die Personennamen erscheinen, hat das auch soweit geklappt. versuche ich jedoch vorher noch die andere listbox mit den firmennamen zu füllen gibt es folgende fehlermeldung (stelle im Code mit ******* markiert):
"es ist eine exception aufgetreten Type: com.star.lang.DisposedException"
hier einmal mein basiccode:
Sub DialogStart
Dim objDatabaseContext As Object
Dim objDataSource As Object
Dim objConnection As Object
Dim objInteractionHandler as Object
Dim objStatement As Object
Dim objStatement1 As Object
Dim objResultSet As Object
Dim objResultSet1 As Object
Dim strListe() As String
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")
objResultSet1 = _
objStatement.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(objResult1) Then
While objResultSet1.next
Dlg.getControl("Listbox2").addItem(objResultSet1.getString(1),j)
j = j+1
Wend
End If
Dlg.Execute()
objResultset.Close()
objStatement.Close()
objConnection.Close()
End Sub
kann mir da jemand weiterhelfen?
und wie kriege ich es anschließend hin, dass er nur die personen aufführt, die zur oben ausgewählten firma gehören? die personen sind über die "id" mit den firmen verknüpft.
gruß
jens
eins vorweg: habe wenig ahnung von makros und habe das folgende makro aus einem buch modifiziert.
habe folgendes problem: in einem dialog sollen 2 listboxen erstellt werden, wobei die inhalte aus einer mysql-datenbank stammen.
mit der listbox, in der die Personennamen erscheinen, hat das auch soweit geklappt. versuche ich jedoch vorher noch die andere listbox mit den firmennamen zu füllen gibt es folgende fehlermeldung (stelle im Code mit ******* markiert):
"es ist eine exception aufgetreten Type: com.star.lang.DisposedException"
hier einmal mein basiccode:
Sub DialogStart
Dim objDatabaseContext As Object
Dim objDataSource As Object
Dim objConnection As Object
Dim objInteractionHandler as Object
Dim objStatement As Object
Dim objStatement1 As Object
Dim objResultSet As Object
Dim objResultSet1 As Object
Dim strListe() As String
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")
objResultSet1 = _
objStatement.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(objResult1) Then
While objResultSet1.next
Dlg.getControl("Listbox2").addItem(objResultSet1.getString(1),j)
j = j+1
Wend
End If
Dlg.Execute()
objResultset.Close()
objStatement.Close()
objConnection.Close()
End Sub
kann mir da jemand weiterhelfen?
und wie kriege ich es anschließend hin, dass er nur die personen aufführt, die zur oben ausgewählten firma gehören? die personen sind über die "id" mit den firmen verknüpft.
gruß
jens