ðH geocities.com /Heartland/Pond/4805/Form10.htm geocities.com/Heartland/Pond/4805/Form10.htm .delayed x ½PÔJ ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ Ð®ì Å OK text/html €çh Å ÿÿÿÿ b‰.H Sun, 20 Jan 2002 13:00:33 GMT @ Mozilla/4.5 (compatible; HTTrack 3.0x; Windows 98) en, * ½PÔJ Å
ACC2000: How to Display Microsoft PowerPoint Slides on a Form |
The
information in this article applies to:
Advanced: Requires expert coding,
interoperability, and multiuser skills.
This article
shows you how to display slides from Microsoft PowerPoint on a form in
Microsoft Access. This technique uses Automation in Access to open a PowerPoint
presentation and to link to the first slide. Viewing other slides is
accomplished by changing the SourceItem property, which enables you to
link to different slides.
NOTE: This OLE-linking approach is the most viable method for viewing
Microsoft PowerPoint slides on a form in Microsoft Access. It is not possible
to use Automation to run a Microsoft PowerPoint presentation directly from an
object frame control on a form.
NOTE: To use this technique, you must have both
PowerPoint and Access installed on your computer. You also need to create a PowerPoint
presentation (.ppt). In steps 7 and 9, replace the following file name with the
name and path of your file:
C:\Program Files\Microsoft Office\Office\Pptexample.ppt
The
following example creates a form with an unbound object frame control and five
command buttons for linking to a PowerPoint presentation (.ppt) and for moving
through its slides.
To display Microsoft PowerPoint slides on a form, follow these steps:
Command button
-------------------------
Name: insertShow
Caption: Get Presentation
Enabled: Yes
Command button
-------------------------
Name: frstSlide
Caption: First Slide
Enabled: No
Command button
-------------------------
Name: nextSlide
Caption: Next Slide
Enabled: No
Command button
-------------------------
Name: previousSlide
Caption: Previous Slide
Enabled: No
Command button
-------------------------
Name: lastSlide
Caption: Last Slide
Enabled: No
Unbound Object Frame
--------------------
Name: pptFrame
SizeMode: Zoom
Enabled: Yes
Locked: No
' Initialize variables.
Const firstSlide = 1
Dim arrSlideID() As Long
Dim pptobj As Object
Dim slideindex As Long, slidecount As Long
Add the following error
handling procedure:
Sub ErrHandler()
Dim strError As String
Dim errObj As Error
strError = " "
If DBEngine.Errors.Count > 0 Then
For Each errObj In DBEngine.Errors
strError = strError & Format$(errObj.Number)
strError = strError & " : " & errObj.Description
strError = strError & " (" & errObj.Source & ") . "
strError = strError & Chr$(13) & Chr$(10)
Next
MsgBox strError
Else
MsgBox "Error: " & Err & " " & Error
End If
End Sub
Private Sub Form_Load()
On Error GoTo Form_Load_Error
Dim i As Integer
Dim holder As Long, present As Object
' Start Powerpoint and open an existing presentation.
holder = Shell("c:\Program Files\Microsoft Office\Office\Powerpnt.exe")
Set pptobj = CreateObject("PowerPoint.Application")
Set present = pptobj.Presentations.Open _
("c:\Program Files\Microsoft Office\Office\Pptexample.ppt")
' Determine the number of slides in the presentation.
slideCount = present.Slides.Count
' Fill an array with all Slide IDs.
ReDim arrSlideID(1 To slideCount)
For i = 1 To slideCount
arrSlideID(i) = present.Slides(i).SlideID
Next i
' Close the presentation.
pptobj.Presentations _
("c:\Program Files\Microsoft Office\Office\Pptexample.ppt").Close
Set present = Nothing
Exit Sub
Form_Load_Error:
ErrHandler
Exit Sub
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error GoTo Form_Unload_Error
' Close Powerpoint.
pptobj.Quit
Exit Sub
Form_Unload_Error:
ErrHandler
Exit Sub
End Sub
Private Sub insertShow_Click()
On Error GoTo insertShow_Click_Error
' Make object frame visible and enable "navigation" buttons.
pptFrame.Visible = True
frstslide.Enabled = True
lastslide.Enabled = True
nextslide.Enabled = True
previousslide.Enabled = True
' Specify OLE Class, Type, SourceDoc, SourceItem and other
' properties.
With pptFrame
.Class = "Microsoft Powerpoint Slide"
.OLETypeAllowed = acOLELinked
.SourceDoc = "c:\Program "_
& "Files\Microsoft Office\Office\Pptexample.ppt"
.SourceItem = arrSlideID(FIRSTSLIDE)
.Action = acOLECreateLink
End With
' Set slide index to the first slide.
slideindex = FIRSTSLIDE
frstSlide.setfocus
insertShow.enabled=false
Exit sub
insertShow_Click_Error:
ErrHandler
Exit Sub
End Sub
Click frstSlide in the Object list and click Click
in the Proc list, and then add the following code:
Private Sub frstSlide_Click()
On Error GoTo frstSlide_Click_Error
' Set SourceItem property to first slide and create a link.
With pptFrame
.SourceItem = arrSlideID(FIRSTSLIDE)
.Action = acOLECreateLink
End With
slideindex = FIRSTSLIDE
Exit Sub
frstSlide_Click_Error:
ErrHandler
Exit Sub
End Sub
Private Sub nextSlide_Click()
On Error GoTo nextSlide_Click_Error
' Determine if current slide is last slide.
If slideindex < slidecount Then
slideindex = slideindex + 1
' Set SourceItem property to next slide and create a link.
With pptFrame
.SourceItem = arrSlideID(slideindex)
.Action = acOLECreateLink
End With
Else
MsgBox "This is the last slide."
End If
Exit Sub
nextSlide_Click_Error:
ErrHandler
Exit Sub
End Sub
Private Sub previousSlide_Click()
On Error GoTo previousSlide_Click_Error
' Determine if current slide is first slide.
If slideindex > FIRSTSLIDE Then
slideindex = slideindex - 1
' Set SourceItem property to previous slide and create a link.
With pptFrame
.SourceItem = arrSlideID(slideindex)
.Action = acOLECreateLink
End With
Else
MsgBox "This is the first slide."
End If
Exit Sub
previousSlide_Click_Error:
ErrHandler
Exit Sub
End Sub
Private Sub lastSlide_Click()
On Error GoTo lastSlide_Click_Error
' Set SourceItem property to previous slide and create a link.
With pptFrame
.SourceItem = arrSlideID(slidecount)
.Action = acOLECreateLink
End With
slideindex = slidecount
Exit Sub
lastSlide_Click_Error:
ErrHandler
Exit Sub
End Sub