Pergunte aqui

Histórico de revisões [voltar]

clique para ocultar/mostrar a revisão 1
Versão inicial

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...