Olá Júlio
Sei que a minha resposta não preenche exatamente a sua pergunta mas vamos
lá. No formulário que queremos que seja aberto automaticamente, adiciono a
seguinte sub nas suas macros:
Sub AutoExec
On Error Goto HandleError
Dim LastFrame As Object
Dim NumFrames As Integer
Static FormDocs As Object
Dim DBDoc As Object
Dim ImpName As String
Dim DataSource As Object
Dim Conn As Object
Dim Args(1) As New com.sun.star.beans.PropertyValue
Dim FormName As String
Dim FormDoc As Object
FormName="Main" REM CHANGE TO YOUR FORM NAME
ImpName="com.sun.star.comp.dba.ODatabaseDocument" REM implementation name
for a db doc
NumFrames=StarDesktop.Frames.Count
LastFrame=StarDesktop.Frames.getByIndex(NumFrames-1) REM 0 BASED
REM A BASE FORM OPENS AS A CHILD FRAME INSIDE THE BASE FRAME
REM SO, THE TOP FRAME IN THE DESKTOP IS STILL BASE WHICH CAUSES THIS CODE
TO FINISH
REM EXECUTION EVERY TIME A FORM IS OPENED
REM SO, I CHILL CHECK TO SEE IF THE LAST FRAME HAS SUB FRAMES, IF SO, EXIT
REM NOT AN IDEAL SOLUTION, BUT IT WILL DO FOR NOW
If LastFrame.Frames.Count>1 Then
Exit Sub
End If
If Not (LastFrame.Controller.Model.ImplementationName=ImpName) Then
Exit Sub REM not a db doc
End If
DataSource=LastFrame.Controller.DataSource
DBDoc=DataSource.DatabaseDocument
FormDocs=DBDoc.FormDocuments
Conn=DataSource.getConnection("","") REM no user/password
Args(0).Name="ActiveConnection" : Args(0).Value=Conn
if FormDocs.hasByName(FormName) Then
FormDoc=FormDocs.loadComponentFromURL(FormName,"_self",2,Args() )
FormDoc.CurrentController.Frame.ContainerWindow.setFocus()
End If
HandleError:
If Err<>0 Then
Exit Sub
End If
End Sub
Na linha 13, não se esqueça de alterar FormName="Main" trocando Main pelo
nome do seu formulário. Então, para ativar esta macro toda vez que o
Openoffice é aberto, vamos em Ferramentas->Personalizar->Eventos->Abrir
Documento, clicam em "Macro..." e procura pela macro AutoExec, seleciona ela
e vai clicando Ok, Ok, etc. Fecha o Openoffice e reabre o arquivo, e o
formulário será automaticamente exibido, e toda vez que um outro formulário
for fechado este será novamente reexibido.
creio que outra alternativa seria ao invés de mudar a configuração do
OpenOffice, executar esta macro através de um argumento de linha de comando
do tipo
soffice <nome_do_arquivo> "macro://<nome_do_arquivo>/Module1.AutoExec"
Claro que as macros devem estar ativadas através de
Ferramentas->opções->BrOffice.org->Segurança->Segurança de macro
Abraços
Juari
2008/6/20 Julio Franco <[EMAIL PROTECTED]>:
> Pessoal.
>
> Como faço para acessar um formulário criado no base sem precisar abrir o
> banco de dados e dar duplo-clique no formulário, como se fosse um atalho na
> área de trabalho.
>
> Obrigado,
> Júlio
>
>
>
>
--
home rig:
E2160 [EMAIL PROTECTED] (9*300, 1.30V)
XFX 8600GT 620/[EMAIL PROTECTED]/1760Mhz
2x1Gb Kinsgton [EMAIL PROTECTED] dual 5-5-5-15
Asus P5K SE
Zalman ZM360B-APS
mobile:
HP Pavillion DV6230BR with extended 24 months warranty
Turion MK-36 2.0 Ghz
2Gb DDR2-667Mhz dual
802.11g Wi-Fi
work:
Celeron 2400Mhz
256Mb DDR
40Gb PATA drive
--> real government rig! <--