Neuigkeiten:

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

Mobiles Hauptmenü

Gestaltung von Kreisdiagramm in Bericht macht Probleme

Begonnen von Damien, November 11, 2016, 15:07:28

⏪ vorheriges - nächstes ⏩

Damien

Hallo Experten,
ich habe ein Endlosformular, welches auf einer Abfrage basiert. Die Datensätze lassen sich nach Name, Land, Status, Phase, etc. filtern.
Jetzt ist es mein Ziel mit einer Schaltfläche im Formular einen Bericht zu öffnen, der basierend auf den Filtern eine Übersicht in Form von Kreisdiagrammen gibt.
Beispiel: Filter -> Land Deutschland -> Bericht öffnen -> Bericht mit Charts öffnet sich aus denen sich ablesen lässt wie viele Datensätze in Deutschland in welcher Phase bzw. Status sind.
Tatsächlich habe ich es hinbekommen, dass mir das Kreisdiagramm auf der gewünschten Basis angezeigt wird.
Sobald ich es aber designen möchte in der Entwurfsansicht spinnt das Programm total rum und ist nicht zu bedienen.



Sobald ich die vertikale Bildlaufleiste bewege fliegt alles durcheinander wie auf den Bildern. Bin absolut ratlos.
Hat jemand eine Idee?

Schöne Grüße
D.

DF6GL

Hallo,

es sieht so aus, als wären die Schriftgrößen der Legende und/oder der Beschriftungen viel zu groß eingestellt.


Kontrolliere das mal.  Ansonsten lade die DB hier hoch, datenreduziert , komprimiert/repariert und gezippt.

Damien

#2
Hallo Franz,
tatsächlich stimmte die Schriftgröße nicht, trotzdem spinnen die Diagramme beim scrollen total rum und alles verschiebt sich unkontrollierbar.
Es handelt sich um den Bericht "rptdiagr" welcher sich aus dem Formular "abf_analyse" öffnen lässt.
Die Datei ist entstanden in einem learning by doing Prozess, deshalb sind einige Basics nicht eingehalten. Später möchte ich das ganze noch mal neu aufsetzen.
Eine Diagnose, warum sich die Diagramme in der Entwurfsansicht kaum richtig gestalten lassen wäre super.
Vielen Dank fürs reinschauen!!
Gruß D.

DF6GL

Hallo,

kopiere die Datensatzherkunft (SQL-String) und erstelle daraus eine gespeicherte Abfrage.
Lösche das Diagramm (vermutlich "zerschossen").
Füge ein neues Diagramm mit dem Assistenten ein und benutze dabei die vorher gespeicherte Abfrage.


Zudem:  Schreibe in jedes Modul "Option Explicit" in den Kopfbereich.

Debugge/kompiliere die DB und eliminiere alle auftreten Fehler.

Weiterhin:  Die Beziehungen sind falsch eingestellt und bedürfen der Korrektur.

Damien

Danke für die Hinweise, leider sind meine Kenntnisse noch beschränkt, aber ich möchte dazulernen.  :)
Wie kopiere ich den SQL-String und erstelle daraus eine gespeicherte Abfrage?
Und was genau stimmt bei den Beziehungen nicht?  :-\



DF6GL

Hallo,


1)  in den Abfrageentwurf gehen und dort mit Rechtsklick die SQL-Ansicht wählen. Den SQL-String dort ablegen und die Abfrage speichern.


2) Beziehungen werden über die Schlüsselfelder (Primärschlüssel, Fremdschlüssel) definiert und nicht über Attributs-Felder.

Damien

Hallo,
ich habe jetzt den SQL-String kopiert und daraus eine neue Abfrage erstellt.
Alle Module sind debugged und um Option Explicit ergänzt.

In der neuen Abfrage habe ich die Beziehungen geändert: Primärschlüssel der "kleinen Tabellen" zu Datenfeldern in der "Haupttabelle".
Jetzt kriege ich die Fehlermeldung: "Datentypenkonflikt im Ausdruck" sobald ich die Abfrage öffnen möchte und eine Seitenansicht ist nicht möglich, wenn ich einen entsprechenden Bericht aus der Anfrage generiere.

