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 von Access 2003 wird unter WIN 7 nicht angezeigt

Begonnen von Knubbel, Februar 11, 2011, 11:39:44

⏪ vorheriges - nächstes ⏩

Knubbel

Hallo Gemeinde,

ich habe folgendes Problem:
Bei einer unter Win XP laufenden Datenbank A2003 wird eine integrierte Grafik nicht angezeigt. Folgendes Phänomen habe ich festgestellt:
Wenn die Grafik aufgerufen wird, erscheint ein leeres Formular. Wenn dieses Formular manuell minimiert wird und anschließend wieder maximiert wird, ist die Grafik vollständig vorhanden.

Ich bastelte schon lange an diesem Problem herum. Auch über google bin ich diesem Problem nicht auf die Schliche gekommen. Zuletzt habe ich aus Eurer Gemeinde unter der Rubrik "Smalltalk - Anfrage aus anderen Foren hier geduldet?" Hinweise erhalten, die mich aber auch nicht weitergebracht haben.

Wenn es keine direkte Lösung zu diesem Problem geben sollte, könnte ich mir vorstellen, dass über einen VBA-Code das, was manuell mit minimieren/maximieren zum Ziel führt, auch in einen Code gepackt werden kann.
Ich wäre euch sehr dankbar, wenn Ihr mir einen solchen Code (möglichst detailliert erklärt) hier posten könntet.

Meine Systeme:

1. Windows 7 Home Premium
2. Access 2003 unter Win XP pro

Einen Vorschlag folgend hänge ich eine abgespeckte Version der DB mit Phantasiedaten an.

NS: Oben beschriebenes Phänomen tritt nicht nur bei dieser DB auf, sondern auch bei anderen DBs mit Grafik.

mfg Hans

[Anhang gelöscht durch Administrator]

bahasu

Hi,

warum rufts Du das Diagramm in einem Formular auf?
könnte nicht auch ein Bericht für die Diagramm-Anzeige gehen?

Harald
Servus

Knubbel

Hi bahasu, Harald,

sollte es im Bericht besser laufen? Ich  habe bisher nur das Formular benutzt. Und unter XP hat es auch so funktioniert. Warum bei WIN7 nicht mehr?

mfg Hans


bahasu

#3
Hi Hans

als Bericht ist die Grafik leicht anzeigbar: siehe Anhang

(Beim Button habe ich statt des Makros einen VBA-Zweizeiler eingebaut, der den Bericht aufruft (Dieser ist noch nicht "schön" angepaßt worden ...)

Keine Ahnung, warum das unter xp ok war. Aber wozu gibt es die Gurus  ;D

Harald

[Anhang gelöscht durch Administrator]
Servus

Knubbel

Hallo bahasu / Harald,

ja, so etwa könnte es gehen. Ich bin ja nicht gegen Bericht. Aber dein Code müsste noch angepasst werden, Ich möchte das Diagramm als "Liniendiagramm" quer dargestellt haben (siehe mein Beispiel).
Da ich VBA-Laie bin, kann ich deinen Vorschlag nicht umwandeln.

mfg Hans

bahasu

Hi Hans

siehe Anhang

Harald

[Anhang gelöscht durch Administrator]
Servus

Knubbel

Hallo Harald,

ja, so etwa soll das Diagramm dargestellt werden. Aber bei deinem Beispiel werden auf der Abzisse nur Ost West ..etc. dargestellt, nicht die Daten (Monatsdatum). Auch die Werte werden nicht in korrekten Größen angezeigt. Hier muss wohl nachgebessert werden.
NS.: Nur zur Information, meine DB hat z.Z. 460 Datensätze, die dargestellt werden sollen.

mfg Hans

bahasu

Hi Hans,

Vorschlag: Vielleicht hilft es, wenn Du aus dem Formular-Entwurf die Grafik kopierst und in den Bericht einfügst.

Harald
Servus

database

#8
Hallo Knubbel,

so ich habe mir deine Datei im ersten Beitrag mal angesehen.

Der Grund für die Nichtanzeige des Diagramms liegt m.E. daran, dass die Datenherkunft noch nicht erstellt wurde, obwohl das Diagramm bereits angezeigt wird.
Das beschriebene Minimieren und Maximieren oder ein Wechsel zwischen den Datensätzen des Formulars löst dann das Anzeigen aus.

Abhilfe:

Im Formularentwurf ----> Eigenschaften des Formulars ---->  Zeitgeber Wert 100 einstellen.
Ereignis 'Bei Zeitgeber' folgenden Code:


Private Sub Form_Timer()

   Me!OLEUngebunden0.Requery
   Me!TimerInterval = 0

End Sub


... zeigt das Diagramm OHNE Probleme an   ;)

