Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Mitarbeiterabfrage nach Datum sortiert





Frage

Ich habe eine Datenbank mit einem Feld von und einem Feld bis. Nun möchte ich wissen, wie ich es herausbekomme, welche Mitarbeiter in der Zeit von bis gearbeitet haben (nicht die Zeiten, sondern Beginn des Arbeitsverhältnisses und Ende) . Ich möchte es flexibel gestalten, da ich immer wieder andere Daten suche.

Antwort 1 von Teddy7

Meinst Du sowas :

von <= Suchvon and ( bis >= Suchbis or bis is null )

Gruß
Teddy

Antwort 2 von berta1

Hallo Teddy,

weiß nicht, ob ich sowas meine. So in etwa schon, aber habs mal so ausprobiert, aber hat nicht geklappt.

Versuche, es noch mal genauer zu erklären. Also ich habe eine Datenbank, in der ich Mitarbeiter mit Namen usw. habe. Außerdem habe ich eine Spalte (nennt man es eigentlich Spalte?) mit "von" bezeichnet, in der ich den Arbeitsbeginn mit dem Datum (Datum, kurz) eintrage. Dann habe ich noch eine Spalte mit "bis" und gebe auch dort das Datum ein. Nun möchte ich wissen, wer z. B. vom 01.02.2004-31.10.2004 Mitarbeiter war. Es sollen aber auch die mit aufgeführt werden, die z. B. seit dem 31.01.2004-30.09.2004 Mitarbeiter waren. Ich weiß nicht, wie ich in der Abfrage die Kriterien eingeben muss. Ich möchte es auch flexibel haben, da ich immer wieder verschiedene Abfrage diesbezüglich habe. Vielleicht habe ich mich jetzt etwas besser ausgedrückt und man kann es verstehen, wo mein Problem ist. Wäre schön, wenn mir jemand helfen könnte.

Vielen Dank, berta1

Antwort 3 von Teddy7

Mal sehen:

Beispiel:
Hugo Maier von 01.01.2003 bis 30.04.2004
Sepp Maier von 01.05.2003 bis (=Null, weil noch nicht zu ende)

Suchkriterium:
Suchvon 01.01.2004
Suchbis 31.12.2004

Eingabe in der Abfrage als Kriterium:
von <= Suchbis and ( bis >= Suchvon or bis is null )


Also bei Hugo: 01.01.2003 <= 31.12.2004 erfüllt
und 30.04.2004 >= 01.01.2004 erfüllt

bei Sepp: 01.05.2003 <= 31.12.2004 erfüllt
und bis ist Null erfüllt

Gruß
Teddy

Antwort 4 von berta1

Hallo,

vom Prinzip meine ich es so. Aber ich möchte nicht immer in der Abfrage (arbeiten mehrere Leute mit) die Kriterien ändern sondern ich würde gerne eine Parameterabfrage machen.
Außerdem möchte ich, um mit dem Beispiel weiterzumachen, nicht noch jemanden angezeigt haben, der z. B. vom 31.12.2002-31.12.2003 da war. Wie mache ich solch eine Paraeterabfrage?
Gruß

Antwort 5 von Teddy7

Wie meistens gibt es mehrere Möglichkeiten.
Ich mache das i.d.R. so, daß ich ein Selektionsformular habe, auf dem ich die Kriterien in ungebundene Felder eingeben kann.
Dann rufe ich daraus (nach Klick auf einen Button) ein Endlosformular oder einen Bericht auf.
Ich gebe dabei die Selektionskriterien mit. Dadurch wird automatisch die Datenquelle des Formulars/Berichts entsprechend eingeschränkt.
Das kann dann im klick-Ereignis des Buttons so aussehen:
dim suche as string
suche = "von <= " & Suchbis & " and ( bis >= " & Suchvon & " or bis is null )"
DoCmd.OpenForm "FrmÜbersicht", acNormal, , suche, acFormReadOnly


Möglicherweise muß man dazu noch das Datum in eine spezielle Form bringen - ich kann das hier im Moment nicht testen. Das würde dann so aussehen:
dim suche as string
suche = "von <= " & Format(Suchbis, "\#yyyy\-mm\-dd\#") & " and ( bis >= " & Format(SuchVon, "\#yyyy\-mm\-dd\#") & " or bis is null )"
DoCmd.OpenForm "FrmÜbersicht", acNormal, , suche, acFormReadOnly
///////////////////
Wenn Du in Suchevon wie in meinem Beispiel den 01.01.2004 eingibst, dann wirst Du mit dieser Abfrage keinen bekommen, der am 31.12.2003 ausgeschieden ist, weil ja bis NICHT >= Suchvon ist
////////////////////
Gruß
Teddy

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: