MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 21.01.2008, 11:53   #1
SwenATwork
MOF User
MOF User
Standard Acc2002/XP - Ins Diagramm alle Monate!

Hallo an alle,

ich habe meine Bestellungen pro Monat in ein Bericht gesteckt! siehe Datei!

Ich möchte gerne aber alle Monat und wenn noch keine Werte da sind dann möchte ich vorerst bei Feb. bis Dez 0 drinstehen haben!

geht das wenn ja wie?


ps meine abfrage lautet wie folgt!

SELECT (Format([BESTN_DATE],"mmm")) AS Ausdr1, Count(qryDia_BEST_Woche_Hersteller.BESTN_IDnew) AS AnzahlVonBESTN_IDnew FROM qryDia_BEST_Woche_Hersteller GROUP BY (Format([BESTN_DATE],"mmm")), (Year([BESTN_DATE])*12+Month([BESTN_DATE])-1), qryDia_BEST_Woche_Hersteller.FIRMA_NAME HAVING (((qryDia_BEST_Woche_Hersteller.FIRMA_NAME)="Feinmetall GmbH")) ORDER BY

gruß
swen
SwenATwork ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 23.01.2008, 18:07   #2
SwenATwork
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo an alle,

hier habe ich das gleich Problem nochmal gefunden verstehe die antwort aber leider nicht kann mir evtl. jemand von euch helfen?

http://www.ms-office-forum.net/forum...Monate+sonst+0

gruß
swen
SwenATwork ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 23.01.2008, 19:03   #3
lalo
MOF Koryphäe
MOF Koryphäe
Standard

Hallo,
stell doch erst mal wie im Post #1 angekündigt die Datei ins Forum. Vielleicht kann man dann weiterhelfen.

__________________

Gruß Bernd
lalo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 24.01.2008, 14:39   #4
SwenATwork
Threadstarter Threadstarter
MOF User
MOF User
Standard DAtei

Moin,

hier eine stück aus meiner Date!

gruß
swen
Angehängte Dateien
Dateityp: zip DatenBericht.zip (130,7 KB, 12x aufgerufen)
SwenATwork ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.01.2008, 19:00   #5
lalo
MOF Koryphäe
MOF Koryphäe
Standard

Hallo,

wie sollen die Daten angeordnet sein
- die Monate Horizontal (also eine Kreuztabellenabfrage)
oder
- je Monat eine Zeile auch wenn wert = 0

__________________

Gruß Bernd
lalo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.01.2008, 22:58   #6
SwenATwork
Threadstarter Threadstarter
MOF User
MOF User
Standard Wie???

Hallo Bernd,

ich verstehe deine Frage nicht?

Ich habe doch in der Datei 2 Berichte rein getan und bei diesen würde ich mir wünschen das vom aktuellen Jahr alle Monate oder alle Kakenderwochen angezeigt werden.

Da wir erst in Woche 4 und im Jan sind würde ich mir wünschen das die X-Achse aber schonmal die folgenden Monate / Kalenderwoche anzeigt und als wert auf der Y Achse dann 0 hat!

Gruß
swen
SwenATwork ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 26.01.2008, 15:39   #7
lalo
MOF Koryphäe
MOF Koryphäe
Standard

Hallo,

Um in einer Kreuztabellenabfrage auch Spalten für einen Zeitraum zu haben in dem keine Werte vorliegen schafft man "Fixe Spalten".

Hier einige Codeschnippsel zu deren Generierung:

1. generieren des Teiles "Pivot.." der Abfrage:
Code:

Dim FormatStr as String
...
FormatStr = " Pivot format(datum_ist, " & FormatArr(Periode) & ") in (" & GenFixedCols(Datum_Von, Datum_bis, Periode) & ")"
Hier die Funktion GenFixedcols, sieht als Periode Monat, Quartal und Jahr vor:

Code:

Public Function GenFixedCols(datStart As Date, datEnde As Date, Periode As Integer) As String

Dim MonthArr
Dim QuartArr
Dim i As Integer
Dim OutString As String
Dim Quartal As Single

MonthArr = Array("Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez")
QuartArr = Array(" ", "1", "2", "3", "4")
datEnde = datEnde - Day(datEnde) + 1
i = 0

