Claude FRICARD a écrit :
François,
J'ai essayé avec le bout de code que tu m'as donné : la macro s'exécute mais aucun résultat ne s'affiche , que faut-il ajouter pour cela ? une MsgBox ? la commande Dispatch ne devrai-elle pas le faire ? sachant que la requête est R_Ouvrage_le_plus_cher
Le code :
sub onClickButton( oEvent as object )

 '"Query1" = R_Ouvrage_le_plus_cher
openQueryDataView( "Query1", oEvent.Source.Model.Parent.ActiveConnection )

end sub

sub OpenQueryDataView( aQueryName as string, aConnection as variant )

    dim oDesktop, oDispatchObject
    dim aURL as New com.sun.star.util.URL
    dim aProps(5) as New com.sun.star.beans.PropertyValue

    oDesktop = createUnoService("com.sun.star.frame.Desktop")

    aURL.Complete = ".component:DB/DataSourceBrowser"

    oDispatchObject = oDesktop.queryDispatch(_
                        aURL, _
                        "_Blank",_
                        com.sun.star.frame.FrameSearchFlag.CREATE)

    aProps(0).Name = "ActiveConnection"
    aProps(0).Value = aConnection
    aProps(1).Name = "CommandType"
    aProps(1).Value = com.sun.star.sdb.CommandType.QUERY
    aProps(2).Name = "Command"
    aProps(2).Value = aQueryName
    aProps(3).Name = "ShowMenu"
    aProps(3).Value = TRUE
    aProps(4).Name = "ShowTreeView"
    aProps(4).Value = FALSE
    aProps(5).Name = "ShowTreeViewButton"
    aProps(5).Value = FALSE

    oDispatchObject.dispatch(aURL, aProps)

end sub

excuse la question d'un béotien en la matière ...

Claude


Le 09/08/2010 19:07, François Gatto a écrit :
Bonsoir Claude
Le 09/08/2010 09:35, Fricard Claude a écrit :
Bonjour,
j'avais demandé il y a quelque temps, s' il était concevable d'avoir une
macro qui ouvre une Requête plutôt qu'un formulaire. Cette question
n'avait pas eu d'écho , je veux bien croire que l'activité sur le forum
en cette période est réduite et aussi peut-être que ma question est un
peu saugrenue....

Oui la période est propice à la calmitude :D

Si j'ai bien compris l'expression de ton besoin, il s'agit de pouvoir ouvrir directement une requête sans passer par l'appel d'un formulaire.

Si tel est le cas, voici un bout de code (que tu aurais pu trouver sur le Net) :

sub onClickButton( oEvent as object )

 '"Query1" = le nom de la requête

openQueryDataView( "Query1", oEvent.Source.Model.Parent.ActiveConnection )

end sub

sub OpenQueryDataView( aQueryName as string, aConnection as variant )

    dim oDesktop, oDispatchObject
    dim aURL as New com.sun.star.util.URL
    dim aProps(5) as New com.sun.star.beans.PropertyValue

    oDesktop = createUnoService("com.sun.star.frame.Desktop")

    aURL.Complete = ".component:DB/DataSourceBrowser"

    oDispatchObject = oDesktop.queryDispatch(_
                        aURL, _
                        "_Blank",_
                        com.sun.star.frame.FrameSearchFlag.CREATE)

    aProps(0).Name = "ActiveConnection"
    aProps(0).Value = aConnection
    aProps(1).Name = "CommandType"
    aProps(1).Value = com.sun.star.sdb.CommandType.QUERY
    aProps(2).Name = "Command"
    aProps(2).Value = aQueryName
    aProps(3).Name = "ShowMenu"
    aProps(3).Value = TRUE
    aProps(4).Name = "ShowTreeView"
    aProps(4).Value = FALSE
    aProps(5).Name = "ShowTreeViewButton"
    aProps(5).Value = FALSE

    oDispatchObject.dispatch(aURL, aProps)

end sub

Si tu suis le code que tu as reçu, tu devrais avoir "R_Ouvrage_le_plus_cher " à la place de "Query1" ici :

sub onClickButton( oEvent as object )
'"Query1" = R_Ouvrage_le_plus_cher
openQueryDataView( "R_Ouvrage_le_plus_cher", oEvent.Source.Model.Parent.ActiveConnection )
end sub



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org

Reply via email to