O que eu preciso é criar uma macro que faça a barra de rolagem “funcionar” sozinha.
Observação: a barra de rolagem a que me refiro é um controle de formulário, que pode ser vinculada a uma célula.
A partir da versão 4 do LibreOffice já vem incorporado a extensão “access2base”, se a sua versão for anterior a 4, vc pode ir no site w.w.w.access2base.c.o.m (tive que botar pontos pq o karma não deixa inserir link) e baixar e instalar normalmente ( no help do Libreoffice tem como instalar a extensão access2base ), ela faz com que vc possa programar uma sintaxe próxima ao VBA como era no MSAcess
Uma vez instalada no LibreOffice, para ativá-la vc vai no LibreOffice Base ( banco de dados ) e faz os seguintes procedimentos:
- Criar uma nova macro → Ferramentas–>Macro–>Organizar Macros–>LibreOffice Basic
- Na janela que se abrir, expanda o ícone do seu arquivo de banco de dados.odt -->Standard ( selecione-o clicando com o mouse sobre ele
- Clique no Botão novo e vai abrir um editor de código
- Cole o seguinte código:
Sub DBOpen(Optional poEvent As Object) If GlobalScope.BasicLibraries.hasByName("Access2Base") then GlobalScope.BasicLibraries.LoadLibrary("Access2Base") Call OpenConnection(ThisDatabaseDocument) End Sub
( O nome dessa função será DBOpen )
-
Salve e feche a janela do editor de código
-
Vá no Menu Ferramentas → Personalizar–>Aba Eventos–>selecione o evento “Ao inicar o aplicativo”–>clique no botão Macro
-
- Na janela que se abrir ( na coluna Biblioteca ), expanda o ícone do seu arquivo de banco de dados.odt -->Standard ( selecione-o clicando com o mouse sobre ele)–> na coluna “nome da macro” selecione a macro DBOpen–> e clique no botão “OK”
-
Salve, fecha o banco de dados e abra novamente para efetivar a mudança, ao fazê-lo o Libreoffice incorpora a biblioteca acess2base.
Agora pra resolver seu problema vc:
- Faz o mesmo procedimento acima até a parte que ensina a criar um nova macro.
- Cole o seguinte código:
’ declara 2 variáveis tipo “Object” ( uma pro form e outra pro control) que tem os métodos dos objetos tipo .text, '.value, etc
`Dim ofFormA As Object, ocControl As Object
ofFormA = Forms("nome do formulário")
ocControl = Controls(ofFormA, "nome_do_controle") 'Ex: skrl_rolagem
ocControl.Value = 50 `
'A Barra de rolagem vai pro valor 50 ( no meio, pois varia de 0 a 100) e vc pode mudar nas propriedades do controle no modo design, é a propriedade .Value que vc pode manipular, não testei se vc pode "capturar o valor de onde ela estiver no momento, faça vc esse teste.
’ já pode trabalhar com os métodos e propriedades dos objetos como no VBA do MSAccess
No Access quando vc digitava o “ponto” (.) aparecia uma lista deles automaticamente, no Libre não
O problema é que não tem em português algo que fale quais os métodos e propriedade dos objetos no formulário, mas no site do access2base tem descrito como funciona tudo, mas está em inglês.
Nome meu caso que não sei inglês eu acesso o site com o google crhome que tem o recurso de tradução automática
junto com a versão em inglês caso os códigos de exemplo também sejam trazidos.
Espero ter ajudado…