Select Case Periode
    Case 1      '--- Monat
        Do Until datStart > datEnde
            OutString = OutString & """" & MonthArr(Month(datStart) - 1) & " " & Year(datStart) & """" & ","
            datStart = DateAdd("m", 1, datStart)
        Loop
    Case 2      '--- Quartal
        Do Until datStart > datEnde
                Quartal = Round((Month(datStart) / 3) + 0.2)
            OutString = OutString & """" & QuartArr(Quartal) & " " & Year(datStart) & """" & ","
            datStart = DateAdd("m", 3, datStart)
        Loop
    Case 3      '--- Jahr
        Do Until datStart > datEnde
                Quartal = Round((Month(datStart) / 3) + 0.2)
            OutString = OutString & """" & Year(datStart) & """" & ","
            datStart = DateAdd("yyyy", 1, datStart)
        Loop
End Select
    GenFixedCols = Left(OutString, Len(OutString) - 1)
End Function
Und hier das Ergebnis das dann an die zuvor generierte Abfrage angehängt wird (Datum von Jan 2006, Datum-bis Dec 2006, Periode Monat)

Pivot format(datum_ist, "mmm yyyy") in ("Jan 2006","Feb 2006","Mrz 2006","Apr 2006","Mai 2006","Jun 2006","Jul 2006","Aug 2006","Sep 2006","Okt 2006","Nov 2006","Dez 2006")

So sieht eine meiner dyn. generierten Abfragen so aus:
Code:

TRANSFORM cdbl(nz(Count(RCA_ID),0)) SELECT MA_Bez FROM
 [SELECT distinct RCA.RCA_ID, RCA.Datum_Ist, MA_Bez FROM (((((RCA LEFT
 JOIN AUFART ON RCA.AufArt=AUFART.AufArt_ID) LEFT JOIN KPI ON 
RCA.KPI=KPI.KPI_ID) LEFT JOIN ANLAGE ON 
RCA.Anlage=ANLAGE.ANLAGE_ID) LEFT JOIN ProcessStep ON 
RCA.Process_Step=ProcessStep.ProcessStep_ID) INNER JOIN 
RCA_MERKMAL_AUSPR ON RCA.RCA_ID=RCA_MERKMAL_AUSPR.RCA_ID) 
LEFT JOIN View_MA ON (RCA_MERKMAL_AUSPR.Auspraegung_ID=View_MA.Auspraegung_ID) AND 
(RCA_MERKMAL_AUSPR.Merkmal_ID=View_MA.Merkmal_ID) ]. AS [SubSel] 
Group by MA_Bez Pivot format(datum_ist, "mmm yyyy") in ("Jan 
2006","Feb 2006","Mrz 2006","Apr 2006","Mai 2006","Jun 2006","Jul 
2006","Aug 2006","Sep 2006","Okt 2006","Nov 2006","Dez 
2006")

__________________

Gruß Bernd
lalo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 28.01.2008, 06:02   #8
SwenATwork
Threadstarter Threadstarter
MOF User
MOF User
Standard noch nicht verstanden!

Hallo lalo,

vielen Dank, ich experimentiere mit deiner Antwort jetzt seit gestern 10.00h rum!

Verstehe es aber leider noch nicht kannst du mir evtl. deine Lösung in meine Beispiel datei in diesem Thread einfügen und diese dann hoch posten, evtl. hilft mir das um die Lösung zuverstehen!

Hauptsächlich verstehe ich gerade nicht was du mit

1. generieren des Teiles "Pivot.." der Abfrage:

meinst!

Ganz verstanden wie ich es dann mit der Woche handhabe habe ich auch noch keinen schimmer, das liegt aber whrscheinlich da dran das ich die grund idee noch nicht verstanden habe!

vielen Dank! Hoffe sehr das du mir weiter auf die sprünge hilfst :-)

gruß
swen
SwenATwork ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 28.01.2008, 11:18   #9
lalo
MOF Koryphäe
MOF Koryphäe
Standard

Hallo,

zum besseren Verständnis:
In einer Kreuztabellenabfrage kann man erzwingen, dass die Daten in fix definierte Spalten eingefügt werden, also auch Spalten definieren, für die eventuell keine Werte vorkommen. Das geht so, weiteres siehe OH:
....PIVOT Pivot-Feld [IN (Wert1[, Wert2[, ...]])]
wobei Wert1, Wert2 uns. die Spaltenüberschriften sind.

Hier die erläuterung zu Punkt 1:

