Após muita pesquisa vai a conversão:
Private Sub btnExcluir_Click() ( vide o código completo na pergunta principal - VBA )
No LibreOffice Base
Sub btn_excluir_sw_all
Dim Form1, SubForm_1, oConsulta, cmb_softw, cons_subtab As Object, sSQL1, sSQL2 As String
Set Form1=Forms("frm_licenca_sw")
Set SubForm_1 = Form1.Controls("Subform")
Set cons_subtab = SubForm_1.form.Controls("Controle_de_tabela_1")
Set cmb_softw=Form1.Controls("txtSoftware")
oConsulta = ThisDatabaseDocument.DataSource.QueryDefinitions.getByName ("cons_subtab_licenca_sw")
sSQL1 = ("DELETE FROM `c06`.`tab_licenca` WHERE `software` = '" & cmb_softw.Value & "';")
sSQL2 = ("DELETE FROM `c06`.`tab_software` WHERE `nome` = '" & cmb_softw.Value & "';")
RunSQL(sSQL1)
RunSQL(sSQL2)
cmb_softw.Value=""
'Form1.Requery
atualiza_form_sw
End Sub
Private Sub txtMicro_AfterUpdate() e Private Sub txtSoftware_AfterUpdate()
( vide o código completo na pergunta principal - VBA )
No LibreOffice Base
Sub atualiza_form_licenca_sw
'---DECLARA VARIÁVEIS---------------------------------------------
Dim Form1, oConsulta, oConsulta2, cmb_codsw, SubForm_1, SubForm_2, cons_subtab,cons_subtab2, oLicencas, oUtilizadas, oCampo_numerico_1, oCampo_numerico_2, oCampo_numerico_3, label_1, label_2 As Object, x, y, r, w, z as integer, sSQL as String
'---SETA VARIÁVEIS A OBJETOS DO FORMULÁRIO------------------------
Set Form1=Forms("frm_licenca_sw")
cmb_codsw=Form1.Controls("txtSoftware")
oCampo_numerico_1 = Form1.Controls("Campo numérico 1")
oCampo_numerico_2 = Form1.Controls("Campo numérico 2")
oCampo_numerico_3 = Form1.Controls("Campo numérico 3")
label_1 = Form1.Controls("Caixa de texto 1")
label_2 = Form1.Controls("Caixa de texto 2")
'---SETA VARIÁVEIS A OBJETOS DOS SUBFORMULÁRIOS NO FORM PRINCIPAL--
Set SubForm_1 = Form1.Controls("Subform")
Set cons_subtab = SubForm_1.form.Controls("Controle_de_tabela_1")
Set oLicencas = cons_subtab.Controls("TextField3")
'----------------------------------------------------------
Set SubForm_2 = Form1.Controls("Subform2")
Set cons_subtab2 = SubForm_2.form.Controls("Controle_de_tabela_2")
Set oUtilizadas = cons_subtab2.Controls("TextField1")
'---SETA VARIÁVEIS A OBJETOS DO BANCO DE DADOS------------------------
oConsulta = ThisDatabaseDocument.DataSource.QueryDefinitions.getByName ("cons_subtab_licenca_sw")
oConsulta2 = ThisDatabaseDocument.DataSource.QueryDefinitions.getByName ("cons_contar_subtab_licenca_sw")
'---EXECUTA INSTRUÇÕES SQL NAS CONSULTAS------------------------
oConsulta.Command = "SELECT DISTINCT `tab_licenca`.`cod_hw`, `tab_licenca`.`software`, `tab_software`.`total_licencas_adquiridas`, `tab_software`.`licencas_restantes` FROM `c06`.`tab_licenca` AS `tab_licenca`, `c06`.`tab_software` AS `tab_software` WHERE `tab_licenca`.`software` = `tab_software`.`nome` AND `tab_licenca`.`software` = '" & cmb_codsw.Value & "' ORDER BY `tab_licenca`.`cod_hw` ASC, `tab_licenca`.`software` ASC"
oConsulta2.Command = "SELECT COUNT(`software`) FROM `cons_subtab_licenca_sw`"
'---INICIO--------------------------------------
Form1.Requery
if oLicencas.Value="Livre" then 'Trata Valor texto em campo numérico
label_1.Visible=True
label_2.Visible=True
oCampo_numerico_1.Visible=False
oCampo_numerico_3.Visible=False
if IsEmpty (oUtilizadas.Value) then 'Trata valores Nulos
oCampo_numerico_2.Value = 0
else
x = oUtilizadas.Value
z = CInt (x)
oCampo_numerico_2.Value = z
endif
sSQL = "UPDATE `c06`.`tab_software` SET `licencas_restantes` = ('Livre') WHERE `nome` = ('" & cmb_codsw.Value & "');"
RunSQL(sSQL)
elseif IsEmpty (oLicencas.Value) then 'Trata valores Nulos
label_1.Visible=False
label_2.Visible=False
oCampo_numerico_1.Visible=True
oCampo_numerico_3.Visible=True
y = 0
oCampo_numerico_1.Value = y
if IsEmpty (oUtilizadas.Value) then 'Trata valores Nulos
oCampo_numerico_2.Value = 0
else
x = oUtilizadas.Value
z = CInt (x)
oCampo_numerico_2.Value = z
endif
r = CInt(y) - CInt(z)
if r > 0 then 'Altera cor da fonte da caixa de texto condicionalmente para alertar sobre valores
oCampo_numerico_3.ForeColor = RGB(0, 0, 192) 'Azul
elseif r = 0 then
oCampo_numerico_3.ForeColor = RGB(0, 0, 0) 'Preto
else
oCampo_numerico_3.ForeColor = RGB(255, 0, 0) 'Vermelho
endif
oCampo_numerico_3.Value = r 'Resultado final da qtd de licenças disponíveis exibida na caixa de texto.
sSQL = "UPDATE `c06`.`tab_software` SET `licencas_restantes` = ('" & oCampo_numerico_3.Value & "') WHERE `nome` = ('" & cmb_codsw.Value & "');"
RunSQL(sSQL)
else 'Converte variáveis para números afins de execução de cálculos
label_1.Visible=False
label_2.Visible=False
oCampo_numerico_1.Visible=True
oCampo_numerico_3.Visible=True
y = oLicencas.Value
w = CInt (y)
oCampo_numerico_1.Value = w
if IsEmpty (oUtilizadas.Value) then 'Trata valores Nulos
oCampo_numerico_2.Value = 0
else
x = oUtilizadas.Value
z = CInt (x)
oCampo_numerico_2.Value = z
endif
r = CInt(w) - CInt(z)
if r > 0 then 'Altera cor da fonte da caixa de texto condicionalmente para alertar sobre valores
oCampo_numerico_3.ForeColor = RGB(0, 0, 192) 'Azul
elseif r = 0 then
oCampo_numerico_3.ForeColor = RGB(0, 0, 0) 'Preto
else
oCampo_numerico_3.ForeColor = RGB(255, 0, 0) 'Vermelho
endif
oCampo_numerico_3.Value = r 'Resultado final da qtd de licenças disponíveis exibida na caixa de texto.
sSQL = "UPDATE `c06`.`tab_software` SET `licencas_restantes` = ('" & oCampo_numerico_3.Value & "') WHERE `nome` = ('" & cmb_codsw.Value & "');"
RunSQL(sSQL)
endif
Form1.Requery
'print z
End Sub
Private Sub btnIncluir_Click() ( vide o código completo na pergunta principal - VBA )
No LibreOffice Base
Sub btn_incluir
Dim Form1, oConsulta, cmb_codhw, cmb_softw As Object, sSQL As String
Set Form1=Forms("frm_licenca_hw")
cmb_codhw=Form1.Controls("txtMicro")
cmb_softw=Form1.Controls("txtSoftware")
oConsulta = ThisDatabaseDocument.DataSource.QueryDefinitions.getByName ("cons_subtab_licenca_hw")
sSQL = "INSERT INTO `c06`.`tab_licenca` (`cod_hw`, `software`) VALUES ('" & cmb_codhw.Value & "','" & cmb_softw.Value & "');"
RunSQL(sSQL)
oConsulta.Command = "SELECT DISTINCT `cod_hw`, `software` FROM `c06`.`tab_licenca` AS `tab_licenca` WHERE `cod_hw` = '" & cmb_codhw.Value & "' ORDER BY `cod_hw` ASC, `software` ASC"
cmb_softw.Value=""
Form1.Requery
End Sub
Private Sub btnFechar_Click() ( vide o código completo na pergunta principal - VBA )
No LibreOffice Base
Sub fechaForms
REM Macro generica para fechar qualquer forms
StarDesktop.CurrentComponent.CurrentController.Frame.close( true )
End Sub
Espero ter ajudado…