# Suchbarer Datumsbereich in Access



## Volker1976 (20. September 2007)

Hi,

Also ich soll hier in einem Praktikum mit Access eine Datenbank erstellen. Dabei tauchen Datumsangaben über einen Zeitraum hinweg auf.

Also Datensatz 1 hat beim Datum stehen 1986 - 1988.

Ist es möglich, dass so zu erstellen, das ich, wenn ich nach 1987 "suche", er mir auch diesen Datensatz angibt ?

Und es ist doch richtig das ich die beiden Jahreszahlen in 2 Feldern schreiben muss oder ?


----------



## larryson (20. September 2007)

Das ist ein etwas kompliziertes Problem.

Auf jeden Fall musst Du mindestens Anfang und Ende des Zeitraumes in zwei Spalten führen.

Im jetzt eine Zeit dazwischen zu finden, müsstest Du Dir eine temporäre Tabelle erstellen lassen, die alle Zeiträume 'dazwischen" abbildet, also 1986;1987;1988.
Und dann hast Du Deinen DS. 

So mach ich das in solchen Fällen, für eine einfachere Lösung wäre aber auch ich dankbar.


----------



## Volker1976 (20. September 2007)

puh ok... und diese tabelle kann ich mir automatisch erstellen lassen oder wie ?


----------



## larryson (20. September 2007)

An sich schon, das komplizierte ist, sie anlegen zu lassen.

Ich mach so was mit VBA und Recordsets, um nur zwei Stichworte zu nennen. 

Aus der Praxis: Eine Abwesenheitserfassung, ich gebe eine Zeitraum ein, in dem der Mitarbeiter fehlt (Urlaub, Krank, etc) Diesen Zeitraum überprüfe ich auf Wochenenden und Feiertage und lasse mir für jeden Tag den entsprechenden DS schreiben (also keine temporäre Tabelle).
Anderes Beispiel, ein kleine Lagerverwaltung, hier werden nur Buchungen (Zu- und Abgänge) erfasst. Da ich aber wissen muss, wieviel Bestand an jedem Tag da ist (Lagermiete!), fülle ich eine temp. Tabelle mit jedem Datum im entsprechendem Zeitraum und den entsprechenden Buchungen. Die Alternative dazu wäre, jeden Tag die Zugänge/Abgänge unter dem Tagesdatum zu erfassen. Dabei wurde regelmäßig das Wochenende vergessen.


----------



## RavelinePower (20. September 2007)

Hy Leute

Also es gibt was ganz ganz einfaches.

Ohne irgendwelche Temp datein VBA VBS und hick hack, zeuch.

Dein Problem:

Du hast in 1 Spalte folgende Angaben: 

Also Datensatz 1 hat beim Datum stehen 1986 - 1988.

Macht nichts.....
Erstelle eine Abfrage die logischerweise die Daten von deiner Tabelle hat.

Folgendes zu machen währe bei dem DS beim Datum einmal das linke und einmal das rechte herraus zu filtern.

Funktionen in Abfragen siehe unten. 

LINKS oder RECHTS
Diese Funktion liefert das erste Zeichen oder die ersten Zeichen in einer Textzeichenfolge.

Syntax

LINKS(Text;Anzahl_Zeichen)

Text   ist die Zeichenfolge, die die Zeichen umfasst, die Du herauskopieren möchtest.

Anzahl_Zeichen   gibt an, wie viele Zeichen Du herauskopieren möchtest. Falls nicht angegeben, ist der Wert =1. 

Also lautet die Formel für das linke Datum 
Datum Anfang: Links([Datum];4)

und für das re. Datum

Datum Ende: Rechts([Datum];4)


Hoffe ich konnte helfen.

Gruß Raveline Power
(Sascha)


----------



## larryson (21. September 2007)

@Sascha
Richtig! Das Problem ist aber der Datensatz 1987. Und wenn es keinen DS 1987 gibt, wird Access auch nichts finden.


----------



## Volker1976 (21. September 2007)

mmh nun gut, dann werd ich jetzt wohl nicht durm rum kommen mich auch noch mit vba zu beschäftigen...

Berechnen kann man die Werte ja auf verschiedene Weise...
na gut, danke auf jedenfall schonmal


----------



## RavelinePower (23. September 2007)

Hy nochmals.

Sorry habe dies jetzt erst verstanden. 

DS 1 = 1988 - 2000

Abfragewert 1999 = also DS 1 auch anzeigen.

Wenn du bei dem obrigen Schema bei Datum ende als Kriterium dies eingibst:

Zwischen [Datum Anfang] Und [Datum Ende]

Wird er Dir dies auch so anzeigen.

Klar ist aber das er bei keinem Datum ende diese Werte auch nicht anzeigt. 

PS:. hab mal die DB mitgeschickt is in A00


----------



## larryson (23. September 2007)

@Raveline
Ich hab mir mal Deine DB runtergeladen. 

Versuch Doch mal bitte das Jahr 1987 zu finden. Es funktioniert so nicht! Man muss in deinem Beispiel immer den entsprechenden Zeitraum eingeben und, wenn ich das richtig verstanden habe, möchte Volker nur nach einem Jahr schauen.


----------



## Volker1976 (24. September 2007)

Ich mach es einfach mal konkreter. Ich habe hier Akten die eine gewisse Laufzeit haben. Also sagen wir Korrespondenzen von 1966-1988, Rechnungen von 1976-1981 und Protokolle von 1980-1983.

Wenn ich jetzt bei der Such eingeben würde "Alle Akten aus dem Jahr 1982, dann sollte er mir alle DS anzeigen die Akten aus diesem Jahr beinhalten. Das Ergbenis wäre also das er mit den DS für die Protokolle und den DS für die Korrespondenzen anzeigt, nicht aber den von den Rechnungen. Was ja irgendwie klar ist


----------

