Lancer une requête dans BO en VBA
OMthebest
-
CF Marc -
CF Marc -
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 :
Merci de votre aide!!!
OMthebest
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
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