TimerInterval = 100 besagt, dass nach dem Abgeschlossenen Laden des Formulars 100 Millisekunden gewartet wird und dann das Ereignis Timer ausgelöst wird.
TimerInterval = 0  muss sein sonst wird laufend aktualisiert und das soll ja nicht sein!

...und ausser diesem und dem Code zum Schließen des Formulars befindet sich KEINE WEITERE ZEILE Code im Formular!

HTH


p.s. sollte das Timerintervall 100 (100 Millisekunden) nicht ausreichen, wenn alle 460 Datensätze ausgewertet werden, kannst du den Wert erhöhen.

[Anhang gelöscht durch Administrator]

Knubbel

Hallo Peter.

Zunächst vielen Dank für deine ausführliche Erklärung, die sogar ich verstanden habe.

Die Lösung führt jedoch nur teilweise zum Erfolg:
Mit 500 bei Zeigeber werden alle bisher vorhandenen 460 Datensätze ausgewertet und richtig im Diagramm angezeigt.
Jedoch kommt dann die Fehlermeldung: "Laufzeitfehler 2465   MOA kann 'Timerinterval' nicht finden". Auch wenn ich statt Timerinterval Zeitgeberinterval (so, wie es in der Eigenschaftenliste heißt) eingebe, kommt die Fehlermeldung.

Was kann / muß ich nun noch tun?

mfg Hans

database

Hallo,

hast du das alles entsprechend meinem Beispiel gemacht?

Wenn du ím Ereignis 'Bei Zeitgeber' des Formulars mit dem Diagramm eingibst Me gefolgt von einem Punkt  MÜSSTE eigentlich die Eigenschaft TimerInterval auszuwählen sein.
Und wenn dieses der Fall ist verstehe ich eigentlich die Fehlermeldung nicht...
Ich befürchte da eher einen Schreibfehler deinerseits - kopier' einfach die Zeilen aus meinem Beitrag in deine DB

Zitat... wenn ich statt Timerinterval Zeitgeberinterval ...
Du kannst die Deutsche Schreibweise, die aus der übersezten Oberfläche stammt keinesfalls in einem VBA Code einsetzen - das funktioniert nicht.


Knubbel

Hallo Peter.

Habe jetzt deinen Code kopiert und eingefügt. Gleiches Ergebnis: Laufzeitfehler!

Habe nun im Code  das Me!  durch Me. ersetz. Laufzeitfehlermeldung wird nicht mehr angezeigt. Das Diagramm erscheind kurz, und verschwindet dann wieder.

Was nun?

mfg Hans

database

#12
Pfffffff....

Zitatdurch Me. ersetz. Laufzeitfehlermeldung wird nicht mehr angezeigt

wenn du den Punkt eingibst, muss ja der Kontext aufgehen - gibts da TimerInterval zum auswählen?

Zeig mal deinen GESAMTEN Code aus dem Form her bitte - KOPIE!!!

Sonst kann dir nur noch anbieten die DB zu zippen und wenn nicht anders möglich die relevanten Tabellen samt einem repräsentativen Bestand und dem einen Form mit dem Diagramm hochzuladen - ich kann mir das nicht vorstellen, bei mir läuft's ja auch - hast du mein Beispiel auf deinem Recher ausprobiert?

Knubbel

#13
Hallo Peter,

hier eine Kopie von meinem Code:

Private Sub Form_Timer()
   
    Me.OLEUngebunden0.Requery
    Me.TimerInterval = 0
   
End Sub P

Ja, in dem sich öffnenden Dropdown ist "TimerInterval" vorhanden.

Ich hatte garnicht gesehen, dass du dein Beispiel angehängt hattest.
Habe die DB jetzt heruntergeladen.
Sie weist das gleiche Problem auf: leeres Formular.

mfg Hans

database

Habe zur Vorsicht die von mir angehängte Datei runtergeladen - die funktioniert einwandfrei!

Rufst du auch das Formular 'Diagramm Monatseinkommen' auf, da habe ich nämlich die Änderung eingebaut und nicht ins Formular 'Diagramm' ?
Ausserdem würde ich empfehlen die Diagrammobjekte in unterschiedlichen Formualren auch unterschiedlich zu benennen.