Hola no se si solucionaste le problema pero yo estaba buscando algun comando para cerrar openoofice/libreoffice por medio de una macro, y encontré la funcion que usas
Gracias es lo que buscaba. Con respecto a tu problema yo tambien estoy trabajando con MySql.
A mi no se me presento ese problema con la base de datos.
por lo que veo en el codigo nunca cerras la conexión.
Yo uso para conectarme a la base el conector MySql Conector.
Te dejo un ejemplo de una Funcion que hace una consulta a la base de datos y los datos devueltos los cargo en un ListBox
Fijate que uso la sentencia Ocon.Close para cerrar la conexión
Código: Seleccionar todo
Sub Buscar_FiltroText(Dialogo As Object)
Dim oDlg As Object
oDlg = Dialogo.getControl("Datos")
Dim oParms(2) As New "com.sun.star.beans.PropertyValue"
Dim oCon as Object
oManager = CreateUnoService("com.sun.star.sdbc.DriverManager")
sURL = "sdbc:mysqlc:://localhost:3306/base_elementos"
oParms(0).Name = "user"
oParms(0).Value = "gustavo" ' Usuario del servidor MySql
oParms(1).Name = "password"
oParms(1).Value = "21525406" 'Passwor del usuario del servidor MySql
oParms(2).Name = "JavaDriverClass"
oParms(2).Value = "com.mysql.jdbc.Driver"
oCon = oManager.getConnectionWithInfo(sURL, oParms()) 'Creamos la conexión
oStatement = oCon.createStatement() 'Create an SQL statement object
Buscar = UCase(oDlg.getControl("Filtro_Texto").Text) 'TextBox con el texto a buscar
' buscamos en la columna numero de la tabla de datos elementos, donde numero contenga al texto que esta en el ListBox y devuelve los primeros 10 registros.
sSQL = "SELECT numero FROM base_Elementos.elementos WHERE numero LIKE '" & Buscar & "%' ORDER BY numero ASC LIMIT 0, 10 ;"
oResultSet = oStatement.executeQuery(sSQL)
Registro = 0
dim DatoFiltro(Registros) 'Matriz para guardar los codigos de la Plaforma
While oResultSet.next
DatoFiltro(Registro) = oResultSet.getString(1) 'Cantidad Maxima de registros
Registro = Registro + 1
Redim Preserve DatoFiltro(Registro) 'Redimensionamos la matriz para agregar el dato nuevo conservando los datos existentes
Wend
ListBox_Datos = oDlg.getControl("Datos")
ListBox_Datos.RemoveItems (0, ListBox_Datos.ItemCount) 'Limpiamos el ListBox
ListBox_Datos.addItems(DatoFiltro(), 0) 'Cargamos el ListBox con los datosde la matriz
ListBox_Datos.selectItemPos(0, true) 'Seleccionamos la primera posición del ListBox
Erase DatoFiltro 'Borramos La Matriz
oCon.Close 'Cerramos la conexión
End Sub
Si ya lo resolviste bueno no hay problema pero a lo mejor le es útil para otros.