Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

OLE Object - Excel Pivot

Begonnen von Schakal, November 27, 2017, 18:36:22

⏪ vorheriges - nächstes ⏩

Schakal

Hallo Access Profies,
ich habe bereits im Internet gesucht aber irgendwie komme ich nicht zurecht.
Folgendes Problem habe ich:
Ich möchte aus einer Abfrage in Access eine PivotChart erstellen. Da dies in Access 2013/2016 nicht mehr möglich ist gibt es im Internet ein "Workaround". Dies habe  ich mir angeeignet und auch so aus geführt, funktioniert wunder bar. Die Excel PivotChart habe ich über ein oleObject in eine Tabelle eingebunden und rufe dieses über ein Formular wieder  auf- Alles klappt soweit wunderbar.

Nun  habe ich folgendes kleines Problem und ich denke das mir hier jemand helfen kann.
Wenn ich nun die Abfrage Aktualisiere, erscheinen dort die neuen Werte aber diese erscheinen nicht in der PivotChart ausser wenn ich auf die PivotChart dopple klicke öffnet sich Excel und ich kann die Daten (PivotChart) "Manuel" aktualisieren.

Ich habe nun versucht dies über einen VBA-Code zu machen damit dies automatisch geschieht - Scheitere aber hier.

Ich habe mit
Me.Requery
Me.objExcel.Requery     'objExcel ist das OLEObject

Beim Laden, bei Fokuserhalt usw. Aber habe  kein Erfolg.
Wie aktualisiere ich ein oleObjekt (objExcel - Excel -PivotChart) per VBA-Code?

Danke- mal wieder für Eure hilfe.


Frithjiof

Halllo Schakal,

ich mache es, wenn gar nichts mehr geht, so.

Me.XXX.RowSource = Me.XXX.RowSource

Ob das auch mit OLEPbjecten geht weiß ich aber nicht.

Frithjof

Lachtaube

Das Ablaufprinzip:
* ggf. Enable auf True setzen
* ggf. Locked auf False setzen
* OLE-Rahmen fokussieren
* Action auf acOLEActivate setzen
* Referenz auf Objekt-Instanz holen
* Referenz automatisieren
* Fokus entziehen
* ggf. Locked auf True setzen
* ggf. Enabled auf False setzen

'Luftcode (ungetestet)
'
'nur so oft ausführen wie nötig und nicht wie möglich
Private Sub RefreshOLEFrame()
   Dim sheet As Object
   Dim intI As Integer

   With Me.MeinUngebundenerRahmen
      .Enabled = True
      .Locked = False
      .SetFocus
      .Action = acOLEActivate
      'musst Du ggf. anpassen
      .Object.Application.Workbooks(1).WorkSheets(1).PivotTables(1).RefreshTable
      Me.EinAnderesSteuerelement.SetFocus
      .Locked = True
      .Enabled = False
   End With
End Sub
Grüße von der (⌒▽⌒)

Schakal

Guten Morgen Lachtaube,
Dankeschön für Deine Hilfe das hat funktioniert.
Alles gut.