collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 45
  • Punkt Versteckte: 2
  • Punkt Mitglieder: 3
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 13976
  • stats Beiträge insgesamt: 66571
  • stats Themen insgesamt: 8973
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Datumsabfrage bei Charts  (Gelesen 828 mal)

Offline dr779

  • Newbie
  • Beiträge: 14
Datumsabfrage bei Charts
« am: März 11, 2018, 11:19:52 »
Hallo liebe Gemeinde,
ich habe das Problem, dass ich ein Chart erstellen muss. Das ist nicht das Problem. Das Chart basiert auf einer Abfrage, die das Datum eingrenzt. Habe ich am ersten Datum keinen Datensatz, wird das Datum im Chart nicht angezeigt. Das gleiche ist beim letzten Datensatz. Gibt es zwischen drin keine Datensätze, werden diese angezeigt.
Ich benötige aber auch den ersten und den letzten.
Kann mir da jemand helfen? Bin am verzweifeln.
Besten Dank
DR779
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7284
Re: Datumsabfrage bei Charts
« Antwort #1 am: März 11, 2018, 11:58:34 »
Hallo,
die einfachste Lösung ist eine Hilfstabelle (Kalendertabelle die alle Tage enthält. Mit einem ausreichenden Zeitraum. Das Anlegen einer sochen Hilfstabelle ist eine einmalige Sache die man bequem mit Excel erledigen kann. Die Exceltabelle nach Access importieren.
Die Kalendertabelle kann gleich 20 und mehr Jahre umfassen.
In die Abfrage nimmt man die Kalendertabelle mit auf und stellt über das Datum eine Beziehung her (LEFT oder RIGHT) JOIN. Die Auswahl des Datum muss dann über die Datumsspalte der Kalendertabelle erfolgen.

Eine solche Kalendertabelle ist keine Krücke, sondern ein bewährtes Hilfsmittel in einer Datenbank.
Gruß
Klaus
 

Offline dr779

  • Newbie
  • Beiträge: 14
Re: Datumsabfrage bei Charts
« Antwort #2 am: März 11, 2018, 12:28:29 »
Hallo Klaus,
besten Dank für die schnelle Hilfe. Bin zwar hier im Forum ein Newbie, Access Datenbanken habe ich schon einige erstellt. Mit Hilfstabellen habe ich noch nicht gearbeitet.
Hast Du ein kleines Beispiel für mich?
Gruß
(auch) Klaus
 

Offline dr779

  • Newbie
  • Beiträge: 14
Re: Datumsabfrage bei Charts
« Antwort #3 am: März 11, 2018, 12:47:02 »
Hallo Klaus,
die Tabelle habe ich erstellt. 20 Jahre waren kein Problem. Nun noch das einbinden in die Abfrage.
Ich versuche es mal.
Gruß
Klaus
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1248
Re: Datumsabfrage bei Charts
« Antwort #4 am: März 11, 2018, 13:54:01 »
Vielleicht zeigst Du uns einmal die SQL-Texte der verwendeten Abfragen, denn wenn diese in der Lage sind, ein physikalisch in den Daten nicht vorhandenes Dutum für zwischen drin zu erzeugen, sollte das auch für die Ränder gelingen.

PS: bei dem Chart handelt es sich um ein in ein Formular bzw. Bericht eingebettetes Steuerelement oder um eine Chart-Darstellung einer Abfrage in Access 2007/2010?
 
Grüße von der (⌒▽⌒)
 

Offline dr779

  • Newbie
  • Beiträge: 14
Re: Datumsabfrage bei Charts
« Antwort #5 am: März 11, 2018, 15:19:18 »
Hallo,

die SQL-Abfrage sieht so aus.
SELECT Count(qry_30_KPI_1.FE_DAGDat) AS AnzahlvonFE_DAGDat, qry_30_KPI_1.FE_Intern AS Ausdr1, qry_30_KPI_1.FE_DAGDat AS Ausdr2
FROM qry_30_KPI_1
GROUP BY qry_30_KPI_1.FE_Intern, qry_30_KPI_1.FE_DAGDat
HAVING ((([qry_30_KPI_1].[FE_Intern])=No))

Diese Abfrage besteht aus einer vorherigen Abfrage, bei der ich die Daten ohne Gruppierung auswähle.
Benutzt wird Access 2013
Das Chart ist ein Diagramm mit den Daten der hier geposteten Abfrage in einem Bericht. In diesem Bericht habe ich bis zu 10 solcher Abfragen für bis zu 10 Diagramme. Jeweils 1 für die Wochenausgabe und 1 für die Tagesausgabe.
Gruß
Klaus
 

Offline dr779

  • Newbie
  • Beiträge: 14
Re: Datumsabfrage bei Charts
« Antwort #6 am: März 11, 2018, 15:28:49 »
Hallo,
das ist die erste Abfrage
SELECT tbl_Fehler.FE_HAlle, tbl_Fehler.FE_DAGDat, tbl_Fehler.FE_FB, tbl_Fehler.FE_Intern
FROM tbl_Fehler
WHERE (((tbl_Fehler.FE_HAlle)="30N") AND ((tbl_Fehler.FE_DAGDat) Between [Forms]![frm_Auswertungen_Berichte]![von1] And [Forms]![frm_Auswertungen_Berichte]![datumbis]) AND ((tbl_Fehler.FE_FB)=51 Or (tbl_Fehler.FE_FB)=52 Or (tbl_Fehler.FE_FB)=180 Or (tbl_Fehler.FE_FB)=181 Or (tbl_Fehler.FE_FB)=186 Or (tbl_Fehler.FE_FB)=187 Or (tbl_Fehler.FE_FB)=188 Or (tbl_Fehler.FE_FB)=190 Or (tbl_Fehler.FE_FB)=197 Or (tbl_Fehler.FE_FB)=199 Or (tbl_Fehler.FE_FB)=201 Or (tbl_Fehler.FE_FB)=211 Or (tbl_Fehler.FE_FB)=215 Or (tbl_Fehler.FE_FB)=218 Or (tbl_Fehler.FE_FB)=295 Or (tbl_Fehler.FE_FB)=296 Or (tbl_Fehler.FE_FB)=297 Or (tbl_Fehler.FE_FB)=226 Or (tbl_Fehler.FE_FB)=262 Or (tbl_Fehler.FE_FB)=263 Or (tbl_Fehler.FE_FB)=264 Or (tbl_Fehler.FE_FB)=275 Or (tbl_Fehler.FE_FB)=236 Or (tbl_Fehler.FE_FB)=240 Or (tbl_Fehler.FE_FB)=241 Or (tbl_Fehler.FE_FB)=244 Or (tbl_Fehler.FE_FB)=245 Or (tbl_Fehler.FE_FB)=246) AND ((tbl_Fehler.FE_Intern)=No));

und das die folgende:
SELECT qry_30N_KPI_1.FE_DAGDat, Count(qry_30N_KPI_1.FE_DAGDat) AS AnzahlvonFE_DAGDat, qry_30N_KPI_1.FE_Intern
FROM qry_30N_KPI_1
GROUP BY qry_30N_KPI_1.FE_DAGDat, qry_30N_KPI_1.FE_Intern
HAVING (((qry_30N_KPI_1.FE_Intern)=No));
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1248
Re: Datumsabfrage bei Charts
« Antwort #7 am: März 11, 2018, 17:07:42 »
Hi,

zuerst einmal zur 1. Abfrage. Die solltest Du lesbar umgestalten (Die runden Klammern habe ich belassen, weil sie Dir der QBE-Editor früher oder später doch wieder setzt).SELECT f.FE_HAlle,
       f.FE_DAGDat,
       f.FE_FB,
       f.FE_INtern
FROM   TBL_FEHLER AS f
WHERE  ( ( ( f.FE_HAlle ) = "30n" ) AND
         ( ( f.FE_DAGDat ) BETWEEN [Forms]![frm_auswertungen_berichte]![von1] AND
                                   [Forms]![frm_auswertungen_berichte]![datumbis] ) AND
         f.FE_FB IN (  51,  52, 180, 181,
                      186, 187, 188, 190,
                      197, 199, 201, 211,
                      215, 218, 226, 236,
                      240, 241, 244, 245,
                      246, 262, 263, 264,
                      275, 295, 296, 297 ) AND
         ( ( f.FE_Intern ) = False ) );
Besser wäre es noch, wenn die aufgelisteten FE_FB-Nummern in einer Tabelle oder Abfrage vorlägen.

Anmerkung: das Feld FE_HAlle aufzuführen, ist eigentlich überflüssig, denn da steht ja in jedem Datensatz immer dasselbe 30n drin; und auch FE_Intern ist immer Falsch.

Bitte die Abfrage testen - dann machen wir weiter.
Grüße von der (⌒▽⌒)
 

Offline dr779

  • Newbie
  • Beiträge: 14
Re: Datumsabfrage bei Charts
« Antwort #8 am: März 11, 2018, 17:48:50 »
Hi Lachtaube,
die Abfrage funktioniert. Die Halle und Intern habe ich ausgeblendet; die brauche ich zur Auswahl der Hallen und ob der Fehler intern gefunden wurde oder ob er beim Kunden gefunden wurde.
Zu den Nummern: Es sind hunderte Nummern (derzeit 450 mögliche Fehler), die ich zur Fehlerkategorisierung benötige.
Gruß
Klaus
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1248
Re: Datumsabfrage bei Charts
« Antwort #9 am: März 11, 2018, 18:07:02 »
Dass die beiden Infos in der Tabelle notwendig sind, steht außer Zweifel - ob's in der Berichtsabfrage notwendig ist, scheint zumindest fragwürdig.

Wenn bestimmte Fehler Hallen-abhängig sind, dürfte es sinnvoll sein, die möglichen Kombinationen in einer Tabelle festzulegen. Dann würde das In(...) zu einem (hier jetzt fiktiv) In(SELECT Fehlernummer FROM derTabelle WHERE Halle = f.Halle) mutieren und kann generell für alle Hallen verwendet werden. Man hätte somit genau eine Abfrage für alle Charts. Hier sehe ich also Verbesserungspotential.

SELECT q.FE_DAGDat,
       Count( * ) AS AnzFehler
FROM   QRY_30N_KPI_1 AS q
WHERE  q.FE_Intern = False
GROUP  BY q.FE_DAGDat;
Auch hier ist die WHERE-Klausel überflüssig, weil die Abfrage ja keine Daten mit Internen Fehlern beinhaltet.

Bitte wieder testen und berichten.

PS: ein nicht vorhandenes Datum erzeugt diese Abfrage jedoch nicht.
Grüße von der (⌒▽⌒)
 

Offline dr779

  • Newbie
  • Beiträge: 14
Re: Datumsabfrage bei Charts
« Antwort #10 am: März 11, 2018, 18:17:14 »
Hallo Lachtaube,

die Abfrage funktioniert. Beide sehen vom Aufbau her deutlich besser aus als meine. Sind auch besser lesbar.
Man lernt nie aus.
Vielen Dank bis dahin.
Gruß
Klaus
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1248
Re: Datumsabfrage bei Charts
« Antwort #11 am: März 11, 2018, 18:32:35 »
Im nächsten Schritt benötigst Du dann eine Abfrage, die aus der Datumstabelle entsprechend der Formularparameter der ersten ersten Abfrage die Daten auswählt. Beides führst Du dann mit einem Left Join wie folgt zusammen.SELECT d.dasDatum,
       CLng( Nz( z.AnzFehler, 0 ) ) AS AnzFehler
FROM   DatumsTabelle AS d
       LEFT JOIN ZweiteAbfrage AS z
              ON d.dasDatum = z.FE_DAGDat
WHERE  d.dasDatum Between BETWEEN [Forms]![frm_auswertungen_berichte]![von1] AND
                                  [Forms]![frm_auswertungen_berichte]![datumbis];
Grüße von der (⌒▽⌒)
 
Folgende Mitglieder bedankten sich: dr779

Offline dr779

  • Newbie
  • Beiträge: 14
Re: Datumsabfrage bei Charts
« Antwort #12 am: März 11, 2018, 18:59:49 »
Hallo Lachtaube,

du trägst den Status Access-Guru zu recht.
Funktioniert alles Super. Deine Anregungen werde ich überdenken.
Vielen Herzlichen Dank für deine Unterstützung.
Gruß
Klaus