Danke für deine Hilfe bis jetzt.

DF6GL

Hallo,

vermutlich stimmen die Datentypen nicht (wie die Fehlermeldung schon aussagt).

Zeige mal den SQL-String der Abfrage

Damien

SELECT data.[company name], data.city, [countries of the world].Country, data.[date of first contact], segments.segment, data.[business description], phases.phase, status.status, data.website, data.sharepoint, data.[all names]
FROM status INNER JOIN (phases INNER JOIN (segments INNER JOIN ([countries of the world] INNER JOIN data ON [countries of the world].ID = data.country) ON segments.segment_ID = data.segment) ON phases.phase_ID = data.phase) ON status.status_ID = data.status
WHERE (((data.[company name]) Like "*" & [Formulare]![abf_analyse]![txtCompany_name] & "*") AND ((data.city) Like "*" & [Formulare]![abf_analyse]![txtCity] & "*") AND (([countries of the world].Country) Like "*" & [Formulare]![abf_analyse]![cbxCountry] & "*") AND ((data.[date of first contact])>=Nz([Formulare]![abf_analyse]![txtDate_from],#1/1/1900#) And (data.[date of first contact])<=Nz([Formulare]![abf_analyse]![txtDate_till],#1/1/2200#)) AND ((segments.segment) Like "*" & [Formulare]![abf_analyse]![cbxSegment] & "*") AND ((data.[business description]) Like "*" & [Formulare]![abf_analyse]![txtDescription] & "*") AND ((phases.phase) Like "*" & [Formulare]![abf_analyse]![cbxPhase] & "*") AND ((status.status) Like "*" & [Formulare]![abf_analyse]![cbxStatus] & "*") AND ((data.[all names]) Like "*" & [Formulare]![abf_analyse]![txtNames] & "*"));


Das ist der SQL-String aus der Abfrage mit geänderten Beziehungen.

Ich habe jetzt beschlossen die DB von Beginn an neu aufzusetzen und möchte mich an alle Regeln halten um Mögliche Fehler zu vermeiden.
"Option Explicit" zum Beispiel war mir nicht bekannt. Zudem möchte ich jetzt alle Module und Felder von Anfang an richtig benennen und die Beziehungen gleich richtig gestalten. Hast du evtl. noch Tipps worauf ich von Beginn an achten sollte?

Gruß und Danke
D.

DF6GL

Hallo,

"beschlossen die DB von Beginn an neu aufzusetzen und möchte mich an alle Regeln halten "

das ist ein  hochwohllöblicher Vorsatz ...  :) , den Du nicht bereuen wirst.

Sehr vermutlich wird dann auch die Monster-Abfrage (bzgl. der Where-Condition) ganz anders aussehen.

BTW: die Formular-Bezüge in der Abfrage sind fehlerträchtig, d. h. suboptimal.  Ich rate grundsätzlich davon ab.
Zudem sollte "Formulare" als "Forms" geschrieben stehen, auch wenn Access das in der Entwurfsansicht wieder "zurück-verdeutscht"

Damien

Damit ich dich richtig verstehe, die Namen sind falsch definiert, das mache ich dieses Mal anders.
Wie "*" & [Formulare]![abf_analyse]![txtCompany_name] & "*"
Der Aufbau der Kriterien ist aber in Ordnung oder? Damit konnte ich mein Endlosformular so schön filtern  :)

DF6GL

Hallo,

syntaktisch schon...

Ob aber ein Formular "abf_analyse" heißt, bezweifle ich zunächst mal.

Beaker s.a.

Hallo Damian,
[quote"Option Explicit" zum Beispiel war mir nicht bekannt.[/quote]
Das der VBA-Editor das automatisch eintragen kann weisst du?
Falls nicht: Menu "Extras" -> "Optionen" -> "Variablendeklaration erforderlich" anhaken.
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)