Announcement

Collapse
No announcement yet.

Wie kann man Bilder im Formular mit VBA neu erstellen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie kann man Bilder im Formular mit VBA neu erstellen

    Hallo,

    ich möchte in einem Formular eine Weltkarte erstellen.

    Hierzu habe ich kleine Images mit Inseln.

    Entweder als OLE-Objekt in einer Tabelle (ist nicht gross), aber auch als .png-Dateien.
    (Ich glaube aber bei den OLE-Objekten geht mir die notwendige Transparenz verloren....)

    Mein eigentliches Problem ist aber : Wie erstelle ich mit VBA ein (bzw. mehrere) neues Bild-Objekt(e) (Access2007) in einem Formular ...CreateObject ???
    Diese möchte ich dann an in der Größe verändern, drehen und an eine bestimmte Position bringen...

    Würde mich freuen, wenn mir jemand auf die Sprünge hilft.
    In den Foren habe ich bis jetzt kein passendes Thema gefunden.

  • #2
    Keine Empfehlung ;-)

    Hallo,

    Ich gehe mal davon aus, daß Du nach einer integrierten Möglichkeit suchst.
    Obwohl ich zur Zeit nur msa2k3 zur Verfügung habe (auf meinem Notenbuch)
    gehe ich davon aus, daß es bei 2k7 nicht viel anders ist.

    In Access kann man zwar ein Bild-Steuerelement erstellen und über dessen
    Eigenschaft Picture auch einen Pfad zu einer BMP-Datei zuweisen, aber :
    • Das geht nur im Formular-Entwurf
    • Mehr geht nicht


    Was bleibt Dir also...?
    • Man könnte mit einer festen Anzahl an Bildern (Grid) arbeiten, denen man zur Laufzeit über die Eigenschaft Picture eine Datei zuweist. Man könnte sich eine DLL schreiben, die vor dem Einfügen des Bildes in das betreffende Steuerelement das Bild auf der Platte dreht.
    • Man kann mit einem OLE-Control arbeiten, welches dergleichen Möglichkeiten abietet, wobei mir spontan Powerpoint einfällt. Das ist natürlich nicht wirklich flott. Ich habe dropsdem mal eine "HowTo-Routine" geschrieben, die zeigt, daß es zumindest geht... (siehe unten)


    Code:
    Private Sub Befehl0_Click()
        'Me!Bild1.Picture = "R:\Bilder\Box.bmp"
        
        Dim vPs1 As PowerPoint.Slide
        Dim vPi1 As PowerPoint.Shape
        Dim vIn1 As Integer
        
        Set vPs1 = Me!OLEUngebunden1.Object
        
        For vIn1 = vPs1.Shapes.Count To 1 Step -1
            vPs1.Shapes(vIn1).Delete
        Next vIn1
        
        Me.Repaint
        
        For vIn1 = 0 To 3
            Set vPi1 = vPs1.Shapes.AddPicture("C:\Bilder\Box.bmp", msoTrue, msoTrue, vIn1 * 30, 0, 20)
            vPi1.Rotation = vIn1 * 90
        Next vIn1
        
        Me.Repaint
        
        Set vPi1 = Nothing
        Set vPs1 = Nothing
        
        MsgBox "habe fertig"
    End Sub
    Obiger Code ist eine Ereignis-Prozedur in einem Formular mit einem Knopf und einer eingebetteten Powerpoint-Folie. Außerdem habe ich einen Projekt-Verweis auf Powerpoint und Office-Lib gesetzt.

    Viele Grüße,
    tAgedObject
    darkness is a state of mind

    Comment

    Working...
    X