ACC: Cómo diapositivas de presentación de Microsoft PowerPoint en un formulario

Seleccione idioma Seleccione idioma
Id. de artículo: 149088 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

Resumen

Avanzado: Requiere codificación experto, interoperabilidad, conocimientos y multiusuario.

En este artículo se muestra cómo mostrar las diapositivas desde Microsoft PowerPoint 7.0 ó 97 en un formulario en Microsoft Access 7.0 ó 97, respectivamente. Esta técnica utiliza Automatización en Microsoft Access para abrir una presentación de PowerPoint y vincular a la primera diapositiva. Ver otras diapositivas se consigue al cambiar la propiedad ElementoOrigen (SourceItem), que permite vincular a diferentes diapositivas.

Nota: Este enfoque de vinculación OLE es el método más viable para ver diapositivas de Microsoft PowerPoint en un formulario de Microsoft Access. No es posible utilizar automatización para ejecutar una presentación de Microsoft PowerPoint directamente desde un control marco de objeto en un formulario.

Este artículo se supone que está familiarizado con Visual Basic para aplicaciones y con la creación de aplicaciones de Microsoft Access mediante las herramientas de programación suministradas con Microsoft Access. Para obtener más información acerca de Visual Basic para Aplicaciones, consulte su versión del manual "Creación de aplicaciones con Microsoft Access".

Más información

Nota: Debe tener tanto Microsoft PowerPoint 7.0 o 97 y Microsoft Access 7.0 o 97 instalado en el equipo para utilizar esta técnica. También tiene que crear una presentación de Microsoft PowerPoint (.ppt). En los pasos 7 y 9, reemplace el nombre de archivo
C:\Msoffice\Powerpnt\Pptexample.ppt
con el nombre y la ruta de acceso del archivo.

En el ejemplo siguiente se crea un formulario con un control de marco de objeto independiente y cinco botones de comando para vincular a una presentación de Microsoft PowerPoint (.ppt) y para desplazarse por las diapositivas.

Para mostrar diapositivas de Microsoft PowerPoint en un formulario, siga estos pasos:

  1. Abra Microsoft Access y cree un nuevo formulario en la vista Diseño.
  2. Agregue los siguientes cinco controles al formulario:
           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
    						
  3. Agregue un control de marco de objeto independiente al formulario. En Insertar objeto cuadro, haga clic en el botón Crear nuevo, seleccione mapa como el tipo de objeto y, a continuación, haga clic en Aceptar. <formname>En el cuadro de mapa, haga clic en "salir y volver a <nombreformulario>: formulario" en el menú archivo. Observe que el marco de objeto aparece como un espacio en blanco en el formulario.
  4. Abra la hoja de propiedades del marco de objeto independiente y, a continuación, establezca sus propiedades como sigue:
           Unbound Object Frame:
              Name: pptFrame
              SizeMode: Zoom
              Enabled: Yes
              Locked: No
    						
  5. En el menú Ver, haga clic en código para abrir el módulo de formulario.
  6. Agregue el código siguiente a la sección General Declarations:
           ' Initialize variables.
           Const FIRSTSLIDE = 256
           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
    						
  7. Haga clic en formulario en la lista objeto y haga clic en cargar en la lista procedimiento y, a continuación, agregue el código siguiente:

    Nota: Reemplazar el nombre de archivo "C:\Msoffice\Powerpnt\Pptexample.ppt" con el nombre y la ruta de acceso del archivo de presentación de PowerPoint.
           Private Sub Form_Load()
              On Error GoTo Form_Load_Error
              Dim holder As Long, present As Object
    
              ' Start Microsoft Powerpoint and open an existing presentation.
              holder = Shell("c:\msoffice\powerpnt\powerpnt.exe")
              Set pptobj = CreateObject("PowerPoint.Application")
              Set present = pptobj.Presentations.Open _
                 ("c:\msoffice\powerpnt\pptexample.ppt")
    
              ' Determine the number of slides in the presentation.
              slidecount = present.Slides.Count - 1 + FIRSTSLIDE
    
              ' Close the presentation. Use only 1 of the following lines
              'Office 97 Syntax
              pptobj.Presentations _
                 ("c:\msoffice\powerpnt\pptexample.ppt").Close
              'Office 7.0 Syntax
              present.Close
              Set present = Nothing
              Exit Sub
    
           Form_Load_Error:
              ErrHandler
              Exit Sub
           End Sub
    						
  8. Haga clic en formulario en la lista objeto y haga clic en descargar en el Proclist y, a continuación, agregue el código siguiente:
           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
    						
  9. Haga clic en insertShow en la lista objeto y haga clic en haga clic en la lista procedimiento y, a continuación, agregue el código siguiente.

    Nota: Reemplazar el nombre de archivo "C:\Msoffice\Powerpnt\Pptexample.ppt" con el nombre y la ruta de acceso del archivo de PowerPoint.
           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
                 'Use only 1 of the followin lines of code
                 .Class = "Microsoft Powerpoint Slide" 'Office 97 Syntax
                 .Class = "powerpoint.slide.7" 'Office 7.0 syntax
                 .OLETypeAllowed = acOLELinked
                 .SourceDoc = "c:\msoffice\powerpnt\pptexample.ppt"
                 .SourceItem = 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
    						
  10. Haga clic frstSlide en la lista objeto haga clic en haga clic en la lista procedimiento y, a continuación, agregue el código siguiente:
           Private Sub frstSlide_Click()
              On Error GoTo frstSlide_Click_Error
    
              ' Set SourceItem property to first slide and create a link.
              With pptFrame
                 .SourceItem = FIRSTSLIDE
                 .Action = acOLECreateLink
              End With
    
              slideindex = FIRSTSLIDE
    
              Exit Sub
    
           frstSlide_Click_Error:
              ErrHandler
              Exit Sub
           End Sub
    						
  11. Haga clic nextSlide en la lista objeto haga clic en haga clic en la lista procedimiento y, a continuación, agregue el código siguiente:
           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 = slideindex
                    .Action = acOLECreateLink
                 End With
              Else
                 MsgBox "This is the last slide."
              End If
    
              Exit Sub
    
           nextSlide_Click_Error:
              ErrHandler
              Exit Sub
           End Sub
    						
  12. Haga clic en previousSlide en la lista objeto y haga clic en el procedimiento lista y, a continuación, agregue el código siguiente:
           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 = slideindex
                    .Action = acOLECreateLink
                 End With
              Else
                 MsgBox "This is the first slide."
              End If
    
              Exit Sub
    
           previousSlide_Click_Error:
              ErrHandler
              Exit Sub
           End Sub
    						
  13. Haga clic lastSlide en la lista objeto haga clic en haga clic en la lista procedimiento y, a continuación, agregue el código siguiente:
           Private Sub lastSlide_Click()
              On Error GoTo lastSlide_Click_Error
    
              ' Set SourceItem property to previous slide and create a link.
              With pptFrame
                 .SourceItem = slidecount
                 .Action = acOLECreateLink
              End With
    
              slideindex = slidecount
    
              Exit Sub
    
           lastSlide_Click_Error:
              ErrHandler
              Exit Sub
           End Sub
    						
  14. Cierre y guarde el módulo de formulario.
  15. Cambie el formulario a la vista formulario y haga clic el insertShow ("obtener presentación") botón.

Referencias

Para obtener más información acerca de con Microsoft PowerPoint para Windows 95 y automatización, consulte en contacto con el siguiente artículo en Microsoft Knowledge Base:
133789WT1229: Introducción a PowerPoint controlar a través de OLE

Propiedades

Id. de artículo: 149088 - Última revisión: jueves, 23 de enero de 2014 - Versión: 3.3
La información de este artículo se refiere a:
  • Microsoft Access 95 Standard Edition
  • Microsoft Access 97 Standard Edition
Palabras clave: 
kbnosurvey kbarchive kbmt kbhowto kbinterop kbprogramming KB149088 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 149088

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com