Powerpoint CMS Database


I am interested in a creating (for personal professional use) a database that can manage all my powerpoint content.  The solution design I am thinking of is:

- Using Microsoft Access as database for the custom built-application - including it's forms, programming and querying capability
- Having the ability to upload powerpoint presentations to this application
- Having the ability to segment presentations uploaded into individual slides
- Having the slides / presentations stored in a repository locally (as I guess in db itself it would snowball the size of access db)
- Having a GUI to control metadata for each slide to enable easy searching
- Having a 'shopping basket' approach to downloading content - e.g. you can search multiple slides and it will show a gallery of the slides and you can select the ones you want to download and this will then dynamically create a ppt for you
- Having the ability to 'flag for duplicates' in slides so you only see relevant slides as well as favourite slides,
- Having ability to have a metadata export whenever downloading slides to know exactly where downloaded slides reside on file directory including slide number.

A big part of the feasibility of this is how the Powerpoint controllability works in VBA (e.g. how do you write VBA to access files and slides) and how to manage the file storage, metadata and search functionality.

I am interested in any viewpoints with technical details as to how this can be done including understanding how the VBA model within Access or across the MS Office platform will support this application.

Note there are some cloud based off-the shelf solutions but I want to build my own as I believe I can do it better and cheaper.  

The objective I have here is to be able to rapidly search for content and presentations and avoid the process of always digging around for things.   The Metadata layer gives a low maintenance way of controlling access to the presentation content.

I have some background in building Microsoft Access databases and conceptual understanding of VBA having used many years ago now.  So I know in 'theory' this is possible. Just want to understand practical guidance on how this can be achieved.
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Jeffrey CoachmanMIS LiasonCommented:
You may be a bit too ambitions here.

You would struggle to get Access to do most of the things you are requesting here.

About the most direct thing you can do with Access is to store the paths to the files, ...and manage the files. (copy,delete,move,open, delete, ...ect)

Once you start wanting Access to manipulate the power point content, (Manipulate metadata, ...use code to search for strings insde a presentation, ...ect) ...this is a whole different world.

To be fair, ...yes, Access and Powerpoint share the same development platform VBA.
But getting good enough at both, ...at the level you are describing here, ...will be quite a challenge.
Again, ...to be fair,   what you are describing here will be more intensive in VBA for Powerpoint than Access.
VBA for powerpoint is a thinly traded skill-set.
So while there are some books on it, ...you will find the most vba in Access and Excel.
So see these links as a start:

Lets see what other experts may add.


Dale FyeCommented:
Actually, Jeff, you might be surprised.  I've done most of what the OP has asked for.  Unfortunately, it was on a govt system, and I was unable to copy the application when I left that job.  

The application I wrote allowed the user to select a ppt brief.  It allowed me to catalog the slides, add titles and meta data about each slide into a database, control the slideshow from the application by selecting browsing to a slide in a list within the application, then change to that slide in the presentation.

We used it to plan form briefings to senior govt officials, so we could rehearse and record how long we spent on each slide.  Then, based on how long we actually had for the briefing, we would set a target duration for each slide, and when we approached that time on each slide, it would automatically display a yellow circle in the bottom right corner.  When we passed the time, the circle would turn red, and we could even configure it to flash if we wanted to.

Microsoft Dev Center has a short article on controlling a PPT brief from Access.  From there it is just a hop, skip, and a jump to most of what the OP asked for.

The biggest challenge will be the "slide library" aspect of things, and flagging for "duplicates".  It is easy to copy (via code) a slide from one presentation to another, but this could create some awfully massive presentations.  It would be easier to copy a presentation into a library, and store the name of the presentation, and the metadata about each slide in your library database.  Then, when you search the database and select a number of slides you want to review, you could open those presentations, and pull copy each of the slides into a preview deck, that you could then browse through.

Slide reuse is common in most organizations, but someone always wants to "tweak" the slides just a little, so what may have been "corporate office locations" on June 1, 2010 may have been revised several times, and if the slide title (the property, not what is displayed in a title textbox), has not changed, then you could have multiple copies of the "same slide", some may be identical, others may have various changes.

In my last govt contractor position, we used sharepoint to store individual slides in a library, and could version the slides so we could actually look at the last 10 versions of the 'corporate locations' slide very easily, but as I recall that didn't provide a way for adding metadata (beyond the actual slide content).

I'll have to dig through my XP system to see if I can find the pieces of that application that I toyed with at home during my personal time.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Jeffrey CoachmanMIS LiasonCommented:
My post was based on your statements:
I have some background in building Microsoft Access databases and conceptual understanding of VBA having used many years ago now.

My point was that if you are not well versed in Access VBA as Dale is, ...this type of project might be a quite challenge.

So please continue on with Dale, ...it seems he has the tools and the know-how to help you through this.

Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

hennanra3Author Commented:
Hi There,

Firstly many thanks Jeff for your contribution and to Dale for the very specific direction on how to do this - that is very helpful.

I apologise also for not being clear in that I don't plan on building myself but just to indicate I know 'enough' to understand conceptually the process to discuss.   My plan is to hire a contractor online and in fact I have posted a job description but no-one responded which makes me thing I am indeed being too ambitious or at least too stingy in setting a low price!

I would be grateful Dale if you could show specific content examples as a guidance for how to do this.   I also maybe can add what I was thinking which is a bit different from maybe your approach and I think maybe easier.

Within powerpoint there is a Save as JPEG feature that basically converts all of the slides into jpegs.  What I was thinking was that if this was done via VBA, you could intelligently take the file properties like the file name, the slide number (based on the image jpeg number exported) etc.   This jpeg could also be visualized via a GUI tool and have metadata added.

The actual opening of the relevant slide of manipulating powerpoint via Access - e.g. triggering the opening of x slide - is less important than being able to click on a link that opens the presentation and knowing that you need to go to slide 10 for example.   I mean there is an element of automation that simply isn't worth the coding effort.

Regarding the duplication and metadata management screen, that would also be a case of simply seeing the slides displayed and manually identifying them as duplicates - I am not expecting an image algorithm or anything to figure that out as I am not rich enough to fund that development! :-).

The other question I have (it got me thinking) is that maybe a web interface - e.g. Visual Studio.NET with SQL Server is a better because the visual part here is quite important and with Visual Studio.NET I assume that you can leverage the same object model of powerpoint (am I wrong here)?   I guess the downside of the Visual Studio approach is it's not localized so I have find a host but actually that's probably an upside if I can find a server that my colleagues can share internally.  I mean it is no longer my personal 'toy' :-).

I am doing this is a personal endeavor as I am in a Sales role where I have to go through tons of content and it's a nightmare to do this - I have this 'vision' of how the metadata will make this an amazing tool.

I appreciate if you can't add any more value - will close the post and award points in a few days if no more input but any advice on the above appreciated.

Dale FyeCommented:

I did not get a chance to look for the application piece/parts that I mentioned in my earlier post, over the weekend.  I'll try to do so in the next day or so and get back to you.

hennanra3Author Commented:
Hi Dale,

Sure - I will keep checking back.  Many thanks.

Dale FyeCommented:

Sorry for losing track of this.  I think the bit of code that I was looking for is on my XP box which has been down for about a month with a bad power supply (I really need to get that fixed).  When I do, I'll look and see if I can find that code and post it back here.

I hope the comments indicating that most of what you are looking to do can be done, and the couple of links to other articles will point you in the right direction.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic.NET

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.