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

Dans le code OOo.org Basic je ne vois pas de commande d'équivalence à la
fonction : Function OpenForm

En effet ; la démarche est sensiblement différente.

Cette demande fait suite au constat que le switchboard s'il apporte un
début de réponse à un menu d'accueil, ne proposant pas de commande
Requêtes, il ne donne pas les moyens à un utilisateur lambda de profiter
pleinement d'une Base de données.
Quelqu'un aurait-il une réponse ?
Claude


Bonne continuation.

--
Francois Gatto
Ubuntu 10.04
OpenOffice.org 3.2.1

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Répondre à