Bonjour,
Je possède BO V.5.1.8 . Je ne peux pas utiliser VBA avec le BO que je possède. J'utilise donc VBA depuis Excel. Mes connaissances en BO sont bonnes et je débute en VBA.
J'aimerais créer une requête sur BO, grâce à VBA utilisé depuis Excel. Je ne sais pas si cela est possible. Je vous explique cependant ce que je dois faire...
La requête que je dois créer est très simple:
- affichage de numéros de sinistre et de numéros d'immatriculation
- condition: numéros de sinistre dans la liste X
La liste X est du type: numéro1;numéro2;numéro3 . Je possède cette liste X dans la cellule B1 d'une feuille Excel.
Il faudrait donc que, à partir de VBA-Excel, je puisse créer cette requête, copier la liste X dans la condition de cette requête et lancer la requête ainsi créée.
Est-il possible de créer de telles requêtes BO depuis VBA-Excel?
Si non, une fois qu'un rapport est ouvert, est-il possible d'ouvrir l'éditeur de requête de BO et de modifier la requête du rapport (afin de mettre la bonne liste X présente dans la cellule B1, j'aurai en effet besoin plus tard de relancer cette requête avec une liste X différente), toujours grâce à VBA-Excel?
Je sais, depuis VBA-Excel, ouvrir BO et ouvrir un rapport. Voici le code que j'ai récupéré sur le net:
Je bloque pour créer ou bien pour modifier la requête BO présente dans monrapport.rep . Peut-être faut-il passer en SQL? J'ai tenté de créer des Query en utilisant leur propriété SQL mais en vain. Voici le code que j'ai eu en m'inspirant d'autres codes chopés sur le net:
Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub openBO() Dim objBO, objrep Set objBO = CreateObject("BusinessObjects.Application") objBO.LoginAs , , True Set objrep = objBO.Documents.Open("monchemin\monrapport.rep") objBO.Visible = True End Sub
Ce code doit être bourré d'erreurs! J'obtiens le message suivant: "Erreur d'exécution 438: propriété ou méthode non gérée par cet objet"
Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Dim req As Query Dim chaine As String chaine = "moncodeSQL" Set req = objBO.createquerydef() req.Sql = chaine req.Close objrep.Refresh
J’ai essayé de mettre objrep.createquerydef(), même message d’erreur. Je sais bien que objBO et objrep ne sont pas des objets « connection » ou « database » mais je n’avais pas d’autre idée…
Quelqu’un aurait-il une idée ou un conseil à me donner ? Je vous remercie d’avance
Partager