Avatar billede nielsb2006 Nybegynder
05. maj 2006 - 18:27 Der er 1 kommentar

access til powerpoint vha automation

hejsa jeg har et mindre kode problem
Jeg vil overføre data fra access til en powerpoint fil, hvilket går helt fint indtil jeg skal overføre data til et excell objekt i powerpoint filen!


ved overførsel til en powerpoint tabel gør jeg sådan:
'-----------------------kode
Dim db As Database
Dim rs As Recordset
' Open PowerPoint
Dim strPowerPointFile As String
Dim pptobj As PowerPoint.Application
Set pptobj = New PowerPoint.Application
pptobj.Visible = True
'pptobj.WindowState = ppWindowMinimized
Set db = CurrentDb
Set rs = db.OpenRecordset("select * from testtable", dbOpenDynaset)

strPowerPointFile = CurrentProject.Path & "\test.ppt"
   
   
' Fill a collection with all Slide IDs.
With pptobj.Presentations.Open(strPowerPointFile)
      Dim tal As Integer
      tal = 2
      While Not rs.EOF
        With .Slides(9).Shapes(2).Table
        .Cell(tal, 1).Shape.TextFrame.TextRange.Text = CStr(rs.Fields("type").Value)
     
          End With

tal = tal + 1
            rs.MoveNext
        Wend
 
        .Save
        .Close
    End With
'-------------end of kode---------------------------


hvad skal jeg ændre hvis jeg istedet vil lægge dataen ind i et excell objekt inde i powerpointen?
Avatar billede supertekst Ekspert
28. maj 2006 - 20:36 #1
Et eksempel, der måske kan hjælpe dig:

Option Compare Database
Dim db As Database, rs As Recordset
Dim pp As Object
Sub kontaktPPT()
Dim tal As Integer
    Set pp = CreateObject("PowerPoint.application.11")              '11=2003/10=XP/9=2000
    pp.Visible = True
Rem Åbne for redigering
    With pp.Presentations
        .Open Filename:=(CurrentProject.Path & "\test.ppt")
    End With
       
    pp.ActiveWindow.View.GotoSlide Index:=1                        'test, kun Slide1
   
    Set db = CurrentDb
    Set rs = db.OpenRecordset("select * from testtable", dbOpenDynaset)
       
    tal = 2
    While Not rs.EOF
        With pp.ActivePresentation.Slides(1).Shapes(1)

rem Her er det centrale
            .OLEFormat.Object.Worksheets(1).Cells(tal, 1).Value = rs.Fields("type")
        End With

        tal = tal + 1
        rs.MoveNext
    Wend
   
    rs.Close
    db.Close
   
    pp.ActivePresentation.Save
    pp.ActivePresentation.Close
   
    Set pp = Nothing
End Sub
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester