Neuigkeiten:

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

Mobiles Hauptmenü

Zeiträumliche Abfrage

Begonnen von Mykis, März 28, 2023, 13:00:13

⏪ vorheriges - nächstes ⏩

Mykis

Hallo,

zur Auswertung der Phänologie verschiedener Arten habe ich eine Abfrage mit der Auswahl von Monaten als Zahl,
also für Januar (01) bis Dezember (12). Ich kann also von Januar bis April problemlos meine Phänologie anzeigen lassen. Nicht gelöst habe ich die Abfrage von z. B. November bis März, also über die Jahreswende. Da werden immer alle Werte angezeigt. Gibt es eine Möglichkeit diesen Zeitraum auszuwerden?

LG
Frank

ebs17

#1
Man darf wohl unterstellen, dass Deine Datensätze per Monatsfeld zeitlich verortet werden.
SELECT * FROM TabelleX
WHERE Monatsfeld >= 11 OR Monatsfeld <= 3

Beziehungsweise: Wie hast Du Informationen zu Zeiträumen/-punkten in Deiner Tabelle umgesetzt?
Mit freundlichem Glück Auf!

Eberhard

Mykis

Hallo Eberhard,

vielen Dank. So funktioniert die Abfrage über den Jahreswechsel. Bei Abfragen im gleichen Jahr muss ich dann aber
bei WHERE Monatsfeld >= 3 OR Monatsfeld <= 11 durch AND ersetzen!
Im Formular habe ich aber nur das Auswahlfeld "von" (Monat) und "bis" (Monat). Wie könnte ich da am besten die Abfrageklausel "automatisch" ändern?
In meiner Phänologietabelle sind die Zeiträume als Zahlen für den jeweiligen Monat (o1 bis 12) umgesetzt.

LG
Frank

MzKlMu

Hallo,
wie genau sieht denn die Tabelle aus (Monatsfelder) ?



PS:
Hast Du jetzt Zahlen oder Text ?
01 ist keine Zahl, sondern Text, es gibt keine Ganzzahlen die eine 0 vorne haben.
Gruß Klaus

Mykis

Hallo Klaus,

das Feld ist Text, da es auf dem Teilstring des Datums basiert. Monat: Teil(Einzelnachweisliste!DATUM;4;2)

LG
Frank

ebs17

Zitatdurch AND ersetzen!
Wenn es Dir möglich ist, Zahlen zu haben, die gleichzeitig kleiner 4 und größer 10 sein können, dann tu das.
Zeige bitte solche Zahlen (die momentan außerhalb meiner Vorstellungswelt liegen).

Month(Datumsfeld)... erzeugt die Monatszahl (als Zahl!). Ohne eine Jahresangabe ist das verwendete Jahr unerheblich, sprich es betrifft schlicht alle Jahre, da ja jedes Jahr immer wieder die gleichen Monate hat.

Zahlenvergleich ist effizienter als Textvergleich (Computer erstehen immer noch nur Einsen und Nullen in der tiefsten Ebene).
Mit freundlichem Glück Auf!

Eberhard

Beaker s.a.

ZitatWie könnte ich da am besten die Abfrageklausel "automatisch" ändern?
Mit einem kompletten Datum vom Datentyp "Datum/Uhrzeit" und dem Operator "Between".
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Mykis

Das Feldeigenschaft ist jetzt eine Zahl, der Effekt bleibt der gleiche. Mit der Bedingung

">=[Forms]![artphaenologie_1]![Kombinationsfeld24] Oder <=[Forms]![artphaenologie_1]![Kombinationsfeld26]"

kommen keine Einschänkungen auf die ausgewählten Monate zu Stande, wenn der erste Wert kleiner ist als der zweite.

Mykis

Hallo Beaker,

Zitat von: Beaker s.a. am März 28, 2023, 17:13:18Mit einem kompletten Datum vom Datentyp "Datum/Uhrzeit" und dem Operator "Between".

Im Formular möchte ich nur die Namen der Monate von bis auswählen und kein Datum eingeben müssen.

MzKlMu

Hallo,
was ist denn das für ein Datumsfeld (Aufgabe/Sinn)?
Oder statt Und kann nicht richtig sein.
Auch wenn du das Datum verwendest kannst du die Monate zum Filtern verwenden.


Gruß Klaus

ebs17

Zitatnur die Namen der Monate von bis auswählen
März ist aber etwas anderes als 3 ...

Arbeitest Du so, oder bist Du nur momentan verwirrt?
Mit freundlichem Glück Auf!

Eberhard

Beaker s.a.

Hallo,
In #7 ist die Syntax nicht korrekt
"...
WHERE DatumsFeld>=" & [Forms]![artphaenologie_1]![Kombinationsfeld24] & " OR DatumsFeld<=" & [Forms]![artphaenologie_1]![Kombinationsfeld26] & " ..."
Zu #8
Na und, wie du ein Datum anzeigst bleibt dir doch überlassen
DS-Herkunft der Kombis
SELECT Datumsfeld, Format(Datumfeld,"mmmm")
edit: uups,
SELECT Datumsfeld, Format(Datumfeld,"mmmm") FROM Tabelle1. Spalte gebunden mit Breite 0cm
In der Abfrage muss die Rückgabe der Kombis noch SQL-konform formatiert werden
... & Format$([Forms]![artphaenologie_1]![Kombinationsfeld24], "\#yyyy\-mm\-dd\#") & ...
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Mykis


Zitat von: ebs17 am März 28, 2023, 17:29:55Arbeitest Du so, oder bist Du nur momentan verwirrt?

Der Eindruck, dass ich verwiirt bin, liegt daran, dass ihr meine Fähigkeiten im Access überschätzt. :)
Hier nochmal mein eigentliches Anliegen: Ich wähle in einem Formular über ein Kombifeld eine Gattung aus und über zwei weitere Kombifelder "Monat von" und "Monat bis" und es werden dann die dazugehörigen Arten der Gattung (mit Anzahl) im Unterformular angezeigt. Das kann z.B. Januar bis April sein oder November bis März, wenn ich z. B. alle kälteliebenden Arten anzeigen will. Ich bekomme es aber immer nur bei einem dieser beiden Beispiele hin, ohne die Abfrageklausel umzustellen.

MzKlMu

Hallo,
wie heißt denn das Datumsfeld ?
Noch mal zu (meinem) Verständnis:
Zitatalle kälteliebenden Arten anzeigen will.
Was steht denn da für ein Datum drin. Ein Datum beinhaltet Tag, Monat und Jahr, macht da Tag und Jahr Sinn ?

Gruß Klaus

Mykis

#14
Hallo Klaus,

das Datumsfeld in der Ursprungstabelle heißt "Datum", mit dem Format TT/MM/JJ. und in der Abfrage heißt es "Monat". Daraus wird momentan durch Teilstring (sicherlich unprofessionell!) der Monat (01-12) mit den dazugehörigen Monatsnamen erstellt und das Feld heißt dort "Monat". Tag und Jahr sind dabei völlig unwichtig! Z.B. Kälteliebende Arten wachsen meist zwischen November und April. Die Abfrage soll mir also in diesem Beispiel diese Arten anzeigen. Aber auch innerhalb eines Jahres muss die Phaenologie (welche Art wächst zu welcher Jahreszeit) auswählbar sein.