collapse

* Benutzer Info

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

* Wer ist Online

  • Punkt Gäste: 58
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 1

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14072
  • stats Beiträge insgesamt: 67582
  • stats Themen insgesamt: 9104
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Dynamischen Bericht erstellen  (Gelesen 7576 mal)

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1892
Re: Dynamischen Bericht erstellen
« Antwort #30 am: Dezember 11, 2017, 15:28:45 »
Hallo Jagger,
Sorry, da fehlt die Angabe des aggregierten Feldes
PIVOT qry_Kalender_Wochenübersicht_mt_Kollektionen_01.tAGKDNR IN (SELECT DISTINCT [Kollkürzel] FROM tab_ex_Lieferanten)So ganz nebenbei, lesbarer wird es durch die Verwendung
von Alias-Namen für Tabellen/Abfragen.
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline jagger

  • Newbie
  • Beiträge: 42
Re: Dynamischen Bericht erstellen
« Antwort #31 am: Dezember 11, 2017, 16:14:41 »
Hallo Ekkehard,

erst einmal Danke!
Jetzt meckert Access nicht mehr, aber jetzt erhalte ich als Spaltenname:
"SELECT [Kollkürzel] FROM tab_ex_Lieferanten"
PARAMETERS [Formulare]![frm_Kalender]![WJ] Text ( 255 ), [Formulare]![frm_Kalender]![tfldDatum] Text ( 255 );
TRANSFORM Count(qry_Kalender_Wochenübersicht_mit_Kollektionen_01.tAGKDNR) AS AnzahlvontAGKDNR
SELECT IIf([Stunden]="iLdT","iLdT",[Stunden] & ":00") AS h
FROM tab_int_Stunden_Kalender LEFT JOIN qry_Kalender_Wochenübersicht_mit_Kollektionen_01 ON tab_int_Stunden_Kalender.Stunden = qry_Kalender_Wochenübersicht_mit_Kollektionen_01.Stundenkey
GROUP BY tab_int_Stunden_Kalender.Sortierung, IIf([Stunden]="iLdT","iLdT",[Stunden] & ":00")
ORDER BY tab_int_Stunden_Kalender.Sortierung
PIVOT qry_Kalender_Wochenübersicht_mit_Kollektionen_01.tAGKDNR IN (SELECT [Kollkürzel] FROM tab_ex_Lieferanten);

Was mache ich hier falsch?
LG
jagger
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1340
Re: Dynamischen Bericht erstellen
« Antwort #32 am: Dezember 11, 2017, 16:29:43 »
AFAIK kann in einer IN-Klausel einer Pivot-Anweisung keine Abfrage verwendet werden.
Grüße von der (⌒▽⌒)
 

Offline jagger

  • Newbie
  • Beiträge: 42
Re: Dynamischen Bericht erstellen
« Antwort #33 am: Dezember 11, 2017, 17:06:09 »
AFAIK kann in einer IN-Klausel einer Pivot-Anweisung keine Abfrage verwendet werden.

