Toon posts:

[Powerpoint 2003/VBA] Slide vullen met Access-data

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een Powerpoint 2003 presentatie die door middel van DOA een recordset ophaalt uit een Access-database. Tot zover nog niets aan de hand. De code die hiervoor wordt gebruikt is:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim MyDb As database
Dim MyDbString As String

MyDbString = "S:\PROJECTEN\Databases\OPENDAG\inschrijvingen.mdb"
Set MyDb = DAO.OpenDatabase(MyDbString)

Set rst = MyDb.openrecordset("SELECT * FROM Winnaar")

Inschrijfnummer = rst("inschrijfnummer")
NaamWinnaar = rst("Naam")
Straat = rst("Adres")
PC = rst("Postcode")
Plaats = rst("Plaats")


Winnaar is een Querydefinitie in het Access bestand die 1 record bevat die door middel van een RND wordt gevonden.

Vervolgens begint de pret, ik wil namelijk dat de 5 velden die onderin staan (Inschrijfnummer, naamwinnaar etc) op de zevende slide komen van mijn presentatie, dit lukt allemaal prima als ik werk met MsForms objecten, maar aangezien het hier om een loterij gaat en ik dit een beetje leuk wil aankleden is het beter om ze echt als "tekstvak" op te nemen in powerpoint. Dit valt helaas niet mee;

Tot nu toe heb ik het volgende (door me eigen helemaal wezenloos te zoeken op internet) in elkaar gezet:

code:
1
2
3
4
ActivePresentation.Slides(7).Shapes.AddTextbox(msoTextOrientationHorizontal, 30, 100, 740, 20).TextFrame.TextRange = NaamWinnaar
ActivePresentation.Slides(7).Shapes.AddTextbox(msoTextOrientationHorizontal, 30, 130, 740, 20).TextFrame.TextRange = "Inschrijfnummer: " & Inschrijfnummer
ActivePresentation.Slides(7).Shapes.AddTextbox(msoTextOrientationHorizontal, 30, 160, 740, 20).TextFrame.TextRange = Straat
ActivePresentation.Slides(7).Shapes.AddTextbox(msoTextOrientationHorizontal, 30, 190, 740, 20).TextFrame.TextRange = Plaats


Dit lijkt aardig te werken, maar ik wil nu nog een animatie toevoegen aan de shapes. Ik dus uiteraard een macro opnemen in powerpoint waarin ik een tekstveld een animatie toevoeg. Hij schrijft hier helaas niets over bij in de code.

Ik programmeer zelf heel veel in Access-VBA, daar geef je elk object een naampje en kun je vervolgens heerlijk de eigenschappen van veranderen. In powerpoint lukt dit me niet, is er iemand die me misschien een beetje de goede kant op kan schoppen?

  • Daos
  • Registratie: Oktober 2004
  • Niet online
Als ik je verhaaltje goed begrijp wil je alleen een animatie aan je textbox toevoegen. Dit kan met de AnimationSettings die elke Shape heb:
Visual Basic:
1
2
3
4
Dim s As Shape
For Each s In ActivePresentation.Slides(7).Shapes
    s.AnimationSettings.EntryEffect = ppEffectFlyFromLeft
Next



Ik snap alleen niet waarom je iets gescheven hebt over Access (+ in de titel). Dat gaat toch allemaal goed :?

Verwijderd

Topicstarter
Daos schreef op zondag 08 april 2007 @ 14:37:
Als ik je verhaaltje goed begrijp wil je alleen een animatie aan je textbox toevoegen. Dit kan met de AnimationSettings die elke Shape heb:
Visual Basic:
1
2
3
4
Dim s As Shape
For Each s In ActivePresentation.Slides(7).Shapes
    s.AnimationSettings.EntryEffect = ppEffectFlyFromLeft
Next
Bovenstaande manier geef je dus elke shape op slide 7 een eigenschap mee, maar is er niet een manier om (net als in Access) de eigenschappen van één shape te veranderen, door deze shape gewoon simpelweg een naam te geven en vervolgens iets met van:

NaamVanMijnSlide.BackgroundColor = "Green"
me.NaamVanMijnShape.Forecolor = "White"

Wat ik bedoel is dat ik de gehele logica achter VBA in Powerpoint niet snap.

Bovendien zie ik niets van de animatie omdat de code wordt aangeroepen met een actionbutton op de eerste slide, en het dan nog een 20 seconden duurt voordat je op de betreffende slide terecht komt, hij zou dus "na-vorige" moeten starten.
Ik snap alleen niet waarom je iets gescheven hebt over Access (+ in de titel). Dat gaat toch allemaal goed :?
Ik ook niet eigenlijk :? . Zal wel frustratie zijn geweest ofzo...

[ Voor 10% gewijzigd door Verwijderd op 09-04-2007 14:06 ]