Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Diagramm - VBA - Fehler beim Senden von Daten an den OLE-Server

Begonnen von Chris2020, Februar 06, 2020, 16:34:02

⏪ vorheriges - nächstes ⏩

Chris2020

Hallo allerseits,

bin neu hier, also bitte um Nachsicht wenn ich Unsinn verzapfe ;)

Ich schreibe eine Wertpapierdatenbank und sitze schon den ganzen Tag vor folgendem Problem:

Ich habe ein Formular (frmPricesInvestments) mit einem Liniendiagramm (chtPI) das die Kursverläufe der Wertpapiere anzeigt. Beides basiert auf der Tabelle tblPricesInvestments. Das Liniendiagramm zeigt auf der X-Achse das Datum ([PIDate], Datum, kurz), auf der Y-Achse den Kurs ([PIPrice], Single) und als Wert die Wertpapiere ([refIID], Long).

Nun möchte ich die Anzeige im Liniendiagramm dynamisch auf ein Wertpapier beschränken. Dazu setze ich per VBA die RowSource des Diagramms neu und füge eine WHERE-Klausel hinzu. Mit

Me!chtPI.RowSource = "TRANSFORM Avg([PIPrice]) AS [PIPriceAvg] SELECT (Format([PIDate],""DDDDD"")) FROM [tblPricesInvestments] WHERE refIID = 2 GROUP BY (Int([PIDate])),(Format([PIDate],""DDDDD"")) PIVOT [refIID];"

funktioniert es so weit, aber das ist noch nicht dynamisch. Verwende ich hingegen

Dim TEST As Long
TEST = 2
Me!chtPI.RowSource = "TRANSFORM Avg([PIPrice]) AS [PIPriceAvg] SELECT (Format([PIDate],""DDDDD"")) FROM [tblPricesInvestments] WHERE refIID = " & TEST & "GROUP BY (Int([PIDate])),(Format([PIDate],""DDDDD"")) PIVOT [refIID];"


bekomme ich die Fehlermeldung "Fehler beim Senden von Daten an den OLE-Server" und das Diagramm wird nicht angezeigt.

In einem ähnlichen Formular/Diagramm funktioniert es, allerdings ist dort meine refID ein String und meine WHERE-Klausel dementsprechend

WHERE refCYID = '" & strCYID & "'

Gefühlt würde ich meinen, dass es sich hier um inkompatible Datenformate oder fehlende Anführungszeichen handelt, aber möglicherweise liege ich auch völlig falsch damit.

Hat irgendjemand von euch eine Idee wo mein Fehler liegt?

Danke im Voraus!
Chris


Chris2020

Hallo Franz,

danke, Du bist mein Held des Tages :D :D :D!!!

So simpel, und doch wäre ich wahrscheinlich niemals selbst drauf gekommen.

Danke!!! Viele Grüße an den Bodensee
Chris

Beaker s.a.

Hallo,
Solche Fehler findet man normalerweise schnell, wenn man den SQL-String ins
Direktfenster schreiben lässt
Debug.Print SQLDeinString
Die üblich beschriebene Vorgehensweise diesen String zum Testen per C&P in
eine leere Abfrage zu kopieren kannst du mit diesem Tool mit einer Codezeile
anstossen (inkl. Fehlermeldung)
http://access-codelib.net/download/addins/SqlDebugPrint.zip
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)