Lancer une requête dans BO en VBA

Fermé
OMthebest - 8 juil. 2008 à 14:31
 CF Marc - 31 déc. 2008 à 13:43
Bonjour,

Je travail actuellement sur une base Access dans laquelle je dois importer des données se trouvant sur une autre base BO.
A l'heure actuelle, j'ouvre BO, modifie la query en cours (à l'aide du menu "Data/View Data..." puis "Edit..."), l'extrait dans un fichier Excel qui est lié à une table de ma base Access (avec "Export..." toujours dans "View Data...") puis je referme BO sans sauvegarder puisque la query d'origine est utilisé par une autre application est ne doit donc pas être modifiée.
J'aimerais automatiser ces actions que je dois faire tous les mois et je compte faire ça en VBA à partir de ma base Access.

J'arrive déjà à ouvrir BO, me connecter et ouvrir ma base, exporter le raport et refermer la base sans sauvegarder. J'ai écrit ma requête SQL mais le problème est que je ne sais pas comment la lancer !

Voilà mon code :

Sub Lancement()

    Call ExtractFromBO("nomDuFichierExcel.xls", "nomDuReportBO.rep")

End Sub

Sub ExtractFromBO(OutFileName As String, BOFileName As String)

    Dim objBO As busobj.Application
    Dim docBO As busobj.Document
    Dim repBO As busobj.Report
    Dim SQLQuery As String

' ----------------- ouvre Businessobject  ------------------------------

    Set objBO = New busobj.Application
    
    objBO.Interactive = True
    
    objBO.LoginAs "nomDUtilisateur", "motDePasse", False, "nomDeDomaine"
    
    objBO.Visible = True

'---------------------  lance requête BO  ------------------------------
 
    Set docBO = objBO.Documents.Open(BOFileName)
    
    objBO.Interactive = False
    
    SQLQuery = "SELECT PleinDeChamps" & _
               "FROM PleinDeTables" & _
               "WHERE PleinDeConditions" & _
               "Group BY PleinsDAutresChamps" & _
               "HAVING UneAutreCondition"

'   c'est ici que ça se complique...comment lancer cette belle requête?
    docBO.DataProviders.AddQueryTechnique("eFashion").Sql = SQLQuery   -> cela ne marche pas!

    Set repBO = docBO.Reports.Item(1)

'   pas d'autre moyen pour exporter en Excel
    repBO.ExportAsHtml (OutFileName)

'---------------------  ferme BO  --------------------------------------
 
    docBO.Close (False)
    objBO.Quit
     
    Set docBO = Nothing
    Set repBO = Nothing
    Set objBO = Nothing
 
End Sub

Merci de votre aide!!!
OMthebest

1 réponse

Bonjour,

Pour accéder à des données issues d'une Data Base via BO il faut utiliser un Univers.
On ne sait pas accéder aux données via BO tel que tu le fait.

Dans ton cas, pouquoi ne pas accéder aux données directement depuis Access via un ADODB tout simplement ?

CF Marc
http://blog.modulr.be/index.cfm/Business-Objects
0