Создание Powerpoint с графиками из Access - PullRequest
1 голос
/ 25 июня 2009

Я пытаюсь программно создать PowerPoint из графиков в Access. В идеале, когда графики переходят в PowerPoint, они становятся статичными изображениями, а не графиками, все еще связанными с данными доступа.

Я пробовал такие процедуры, как:

 Private Sub Command1_click()
     Dim pwrpnt as Object
     Dim Presentation as Object

     set pwrpnt = CreateObject("Powerpoint.Application")
     pwrpnt.Activate
     Set Presentation = pwrpnt.Presentation.Open("C:\test.ppt")
     Me.Graph1.SetFocus
     Runcommand acCmdcopy

     Presentation.Slides(1).Shapes.Paste
     set pwrpnt = Nothing
     set Presentation = Nothing
End Sub

И я получаю сообщение об ошибке, такое как: метод вставки не удался.

Есть ли лучший подход? И можно ли его заставить стать статичным изображением?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 26 июня 2009

Хорошо, я нашел способ сделать это. Мне все еще интересно, есть ли у кого-то более элегантный способ, но для всех, кто сталкивается с подобной проблемой:

Private Sub Command1_click()
 'Note: Sample only, in real code this should probably have something to save the 
 'PPT file and then close the powerpoint application, not to mention some error handling,
 ' and possibly some picture formatting, etc.  

 Dim pwrpnt as PowerPoint.Application
 Dim Presntation as PowerPoint.Presentation

 Me.Graph0.Action = acOLECopy
 set pwrpnt = CreateObject("Powerpoint.Application")
 pwrpnt.Activate
 Set Presentation = pwrpnt.Presentations.Open("TemplateFile.ppt")
 pwrpnt.ActiveWindow.ViewType = ppViewSlide

 'This inserts it as a picture, just use .Paste to insert it as an actual chart.
 pwrpnt.ActiveWindow.View.PasteSpecial ppPasteEnhancedMetafile 
EndSub
2 голосов
/ 29 июля 2009

Да, это именно та техника, которую я использую - и я потратил дни на поиск решений в Интернете. Это не очень элегантно, но работает, и приятно то, что вы получаете объект MS Graph в Powerpoint, чтобы пользователи могли легко применять свои собственные стили, шаблоны и т. Д.

...