Solved

Open power point presentation from ACCESS 2003 VBA

Posted on 2011-09-06
13
413 Views
Last Modified: 2012-05-12
How does one open a power point presentation from Access 2003 via VBA?  I have a trainging presentation that I want user to be able to open from a button on an ACCESS 2003 form.  The power point is in version 2010.
0
Comment
Question by:ssmith94015
  • 6
  • 3
  • 3
  • +1
13 Comments
 
LVL 47

Expert Comment

by:Dale Fye (Access MVP)
ID: 36490149
I generally use the Application.Followhyperlink method.  All you need to add to that is the path and file name.
0
 
LVL 74

Expert Comment

by:Jeffrey Coachman
ID: 36490169
Yes, if all you need to do is "Open" the PP file then fyed has your answer here.

If you need anything special (Open parameters, run slide show automatically, ...etc) then you will need "Interoperability" code.

JeffCoachman
0
 

Author Comment

by:ssmith94015
ID: 36490171
Ok, this did open it, but it opened it in design view.  Maybe I did not make myself clear and sorry about that, but I want the user to hit the button and have the presentation start running.  
0
 
LVL 5

Expert Comment

by:MAdS
ID: 36490210
Try this:

Const SW_SHOW = 1
Const SW_SHOWMAXIMIZED = 3

Public Declare Function ShellExecute Lib "Shell32.dll" Alias "ShellExecuteA" _
 (ByVal hwnd As Long, _
  ByVal lpOperation As String, _
  ByVal lpFile As String, _
  ByVal lpParameters As String, _
  ByVal lpDirectory As String, _
  ByVal nShowCmd As Long) As Long

Sub OpenFile()
 On Error Resume Next
 Call ShellExecute(0, "open", "[file-name]", , "[file-folder]", SW_SHOWMAXIMIZED)
End Sub 

Open in new window

0
 
LVL 5

Expert Comment

by:MAdS
ID: 36490228
P.S.: have you presentation saved as PPSX, not PPTX
0
 

Author Comment

by:ssmith94015
ID: 36490355
Ok, it keeps crashing my system.
0
6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

 

Author Comment

by:ssmith94015
ID: 36490377
Now I get argument not optional
Sub OpenPowerPoint()
 On Error Resume Next
 Call ShellExecute(0, "open", "ProjectTaskTraining.ppsx", , "K:\DatabaseDevelopment\ProjectTaskTracking\", SW_SHOWMAXIMIZED)
End Sub
0
 
LVL 47

Accepted Solution

by:
Dale Fye (Access MVP) earned 500 total points
ID: 36490556
What keeps crashing your system?

If you save the file as a ppsx, as indicated by MAdS, then the followhyperlink method should work just fine.

If you don't like that method, create subroutine that will open PPT, then the file, then display the slideshow

Try this:

Public Sub ppt(FileName As String)

    Dim ppt As Object
    Dim pres As Object
    Dim ss As Object

    Set ppt = CreateObject("Powerpoint.Application")
    ppt.Visible = True
    Set pres = ppt.Presentations.Open(FileName)
    Set ss = pres.slideshowsettings.Run

    Set ss = Nothing
    Set pres = Nothing
    Set ppt = Nothing

End Sub
0
 

Author Comment

by:ssmith94015
ID: 36490591
System crashes when I try to run the code.  I will try your version fyed and see what happens.
0
 

Author Closing Comment

by:ssmith94015
ID: 36490618
Thank you, this worked.  The other seemed logical as far as I could tell, but my system just did not like it.

Sandra
0
 
LVL 47

Expert Comment

by:Dale Fye (Access MVP)
ID: 36490654

Did you even try:

Application.FollowHyperlink "K:\DatabaseDevelopment\ProjectTaskTracking\ProjectTaskTraining.ppsx"
0
 

Author Comment

by:ssmith94015
ID: 36490885
Yes I did, it was the first thing, but again, for whatever reason, my system would not process.  I am happy with what I have now.
0
 
LVL 5

Expert Comment

by:MAdS
ID: 36492228
Just FYI, I skipped 4th parameter. It should be:

Sub OpenPowerPoint()
 On Error Resume Next
 Call ShellExecute(0, "open", "ProjectTaskTraining.ppsx", "", "K:\DatabaseDevelopment\ProjectTaskTracking\", SW_SHOWMAXIMIZED)
End Sub
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

The canonical version of this article is on my web site here: http://iconoun.com/articles/collisions/ A companion presentation is available here: http://iconoun.com/articles/collisions/Unicode_Presentation.pdf
Describes a method of obtaining an object variable to an already running instance of Microsoft Access so that it can be controlled via automation.
In Microsoft Access, when working with VBA, learn some techniques for writing readable and easily maintained code.
The viewer will learn how to use the =DISCRINV command to create a discrete random variable, use this command to model a set of probabilities and outcomes in a Monte Carlo simulation, and learn how to find the standard deviation of a set of probabil…

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now