Neuigkeiten:

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

Mobiles Hauptmenü

zählen über mehrere Tabellen

Begonnen von PePan, Juni 09, 2014, 14:37:27

⏪ vorheriges - nächstes ⏩

PePan

Hallo zusammen,
ich habe 12 Tabellen, Januar bis Dezember, in denen ich den Urlaub, Krank usw. der Kollegen eintrage. Jede Tabelle beinhaltet die Pers.Nr als Primärschlüssel.
Jetzt würde ich gerne alle eingetragenen  "u"  für Urlaub über das ganze Jahr je PersNr. zählen.
Ich habe kein Ahnung wie ich das hinbekomme.
Kann mir jemand helfen?

Gruss
PePan

MzKlMu

Hallo,
das erste Problem sind die 12 Tabellen. Das gehört alles in eine Tabelle. Da Du ohnehin die PersNr als PS hast, verstehe ich sowieso nicht warum Du da 12 Tabellen verwenden willst. Das nächste Jahr hat ja auch wieder 12 Monate, machst du dann eine neue DB?

Trage in einer Tabelle das Datum, die PersNr als Fremdschlüssel und die Art der Abwesenheit ein, dann kannst du auch problemlos zählen. Auch eine monatsweise Darstellung ist dann möglich. Das Datum reicht zur Ermittlung des Jahres bzw., des Monats.
Gruß Klaus

PePan

Hallo MzKlMu,
danke für die Antwort, aber ich habe nunmal mit den 12 Tabellen gestartet und würde wenn das Jahr zuende ist, alle einträge löschen und neu starten. So habe ich das ganze Jahr je Kollege in der Ansicht.
Aber wie kann ich die "u" zählen?

Gruss
PePan

MzKlMu

Hallo,
sorry, aber die Aufteilung auf 12 Tabellen ist datentechnischer Unsinn, das Dir nur Probleme macht.
Du musst bei deiner Version erst mit einer Unionabfrage aus den 12 Tabellen eine machen, dann kannst Du zählen. Warum dann nicht gleich eine Tabelle?

Access ist kein Excel und eine Datenbank erfordert zur Auswertung einen korrekten Aufbau. Dein Aufbau verstößt bereits gegen die 1.Normalform.


ZitatSo habe ich das ganze Jahr je Kollege in der Ansicht.
das kannst Du auch mit einer Tabelle.

Baue die DB um, alles andere bereitet Dir nur Probleme.
Gruß Klaus

ebs17

ZitatJetzt würde ich gerne alle eingetragenen  "u"  für Urlaub über das ganze Jahr je PersNr. zählen.
Ich habe kein Ahnung wie ich das hinbekomme.
Wie würde man das denn per Hand machen?
Programmierung geht genau so: Gesunder Menschenverstand => Plan => Umsetzung per Anweisungen
SELECT Count(*) AS U_Anzahl
FROM TabelleX
WHERE FeldY = "u"
GROUP BY PersNr

Bei vernünftigerweise einer Tabelle wärst Du jetzt fertig.
Mit freundlichem Glück Auf!

Eberhard

MzKlMu

Hallo,
nur damit keine Missverständnisse aufkommen, der Vorschlag von Eberhard bezieht sich auf eine Tabelle. Wollte es nur noch mal explizit erwähnt haben.
Gruß Klaus

PePan

Hallo zusammen,
anscheinend habe ich ein Brett vor dem Kopf.
Natürlich habe ich beim Start der Db mit einer Tabelle begonnen und kam aber schnelle an die Grenze von 255 Felder. Das Jahr hat aber mehr. So ging ich hin und legte für jeden Monat eine Tabelle mit 31 Tagen an.
Wer kann das Brett entfernen? :-\

ebs17

In einer Datenbank arbeitet man zeilenorientiert, also jeder Tag ein neuer Datensatz. Eine Datenbanktabelle kann sehr viele Datensätze aufnehmen - Begrenzung alleine durch DB-Größe, bei MDB/ACCDB 2 GigaByte.

Übrigens ist eine Tabelle zum Speichern für Informationen da, nicht zum Angucken für einen User.
Mit freundlichem Glück Auf!

Eberhard

MzKlMu

Hallo,
Du benötigst in der einfachsten Form eine Tabelle mit 4 Feldern. Mehr braucht es nicht.

- Autowert (Primärschlüssel)
- PersNr (Fremdschlüssel)
- Datum
- Abwesenheitsart (u, k, etc.)

Die Tabelle wird einfach endlos fortgeführt, bis zum St.Nimmerleinstag.
Auf diese Tabelle kannst Du die Abfrage wie von Eberhard vorgeschlagen direkt verwenden. Du musst nur noch das Jahr filtern.

Idealerweise legt man für die Abwesenheitsart auch noch eine Tabelle an und verwendet nicht den Buchstaben, sondern die Schlüsselzahl (=Fremdschlüssel).
Gruß Klaus

PePan

#9
Hallo zusammen,
ich hänge euch mal den Versuch der Db als Datei an.
Ich  finde keinen anderen Weg.

MzKlMu

Hallo,
was hast Du den an meiner Tabellenbeschreibung mit den 4 Feldern nicht verstanden?

Ich habe leider kein Access2010.
Entweder konvertieren (Datei > veröffentlichen > Access2003),
oder warten bis jemand anders schaut.
Gruß Klaus

PePan

Hallo MzKlMu,

hier mal ne Hardcopy, das mit dem konvertieren funktioniert nicht wegen einer Sortierung???
Ich bräuchte doch eine Tabelle, die das ganze Jahr darstellt oder?

MzKlMu

Hallo,
nimm die vorgeschlagene Tabelle, die Darstellung ist ein ganz anderer Punkt.
Mit einer Tabelle kannst Du auch die Datenerfassung viel einfacher machen.
> Person wählen > Datum eintragen > Abwesenheitsart wählen

Mit Kreuztabellenabfragen lässt sich dann auch eine andere Darstellung erreichen.

So wie das Formular jetzt ist, kannst Du es nicht verwenden.
Gruß Klaus