Fragensteller
Access 2007: OLE Fehler 2785 bei ungebundenem Objektfeld mit Excel Sheet

Allgemeine Diskussion
-
Guten Tag,
In einem ungebundenen OLE-Control zeige ich ein Excel Worksheet mit 2 Diagrammen.
Das Steuerelement wird bei Form-Öffnen per VBA aktualisiert (acOlelinked etc).
Es arbeitet einwandfrei unter Access 2003 /Excel2003 jedoch nicht unter Access 2007.
Hier kommt die Fehlermeldung 2785 -Der Ole-Server konnte das Objekt nicht öffnen.
Und zwar bleibt die kleine VBA-Prozedur bei OleFeld.Action = acOLECreateLink hängen.
Neuaufbau in Access 2007 >>>gleicher Fehler
Wo muß ich den Fehler suchen?Wer kann helfen?
Vielen Dank vorab
Nachtrag:Zu Testzwecken habe ich nur eine Form mit einem ungebundenen OLE-Feld in der DB.
Das Excelfile ist per Assistent ausgewählt und verknüpft. Soweit ok.
Die VBA-Prozedur (aus Access-Hilfe) soll nun zur Laufzeit ein bestimmtes Arbeitsblatt aus dieser Exceldatei verlinken und das dortige Diagramm anzeigen.
Es scheint als ob die SourceItem Eigenschaft nicht richtig ausgewertet wird.(Bei ACC2003 funktioniert das jedoch)
Leider habe ich noch keine Spur wo ich suchen muß.
aktuelle Schreibweise Olefeld.Sourceitem = "Bericht Diagramm1" -ist das evtl bei Access2007 anders zu schreiben
Wobei 'Bericht' das Arbeitsblatt ist und das 'Diagramm1' dort liegt
Ich hoffe das war nicht zu umständlich erklärt-deshalb bitte ich nochmal um Tips.
Danke
Arbeitsumgebung: WIN7 Pro,Office2007 Enterprise
- Verschoben Robert BreitenhoferModerator Freitag, 27. August 2010 07:53 Microsoft Access (aus:Microsoft Office System)
- Typ geändert Peter DoeringMVP, Moderator Montag, 1. November 2010 09:46
Alle Antworten
-
Hallo DiscoMixer,
Schau Dir mal den folgenden Link an. Vielleicht kann er Dir weiter helfen.
http://office.microsoft.com/en-us/access/HA012327931033.aspx
Es steht folgendes: „Applies to: Microsoft Office Access 2007“ und es gibt ein Code Beispiel:
Sub Command1_Click OLE1.Class = "Excel.Sheet" ' Set class name. ' Specify type of object. OLE1.OLETypeAllowed = acOLELinked ' Specify source file. OLE1.SourceDoc = "C:\Excel\Oletext.xls" ' Specify data to create link to. OLE1.SourceItem = "R1C1:R5C5" ' Create linked object. OLE1.Action = acOLECreateLink ' Adjust control size. OLE1.SizeMode = acOLESizeZoom End Sub
Grüße,
Robert
-
Danke für die erste Antwort.
Das ist ja ziemlich genau der Codeschnipsel welcher bei mir auch eingesetzt wird:
With Me.OLE1 .Class = "Excel.Sheet" .Enabled = True .Locked = False ' Specify what kind of object can appear in the field. .OLETypeAllowed = acOLELinked ' Class statement--optional for Excel worksheet. ' Type the correct path name. .SourceDoc = "H:\manu.xlsx" ' Range statement--optional for Excel worksheet. .SourceItem = "Bericht Diagramm1" ' Create the linked object. .Action = acOLECreateLink ' Optional size adjustment. .SizeMode = acOLESizeStretch .UpdateOptions = acOLEUpdateManual .Action = acOLEUpdate End With
Und dieser Code funktioniert auf einem anderen PC mit Office 2003 einwandfrei (Excelfile xls)
Unter Office 2007 immer noch der Fehler 2785
Wenn Sourceitem leer bleibt ("") dann gibt es keine Fehlermeldung.
Zum testen habe ich auch andere Werte für Sourceitem versucht-auch die Range aus der Hilfe-jedoch immer der Fehler.
Verweise sind alle ok.(keine Fehler angezeigt)
Was kann ich tun -kann ich nachvollziehen was da intern aufgerufen wird -wird der Sourceitem Text nicht richtig übergeben?
Wer kann helfen?
Gruß und Danke
Discomixer
-
Hallo DiscoMixer,
Kannst Du mal versuchen die SourceItem Eigenschaft wie folgt, festlegen?
l_Sheet = "Short name"
OLE1.SourceItem = l_Sheet & "!R1C1:R5C5"
Wenn man SourceItem nicht festlegt dann wird an das gesamte Objekt gelinkt. („Wenn Sie eine Verknüpfung mit dem gesamten Objekt herstellen möchten, dürfen Sie keinen Wert für die SourceItem-Eigenschaft angeben“)
Schau Dir mal auch folgende Hyperlinks an. Vielleicht findest Du etwas was Dir weiter helfen kann.
http://www.wer-weiss-was.de/theme153/article5596666.html
http://www.accessmonster.com/Uwe/Forum.aspx/access-formscoding/18838/Embedded-Excel-sheet-viewer (Schau mal hier was Rafael Romero schreibt: Rafa Romero - 13 Feb 2005 13:20 GMT und Rafael Romero - 16 Feb 2005 09:34 GMT)
Grüße,
Robert
-
Hallo Robert,
leider hatte ich diese Informationen schon vorab gefunden und gecheckt.Ohne Ergebnisse.
Es bleibt bei dem Fehler .
Weil ja unter Access 2003 alles ok ist macht das ganze ja noch rätselhafter
Aber ich gebe nicht auf und werde weiter suchen und forschen.Falls noch Tips da sind ,bitte her damit.
Vielen Dank
Discomixer
Walter
-
Hallo Access-Profis,
zu dem Problem ein bestimmtes Excelblatt in einem ungebundenen Frame zu zeigen:
leider habe ich zu dem geschilderten Problem noch immer keine Lösung gefunden.In meiner Umgebung (win7pro/Office2007Enterprise) habe ich vieles getestet-
es bleibt dabei : Fehler 2785 -das Objekt konnte nicht geöffnet werden .
Auch ein Test unter WinXp Pro mit Office2007 scheiterte mit dem selben Fehler.
In der Umgebung XP/Office 2003 läuft jedoch alles einwandfrei.
Wer kann helfen?
Gruß
Walter
-
Hallo ,
hier noch ein Nachtrag mit weiteren Hinweisen.
Vielleicht kann ja jemand daraus Schlüsse ziehen und mir einen entscheidenen Tip geben
Habe noch folgende Varianten getestet
Olefeld.SourceItem = "bericht!Test" >>>funktioniert wobei Test ein Namensbereich im Tabellenblatt Bericht ist
OLEfeld.SourceItem = "z1s1:z5s5" >>>funktioniert zeigt angegebene Range vom ersten Worksheet
OLEfeld.SourceItem = "Bericht Diagramm1" >>>funktioniert nur in Access 2003 nicht in Access 2007 (Diagramm in Tabellenblatt Bericht)
Also gehe ich davon aus das die Eigenschaft Sourceitem nicht in der richtigen Syntax übergeben wird.
Für jeden weiteren Tip wäre ich sehr dankbar.Gruß
Walter
-
Hallo Walter,
Habe noch folgendes gemacht.
1) Habe eine Excel Datei mit den Namen TestOLEAuto.xls erstellt.
Diese Excel Datei enthält zwei Blätter : Sheet1 und Sheet2
Die Datei wurde als Microsoft Office Excel 97-2003 Worksheet (.xls) gespeichert.
Auf jedem Blatt wurde ein Chart erstellt und den Namen von dem Chart gewechselt auf:
Sheet1.ChartObjects(1).Name = "Chart auf Sheet1"
Sheet2.ChartObjects(1).Name = "Chart auf Sheet2"
2) Access 2007 aufgemacht.
Ein Report erstellt und auf Design View gegangen.
Aus Excel Blatt Sheet1 die Chart mit Copy genommen und im Access 2007 mit Paste Special (Alt+E+S) als Microsoft Office Excel Chart (Paste Link) eingefügt.
Es wurde ein Unbound Object Frame in dem Report erstellt mit folgenden Eigenschaften für Data:
SourceItem=Sheet1![TestOLEAuto.xls]Sheet1 Chart auf Sheet1 bzw. SourceItem=Sheet2![TestOLEAuto.xls]Sheet2 Chart auf Sheet2
SourceDoc=C:\Filme\TestOLEAuto.xls
OLEType=Linked
OLETypeAllowed=Either
OLEClass=Microsoft Office Excel 2003
Class=Excel.Sheet.8
UpdateOptions=Automatic
DisplayType=Content
Enabled=No
Nachher habe ich manuell folgende Eigenschaften geändert:
OLETypeAllowed=Linked
Class=Excel.Chart.8
Ich sehe beide Charts in dem Report.
Habe als Anhaltspunkt auch Informationen aus folgendem Artikel verwendet:
ACC: Programmatically Link or Embed an Object in a Form (95/97)
Grüße,
Robert
-
Hallo Robert,
vielen Dank für die Mühe zur ausführlichen Beschreibung
Also eines vorweg: Per Copy und Paste Link klappt es ja einwandfrei
Werte werden aktualisiert -so soll es sein.
Könnte ich ja so stehen lassen-aber:
Ein Setzen der Sourceitem Property per VBA funktioniert auch mit der geänderten Schreibweise nicht.
z.B wie SourceItem=Sheet1![TestOLEAuto.xls]Sheet1 Chart auf Sheet1
habe diese Eigenschaft direkt aus der per Paste Link erzeugten UnboundFrame entnommen
Wenn ich nur wüsste warum das so ist bei Access 2007.
Vielleicht kommt ja noch der Geistesblitz....
Gruß und nochmal Danke
Walter