Forums Neueste Beiträge
 

Darstellung und Bearbeitung eines Dienstplanes

16/09/2008 - 12:19 von Jürgen Schulz | Report spam
Hallo NG

Ich bin dabei die Daten eines Dienstplanes für die Anzeige und der
Bearbeitung in einem Formular zusammen zustellen. In dem Formular sollen
(jeweils für einen Monat) folgende Daten dargestellt werden:
Anwesenheit(F/S/N/U/K/ etc) sowie ein Hinweis bei eventuell hinterlegten
Informationen für einen Tag und Mitarbeiter (so wie bei Excel das
Dreieck bei Info). Beim Klicken in ein Feld soll sich ein Commandbar
Popup zur Bearbeitung öffnen.

Ich verfolge derzeit folgendes Ziel: Zusammenstellen der Daten mit
Kreuztabellen, die Kreuztabellen für das Formular zusammenführen. Ich
habe mal meine bisherige Lösung zusammengestellt, vielleicht könnt Ihr
mal ein Blick drauf werfen...

Vielen Dank schon mal
Jürgen



Tabelle Dienstplan als Grundlage:

ID (PK) / Datum / MA (FK) / AW (FK) / Info (FK)

(MA= aus Tab. Mitarbeiter
AW= aus Tab. Anwesenheiten
Info= aus Tab. DienstplanInfo)

Als erstes eine Abfrage zum erstellen der Zeilenköpfe (abfDP_Monat):

SELECT Dienstplan.Datum, Format([datum],"dd") AS ZeilenKopf
FROM Dienstplan
GROUP BY Dienstplan.Datum, Format([datum],"dd")
HAVING (((Dienstplan.Datum)>=AktDatumBeginn() And
(Dienstplan.Datum)<=AktDatumEnde()));


Als nàchstes eine Kreuztabelle für die Anzeige der Anwesenheiten
(abfDP_AW):


TRANSFORM First(Anwesenheiten.Kurzzeichen) AS ErsterWertvonKurzzeichen
SELECT Dienstplan.MA
FROM abfDP_Monat LEFT JOIN (Dienstplan LEFT JOIN Anwesenheiten ON
Dienstplan.AW = Anwesenheiten.ID) ON abfDP_Monat.Datum Dienstplan.Datum
GROUP BY Dienstplan.MA
PIVOT "T" & [ZeilenKopf];


Eine weitere Kreuztabelle für die Infos (abfDP_Info):


TRANSFORM First(Dienstplan.Info) AS ErsterWertvonInfo
SELECT Dienstplan.MA
FROM abfDP_Monat LEFT JOIN Dienstplan ON abfDP_Monat.Datum Dienstplan.Datum
GROUP BY Dienstplan.MA
PIVOT "Info" & [ZeilenKopf];


Eine weitere Kreuztabelle für die IDs (abfDP_ID):


TRANSFORM First(Dienstplan.ID) AS ErsterWertvonID
SELECT Dienstplan.MA
FROM abfDP_Monat LEFT JOIN Dienstplan ON abfDP_Monat.Datum Dienstplan.Datum
GROUP BY Dienstplan.MA
PIVOT "ID" & [ZeilenKopf];



Und nun alles für die Anzeige zusammengefasst (abfDP_Gesamt):


SELECT abfDP_AW.*, abfDP_ID.*, abfDP_Info.*
FROM (abfDP_AW LEFT JOIN abfDP_ID ON abfDP_AW.MA = abfDP_ID.MA) LEFT
JOIN abfDP_Info ON abfDP_AW.MA = abfDP_Info.MA;


Die IDs sind im Formular nicht sichtbar. Diese sind nur dafür gedacht,
damit ich dierekt auf den jeweiligen Datensatz zugreifen kann.
 

Lesen sie die antworten

#1 Jens Schilling
16/09/2008 - 19:53 | Warnen spam
Hallo, Jürgen

Jürgen Schulz wrote:
Ich bin dabei die Daten eines Dienstplanes für die Anzeige und der
Bearbeitung in einem Formular zusammen zustellen. In dem Formular
sollen (jeweils für einen Monat) folgende Daten dargestellt werden:
Anwesenheit(F/S/N/U/K/ etc) sowie ein Hinweis bei eventuell
hinterlegten Informationen für einen Tag und Mitarbeiter (so wie bei
Excel das Dreieck bei Info). Beim Klicken in ein Feld soll sich ein
Commandbar Popup zur Bearbeitung öffnen.

Ich verfolge derzeit folgendes Ziel: Zusammenstellen der Daten mit
Kreuztabellen, die Kreuztabellen für das Formular zusammenführen. Ich
habe mal meine bisherige Lösung zusammengestellt, vielleicht könnt Ihr
mal ein Blick drauf werfen...



Du merkst es wohl schon an den (ausbleibenden) Reaktionen - irgend etwas
geht schief...

Ich denke, den meisten hier wird's gehen wie mir - bisschen viel trockener
(Lese-)Stoff ;-)

Kannst Du nicht einfach eine kleine DB erstellen, die enthàlt, worauf es Dir
ankommt, und diese zum Download anbieten ?
Dann kann man mal einen konkreten Blick darauf werfen, und sich eventuell
dann àussern.

Gruss
Jens

Ähnliche fragen