...das wäre ja nicht schön.  :o
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1892
Re: Dynamischen Bericht erstellen
« Antwort #34 am: Dezember 11, 2017, 17:41:04 »
O.K., hab's nicht getestet; dachte jedoch das schon mal verwendet zu
haben. Wahrscheinlich irgendwas verwechselt.  :-[
Dann eben doch mit einer Function (Luftcode)
Public Function GetKollKuerzel() As String
    Dim sResult As String
    Dim rs as DAO.Recordset

    Set rs = CurrentDb.OpenRecordset _
                         "SELECT DISTINCT[Kollkürzel] " _
                      & "FROM tab_ex_Lieferanten"
    With rs
        Do While Not .EOF
            sResult = sResult & """" & .[Kollkürzel] & ""","
            .MoveNext
        Loop
    End With

    'letztes Komma abschneiden
    sResult = Mid(sResult,1,Len(sResult)-1)
    GetKollKuerzel = sResult

rs.Close
Set rs = Nothing

End Function
In der Abfrage dann
PIVOT qry_Kalender_Wochenübersicht_mit_Kollektionen_01.tAGKDNR IN (GetKollKuerzel())gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 
Folgende Mitglieder bedankten sich: jagger

Offline jagger

  • Newbie
  • Beiträge: 42
Re: Dynamischen Bericht erstellen
« Antwort #35 am: Dezember 11, 2017, 19:46:34 »
"...    Set rs = CurrentDb.OpenRecordset _
                         "SELECT DISTINCT[Kollkürzel] " _
                      & "FROM tab_ex_Lieferanten"
   ..."
da fehlt ein &?
"...    Set rs = CurrentDb.OpenRecordset _
                      & "SELECT DISTINCT[Kollkürzel] " _
                      & "FROM tab_ex_Lieferanten"
   ..."

Wenn ich die Abfrage aufrufe bekomme ich die Fehlermeldung
"Fehlendes Element, ) oder ] in Abfrageausdruck 'qry_Kalender_Wochenübersicht_mit Kollektionen_01.tAGKDNR IN (GetKollKuerzel()'."
PARAMETERS [Formulare]![frm_Kalender]![WJ] Text ( 255 );
SELECT [qry_Kalender_Stunden_aus_Termine].[tDate], [qry_Kalender_Stunden_aus_Termine].[Stundenkey], [qry_Kalender_Stunden_aus_Termine].[tAGKDNR], tab_ex_Lieferanten.Kollkürzel, tab_ex_Lieferanten.Sortierung
FROM tab_ex_Lieferanten LEFT JOIN qry_Kalender_Stunden_aus_Termine ON tab_ex_Lieferanten.code = qry_Kalender_Stunden_aus_Termine.tKollektionsCode
WHERE (((tab_ex_Lieferanten.[anzeigen Kalender])=True))
ORDER BY tab_ex_Lieferanten.Sortierung;
... Wo könnte hier noch eine ) oder ] fehlen?

Danke!
LG
jagger
« Letzte Änderung: Dezember 11, 2017, 20:16:44 von jagger »
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1340
Re: Dynamischen Bericht erstellen
« Antwort #36 am: Dezember 11, 2017, 20:46:05 »
Die Funktion wird AFAIK in der Pivot-Anweisung auch nicht funktionieren. Man kann allerhöchstens den Sermon aus der Funktion in den Abfragetext schreiben, was ich als unschön empfinde, aber machbar ist.

So, und nun beschreibe bitte einmal genau, wie die Abfrage aussehen soll (und am besten einige Beispiel-Datensätze in Textform mitliefern, damit man sich die Daten nicht aus den Fingern saugen muss).
Grüße von der (⌒▽⌒)
 

Offline jagger

  • Newbie
  • Beiträge: 42
Re: Dynamischen Bericht erstellen
« Antwort #37 am: Dezember 12, 2017, 14:46:32 »
Hallo Lachtaube,

erst einmal vielen Dank im Voraus für die angebotene Hilfe.
Die Datenbank und auch der Kalender ist für Modeagenturen, die mit Kunden/Einzelhändlern Termine vereinbaren.

Der Kalender (frm_Kalender) zeigt auf der linken Seite wie viele Termine
am jeweiligen Tag (vom 20. bis 26.11.17 gibt es Fake Termine) in der jeweiligen Stunde vergeben sind (iLdT = im Laufe des Tages). So hat man beim weiteren Terminieren schnell einen Überblick, wo noch Platz für einen weiteren Termin ist. Klickt man in eine Spalte, so werden auf der rechten Seite die dazugehörigen Kunden angezeigt. (Kalender01.jpg)

Manche meiner Kollegen möchten allerdings auch noch sehen,
für welche Kollektionen schon Termine vergeben sind.
dazu wollte ich das Formular(frm_Kalender_Uebersicht_Tag_Kollektionen) verwenden. (Kalender02.jpg)

Im Kopbereich über den Spalten kann man jeweils auswählen welche Kollektion (Kollkürzel) angezeigt werden soll. Da ja nun jede Modeagentur andere Kollektionen hat muss diese Sache dynamisch sein.
Mehr als 7 oder 8 Kollektionen/Spalten werden nicht benötigt.
Im LieferantenSetup (hier nicht in der Beispieldatenbank) kann man seine Kollektionen festlegen (Name, Kollkürzel und für jede Kollektion mit dem Colorpicker eine Farbe). Deswegen hier auch der Einsatz eines Formulars (Formatierung).
Wenn man auf der linken Seite in eine Spalte klickt, soll rechts der dazugehörige Tag angezeigt werden (Ist hier noch nicht synchronisiert).
Leider legt Access hier eben eine Hürde in den Weg.
Das Formulau funktioniert und kommt auch ohne fixierte Spaltennamen aus. Nur eben leider nicht, wenn man es als Ufo einbindet.