In dem Beispiel wird der gesamte SQL-String dynamisch aufgebaut, also aus den Werten der Eingabe-Form. Dabei gibt es auch die Auswahl ob die Auswertung (letztlich ein Diagramm) nach Monaten, Quartalen oder Jahren erfolgen soll (Radiobuttons mit den Werten 1 (für Monat), 2 (für Quartal), 3 (für Jahr)
....
FormatArr = Array(" ", """mmm yyyy""", """q yyyy""", """yyyy""")

'------------------------------
' Pivot - Format - In aufbauen aufbauen
'-----------------------------
FormatStr = " Pivot format(datum_ist, " & FormatArr(Periode) & ") in (" & GenFixedCols(Datum_Von, Datum_bis, Periode) & ")"

rot: an diese Stelle kommt bei Auswahl Monat (Wert 1 des Radiobuttons = Index für FormatArr) dann "mmm yyyy". Damit wird das Datum in Monat und Jahr formatiert.
Um nun die Werte in die fixen Spaltenzu befördern wird in angegeben. In meinem Beispiel brauche ich die Spaltenüberschriften für Jan - Dez 2006 und diese werden mit der Funktion GenFixedCols erzeugt.
Die Funktion bekommt Datum von - bis (im Besisoiel 1.1. 2006 bis 31.12.2006) und ob es sich um Monats, Quartals oder Jahresspalten (im Beispiel 1 = Monat) handeln soll.

Um die Spalten für KW zu bekommen müsstest Du die Funktion entsprechend ändern / erweitern.

Und anschließend wird der gesamte SQL-String aus Einzelstrings zusammengebaut:
GenSql = SqlString1 & GroupByStr & SqlString2 & GroupByStr & SqlString3 & WhereStr & " ]. AS [SubSel] Group by " & GroupByStr & FormatStr.
dabei ist der "FormatStr" der im Beispiel vom 26.01. fett gedruckte:

....Pivot format(datum_ist, "mmm yyyy") in ("Jan
2006","Feb 2006","Mrz 2006","Apr 2006","Mai 2006","Jun 2006","Jul
2006","Aug 2006","Sep 2006","Okt 2006","Nov 2006","Dez
2006")

__________________

Gruß Bernd
lalo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 28.01.2008, 19:53   #10
SwenATwork
Threadstarter Threadstarter
MOF User
MOF User
Standard Aber wo soll ich den was rein tun?

Aber wo tue ich den dieses hin?

FormatArr = Array(" ", """mmm yyyy""", """q yyyy""", """yyyy""")

'------------------------------
' Pivot - Format - In aufbauen aufbauen
'-----------------------------
FormatStr = " Pivot format(datum_ist, " & FormatArr(Periode) & ") in (" & GenFixedCols(Datum_Von, Datum_bis, Periode) & ")"

in das Diagramm?

gruß
swen
SwenATwork ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 29.01.2008, 14:12   #11
lalo
MOF Koryphäe
MOF Koryphäe
Standard

Hallo,
ich habe das Diagramm mal neu "geschrieben".

1. Anwahlform
Hier muss der Zeitraum (Datum von - bis) angegeben werden.
Es wird der SQL-String (die Abfrage) erzeugt aufgrund dessen das Diagramm erstellt wird.

Hier wurde noch eine Selektion, nach dem Zeitraum der dargestellt werden soll, aufgenommen sowie alle Kalenderwochen die in den Zeitruam fallen als fixe Spalten, so dass auch KaWo ohne Daten erscheinen.

Die fixen Spalten werden mit der Funktion "GenKawo" erzeugt, siehe Code.

Sie wird nicht unter "Abfragen" gespeichert sondern als Openargs an die Form zum Anzeigen des Diagramms mitgegeben (siehe Code).

2. Das Modul1 ist noch um die Funkton DatumSQL ergänzt worden. Damit werden SQLl-konforme Dateumsangaben erzeugt.

3. Diagramm
Ausgabe erfolgt in der Form frmDiagramm, Umstellung auf Report sollte problemlos sein.
Angehängte Dateien
Dateityp: zip DatenBerichtNEU.mdb.zip (75,3 KB, 36x aufgerufen)

__________________

Gruß Bernd
lalo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.10.2008, 14:50   #12
SwenATwork
Threadstarter Threadstarter
MOF User
MOF User
Standard danke

danke das funtzt super!
SwenATwork ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:50 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.