Hallo zusammen,
es gibt zwar einige ähnliche Beiträge hier im Forum, aber die Lösung habe ich leider noch nicht gefunden.
Problem:
Seit der Umstellung auf Win7 werden meine in Access2003-Formulare eingebettete Balkendiagramme (z.B. Diagramm Kundenumsatz über einer Jahres-Zeitachse) beim Formularaufruf nicht mehr angezeigt, bzw. wird ein leeres weisses Fenster angezeigt.
Habe eine kuriose Lösung gefunden:
Habe das gleiche Balkendiagramm nochmal unterhalb des sichtbaren Bereiches einkopiert. Um dieses zu sehen muß ich folglich per Scrollbalken nach unten scrollen. Sobald das untere Diagramm dann ins Sichtfeld rückt, wird das Balkendiagramm plötzlich dauerhaft angezeigt und zwar nicht nur unten im 2. Diagrammbereich sondern auch im oberen ursprünglichen Diagrammbereich. Somit funktioniert irgend ein Refreshprozess offenbar nicht automatisch.
Mit welchem Code beim Öffnen des Formulares könnte man diesen Refreshprozess anstossen ?
Danke und Gruß ;D ;D
Neutrino
Hi,
eventuell erreichst Du Dein Ziel, wenn Du den Fokus auf die Grafik legst (z.B. per Maus)
oder per VBA:
Luftcode {da ich nicht weiss, ob Du Unterformulare verwendest und wie das Formular aufgebaut ist}:
Dim Vorheriges_Steuerelement As String
Vorheriges_Steuerelement = Screen.ActiveControl.Name
Me!DeinDiagramm.SetFocus ' {hier bitte den Namen anpassen }
Me(Vorheriges_Formular).SetFocus
Harald
Hallo Harald,
hab's probiert (sowohl mit dem Formularnamen und alternativ auch mit dem Diagrammnamen), hat aber nicht geklappt.
Hier der Code, der hinter der Schaltfläche zur Aktivierung des Formulars (kein Unterformular, nur Diagramm + 2 Adressfelder) liegt:
Private Sub Befehl58_Click()
On Error GoTo Err_Befehl58_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Kundengrafik"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_Befehl58_Click:
Exit Sub
Err_Befehl58_Click:
MsgBox Err.Description
Resume Exit_Befehl58_Click
End Sub
Wenn ich die Eigenschaften des Diagramms öffne, steht bei Objektaktivierung "Doppelklicken". Wenn ich hier "Fokus" einstelle, folgt eine Fehlermeldung.
Gruß ;D ;D
Neutrino
Hi,
Zitat von: neutrino am Februar 27, 2014, 19:41:48
Wenn ich die Eigenschaften des Diagramms öffne, steht bei Objektaktivierung "Doppelklicken". Wenn ich hier "Fokus" einstelle, folgt eine Fehlermeldung.
ich hatte es mit "Manuell" in einem Formular erreicht.
Und es gab noch eine "Prise" VBA für das Ereignis "Bei Ole Aktualisierung":
Private Sub DeinDiagramm_Updated(Code As Integer)
On Error Resume Next
Me.DeinDiagramm.SetFocus
Me(Vorheriges_Formular).SetFocus
End Sub
Ich gebe allerdings zu, dass {zumindestens für mich} access + Grafik ein Bereich mit Trial and Error sein kann (zum Teil auch sehr viel Error)Harald
Hallo Harald,
ganz komisch. Es hat mit Deinem Code teilweise genau 1x funktioniert, dann aber nicht mehr.
Anderer Lösungsansatz: Wie lautet der Code, den Formular-Scrollbalken 1x runter und wieder rauf zu bewegen ? Wie eingangs beschrieben wird dadurch auch ein Einblenden des Diagramms erreicht.
Gruß ;D ;D
Neutrino
Hallo,
@neutrino: könntest Du eine Beispiel-DB mit genau diesem Problem hier hochladen?
Hallo,
schaffe es aktuell zeitlich nicht, eine vergleichbare db zu erstellen.
Aber der Code für den Scrollbalken wäre eine mögliche Lösung..
Trotzdem Danke für Eurer Engagement !
Gruß ;D ;D
Neutrino
So, habe jetzt eine Beispiel-db erstellt. Auch hier erscheint die Diagrammfläche leer. Das Diagramm habe ich durch duplizieren nochmals darunter kopiert. Erst wenn man nun nach unten scrollt, erscheint der Diagramminhalt dann in beiden Diagrammen.
Mein System: Win 7 Home Premium, Access 2003
(Eure Lösungscodes habe ich an dieser db noch nicht ausprobiert)
Bin gespannt, woran es liegt.. ;D ;D
Neutrino
Hallo,
Zitates gibt zwar einige ähnliche Beiträge hier im Forum, aber die Lösung habe ich leider noch nicht gefunden
hast du dir diese Beiträge .....
http://www.access-o-mania.de/forum/index.php?topic=13787.0 (http://www.access-o-mania.de/forum/index.php?topic=13787.0)
... ebenfalls VOLLSTÄNDIG durchgesehen?
Diese Beiträge haben dein Thema zum Inhalt wenn ich das aus deinen Ausführungen so entnehmen darf ::)
Hallo Database,
habe den Code aus Deinem älteren Beitrag in die heute gepostete Beispiel db unter "Zeitgeber" eingefügt und das Zeitgeberintervall auf 100 gestellt. Daraufhin kommt die Fehlermeldung "Methode oder Datenobjekt nicht gefunden" zu Zeile "Me.OLEUngebunden0.Requery".
Könntest Du meine Beispiel db (heute morgen gepostet) mal testen ?
Danke und Gruß ;D ;D
Neutrino
Hi,
hoffentlich kann jemand anderes die Datei lesen.
Ich erhalte den Hinweis: Nicht erkennbares Datenformat.
Habe nur 2 Tabellen gefunden.
Kannst Du die Datenbank erneut zur Verfügung stellen? Bitte auch mit Formular/en.
Harald
Hallo,
Zitat"Methode oder Datenobjekt nicht gefunden" zu Zeile "Me.OLEUngebunden0.Requery"
Du musst natürlich schon das Steuerelement bzw. dessen Namen
OLEUngebunden0 an deine Gegebenheiten anpassen.
Deine DB habe ich mal runtergeladen und gestartet.
Unter Acc10 kann ich kein Problem erkennen, auch wenn ich das 2. Diagramm aus dem Formular rauslösche nicht,
das Diagramm wird beim Datensatzwechsel ordentlich aktualisiert und angezeigt.
@Harald
hab die DB an meinen Beitrag gehängt - ist bereits so geändert, dass nur noch ein Diagramm im Formular steht.
Hallo zusammen,
habe die von Database neu hochgeladen Beispiel db ausprobiert. Bei mir (Access 2003 unter Win7) ist das Diagramm nach wie vor leer.
@Database: Schade :-) dass Du das 2. Diagramm gelöscht hast. Damit wollte ich doch den Effekt zeigen, dass das Diagramm nach dem Scrollen sichtbar wird.
@Bahasu: komisch, dass Du meine Datei nicht öffnen kannst. Ich habe diese soeben nochmal von meinem Beitrag geladen und konnte diese problemlos öffnen.
Gruß und besten Dank schonmal ;D ;D
Neutrino
Hallo,
ein Test unter Win8.1 64b und A2010 32b ergab nicht das beschriebene Verhalten. Beide Diagramme werden sofort beim Anzeigen/Öffnen des Formulars angezeigt.
Mit Win7 ?? /A2003 kann ich es wegen nicht verhandener Konstellation nicht testen....
Hi,
ich kann bestätigen, dass unter win 7 (prof, 64 Bit) + a2003 die Grafik erst nach Scrollen angezeigt wird.
Harald
Hallo,
Zitat@Database: Schade :-) dass Du das 2. Diagramm gelöscht hast. Damit wollte ich doch den Effekt zeigen, dass das Diagramm nach dem Scrollen sichtbar wird
Nein, das ist nicht schade, ich hab's mit 2 und danach mit einem Diagramm probiert, beide male war ein Scrollen nicht notwendig, das von dir beschriebene Verhalten tritt bei mir - Windows 2008 R2 / Office 2010 (x86) NICHT auf, auch unter Windows 7 x64 und Office 2013 (x86) nicht
Ansonsten verweise ich nochmals auf den von mir zitierten Beitrag.
Hallo Bahasu,
dass ist in sofern eine gute Nachricht für mich, dass mein System somit ok ist. Wie gesagt, für mich wäre schon der Code eine Hilfe (meine Programmierkenntnisse sind bescheiden.. ), der das Scrollen automatisiert (würde man doch wahrscheinlich nur als kurzes Zucken wahrnehmen).
Nochmals besten Dank an Alle (@Database, war ja nicht negativ gemeint..) ;D ;D
Neutrino
Hi,
habe in der Tabelle "Name" gegen "Name_Kunde" getauscht {vermeide reservierte Begriffe}
Über den Sinn, (vermutlich berechnete) Umsätze in der Tabelle2 zu speichern, will ich jetzt nicht diskutieren.
hier eine Version, die unter a2003 + win7 läuft.
Hilft das?
Harald
Hi,
Zitat(@Database, war ja nicht negativ gemeint...)
So hab ich es auch nicht aufgefaßt ;D
Hallo Bahasu,
Danke für Deine Lösung. Ich habe alle Codes in meine große db integriert, nur scheitere ich aktuell an einem Laufzeitfehler 2110
"Access kann den Fokus nicht auf das Steuerelement Diagramm208 verschieben"
Komme einfach nicht dahinter, habe schon alles 3x geprüft. Oder hast Du außer den Codes noch etwas anderes in den Einstellungen geändert ?
Hier der Code, der insgesamt hinter diesem Formular liegt:
Mein Diagramm heisst "Diagramm208"
Mein Feld für die Kundennummer "KdNr"
Option Compare Database
Option Explicit
Public Vorheriges_Steuerelement As String
Private Sub Diagramm208_Updated(Code As Integer)
Me.Diagramm208.SetFocus
'DoEvents
If Nz(Vorheriges_Steuerelement, "") = "" Then
Me.KdNr.SetFocus
Else
Me(Vorheriges_Steuerelement).SetFocus
End If
End Sub
Private Sub Form_Current()
On Error Resume Next
Vorheriges_Steuerelement = Screen.PreviousControl.Name
On Error GoTo 0
Me.Diagramm208.SetFocus
'DoEvents
End Sub
Private Sub Form_Open(Cancel As Integer)
Me.KdNr.SetFocus
'DoEvents
End Sub
Private Sub Schaltfläche57_Click()
On Error GoTo Err_Schaltfläche57_Click
DoCmd.Close
Exit_Schaltfläche57_Click:
Exit Sub
Err_Schaltfläche57_Click:
MsgBox Error$
Resume Exit_Schaltfläche57_Click
End Sub
Private Sub Befehl206_Click()
On Error GoTo Err_Befehl206_Click
Dim stDocName As String
stDocName = "Aktualisieren Diagramm"
DoCmd.RunMacro stDocName
Exit_Befehl206_Click:
Exit Sub
Err_Befehl206_Click:
MsgBox Err.Description
Resume Exit_Befehl206_Click
End Sub
Nebenbei bemerkt: der Sinn der Grafik war keiner, hatte die Beispiel db nur schnell zusammengeklickt.
Gruß ;D ;D
Neutrino
Hi,
Objektaktivierung beim Diagramm = Manuell.
In welcher Zeile passiert der Fehler?
Harald
Hallo Bahasu,
hab's gefunden. Komischerweise stand mein Diagramm auf Aktiviert "nein" und Gesperrt "ja". Dies war in Deiner Beispiel db umgekehrt. Hab's jetzt so eingestellt und es klappt. Habe dann auch probiert, ob dies der Fehler bezogen auf das Gesamtproblem war, war es aber nicht.
NOCHMALS VIELEN DANK FÜR DEN CODE !!!!! ;D ;D
Neutrino