Les expongo mi problema. Tengo un formulario donde se almacenan Actuaciones llevadas a cabo por personas, el cual tiene incrustado un listbox (combobox) donde deben aparecer insertadas todas las personas existentes en el sistema, las cuales han sido almacenadas en la tabla Personas, el cual tiene asociado formulario del mismo nombre.
Las tablas Personas y Actuaciones, no están relacionadas directamente, existiendo otras relaciones con tablas intermedias.
Es posible que desde el formulario actuaciones se agreguen nuevas personas haciendo llamada desde el mismo al formulario de Personas. Pero a la vuelta, el listbox antes indicado debe contener los datos actualizados, es decir, debe contener las personas que efectivamente están en la tabla personas.
He usado el siguiente código para cargar los datos en el llistbox de forma dinámica, pero me da error, y no acabo de descubrir el motivo:
Código: Seleccionar todo
Sub RefrescaDatosFrmActuaciones (oEvent as Object)
Dim oForm as Object, oControl as Object
Dim oStat As Object, oRes As Object
Dim sSQL as string
Dim VarItems() As String
Dim posicion as long
oControl = oEvent.Source.Model
oForm = oControl.Parent
sSQL = "SELECT ""DNI"" FROM ""Personas"" ORDER BY ""DNI"" ASC"
oStat = ThisDatabaseDocument.CurrentController.ActiveConnection.CreateStatement()
oStat.setPropertyvalue("ResultSetType", com.sun.star.sdbc.ResultSetType.SCROLL_SENSITIVE)
oRes = oStat.executeQuery(sSQL)
posicion = 0
If Not IsNull(oRes) Then
While oRes.next
redim preserve VarItems(posicion)
VarItems(posicion) = oRes.getString(1) ' DNI
posicion = posicion + 1
Wend
oControl.ListSource=VarItems()
endif
End Sub
Código: Seleccionar todo
Sub RefrescaDatosFrmActuaciones (oEvent as Object)
oEvent.Source.getDrawPage.getForms.getByIndex(0).getByName("cmbPersonas").refresh()
End Sub
Gracias de antemano por su tiempo.