Ich hoffe, man kann nachvollziehen, was ich erreichen will und wie die Abfrage bzw. deren Ergebis aussehen soll.
So jetzt muss ich nur noch die Beispieldatenbank auf unter 1000KB schrumpfen. Ich melde mich dann später noch einmal.

Mit unheimlich netten Grüßen
jagger
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1892
Re: Dynamischen Bericht erstellen
« Antwort #38 am: Dezember 12, 2017, 17:40:41 »
Hallo Jagger,
Zitat
da fehlt ein &?
Nö, das ist ja der Anfang des Strings.
Zitat
Wenn ich die Abfrage aufrufe bekomme ich die Fehlermeldung
"Fehlendes Element
Vergleiche (zähle die Klammern)
PIVOT qry_Kalender_Wochenübersicht_mit_Kollektionen_01.tAGKDNR IN (GetKollKuerzel())mit
Zitat
'qry_Kalender_Wochenübersicht_mit Kollektionen_01.tAGKDNR IN (GetKollKuerzel()'

@Lachtaube
Zitat
Die Funktion wird AFAIK in der Pivot-Anweisung auch nicht funktionieren.
Nun gut, getestet habe ich es nicht. Zum Einen weil keine DB vorliegt,
die die relevanten Tabellen/Abfragen enthält (oder hab ich die übersehen),
und zum Anderen war ich zu faul ein eigenes Beispiel zu basteln  :-[.
Falls das so ist wie du sagst, muss ich hier dann aussteigen.

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline jagger

  • Newbie
  • Beiträge: 42
Re: Dynamischen Bericht erstellen
« Antwort #39 am: Dezember 12, 2017, 18:52:34 »
Hallo Ekkehard,

Zitat
Nö, das ist ja der Anfang des Strings.
Wenn ich Deinen Code so reinkopiere (also ohne &) wird der Bereich rot angezeigt.
Zitat
Vergleiche (zähle die Klammern)
Im Programm hatte ich das schon richtig eingetragen.

Aber trotzdem, vielen Dank für Deine Bemühungen.

LG
jagger
 

Offline jagger

  • Newbie
  • Beiträge: 42
Re: Dynamischen Bericht erstellen
« Antwort #40 am: Dezember 12, 2017, 19:50:41 »
...oh, ich sehe gerade, man kann hier gar keine zip.dateien anhängen.  :(
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1340
Re: Dynamischen Bericht erstellen
« Antwort #41 am: Dezember 12, 2017, 19:58:54 »
Natürlich lassen sich hier hier im Forum auch Zip-Archive hochladen.
Grüße von der (⌒▽⌒)
 

Offline jagger

  • Newbie
  • Beiträge: 42
Re: Dynamischen Bericht erstellen
« Antwort #42 am: Dezember 13, 2017, 10:23:19 »
OMG,
Wald, Bäume,...

also hier das Zip-Archiv. In der Kalender_Extr.mdb (Acc.2003)
sind alle Tabellen, Abfragen,... , die mit dem Kalender zu tun haben.
Mit frm_Kalender geht es los. Dann zum Datum 20.11. bis 26.11.17 navigieren.

Vielleicht gibt es ja eine Lösung für das Problem. Die Frage taucht ja oft auf.

LG
jagger
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1340
Re: Dynamischen Bericht erstellen
« Antwort #43 am: Dezember 13, 2017, 11:53:25 »
Hi Jagger,

oweia, oweia!!! :-[

Die Tabellen gehören dringend in eine gute Normalisierungswerkstatt.

Ansonsten lässt sich das Beispiel auch nicht wie angesagt starten, weil Formularbezüge aus den Abfragen fehlen. :(
Grüße von der (⌒▽⌒)
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1892
Re: Dynamischen Bericht erstellen
« Antwort #44 am: Dezember 13, 2017, 12:09:32 »
Zitat
Wenn ich Deinen Code so reinkopiere (also ohne &) wird der Bereich rot angezeigt.
Sorry, da fehlt ein Leerzeichen hinter DISTINCT.
Wenn da Luftcode drübersteht sollte man den Code auch schon mal selber
auf solche Fehler überprüfen (können).
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 
Folgende Mitglieder bedankten sich: jagger