Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Rechenfeld in Abfrage

Begonnen von kikimat, Februar 06, 2014, 09:22:22

⏪ vorheriges - nächstes ⏩

kikimat

Hallo,

ich habe in einer Abfrage die Felder "Laufzeitende" und "Kündigungsfrist". In einem neuen Feld habe ich die Formel eingegeben: DatAdd("m";Nz(-[Kündigungsfrist]);([Laufzeitende])). Es funktioniert auch, dass mir in diesem Feld die Kündigungsfrist in Monaten vom Laufzeitende Datum abgezogen wird. Damit ich weiß, wann ich kündigen muss. Nun möchte ich als Kriterium noch eingeben "<=#31.12.2014#" damit ich sehe welche Verträge in diesem Jahr gekündigt werden müssen. Leider funktioniert dieser Filter bei mir nicht. Es werden trotzdem Verträge angezeigt, die erst in 2015 gekündigt werden müssen.
Hat jemand einen Tipp hierzu? Muss ich den Filter woanders setzen?

Gruß, Kiki

DF6GL

Hallo,


für welche Spalte ist das Kriterium angegeben?

Zeige mal den SQL-String der Abfrage...
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

kikimat

Tut  mir leid, dass erst jetzt antworte, aber ich war gestern nicht mehr online. Das Kriterium ist in der gleichen Spalte angegeben wie der Rechenausdruck. Ich wollte ja gern, dass das Ergebnis gleich gefiltert wird. Hier ist der SQL Code, Laufzeitende habe ich nur Mindestlaufzeit genannt.

SELECT tabGesellschaft.NameKurz, tabHäuser.Haus, tabVerträge.Vertragspartner AS Ausdr1, tabAnspPartner.Name, tabVerträge.Thema, tabVerträge.Vertragsbeginn, tabVerträge.Mindestlaufzeit, tabVerträge.Kündigungsfrist, tabVerträge.Verlängerung, tabVerträge.GekündigtZum, tabVerträge.VertragID, DateAdd("m",Nz(-[Kündigungsfrist]),([Mindestlaufzeit])) AS Ausdr1
FROM tabHäuser INNER JOIN (tabGesellschaft INNER JOIN (tabAnspPartner INNER JOIN tabVerträge ON tabAnspPartner.AnspID = tabVerträge.AnspID) ON tabGesellschaft.GesellschaftID = tabVerträge.GesellschaftID) ON tabHäuser.HausID = tabVerträge.HausID
WHERE (((tabVerträge.Mindestlaufzeit)<>0) AND ((DateAdd("m",Nz(-[Kündigungsfrist]),([Mindestlaufzeit])))<=#12/31/2014#));
[/size]

DF6GL

Hallo,

welche Datentypen haben denn die relevanten Felder?

("Mindestlaufzeit" könnte eine Monatszahl sein, worauf auch "tabVerträge.Mindestlaufzeit)<>0"  hindeutet , "Laufzeitende" ein Datum...).  "Mindestlaufzeit"  muss zwingend den Datentyp "Datum/Uhrzeit" aufweisen, wobei dann die Prüfung auf "<>0"  eher  "not is null" lauten sollte.

Zudem kommt der Aliasname "Ausdr1" zweimal vor, was sicher so nicht gewollt ist.

Weiterhin: Reservierte Wörter (-->"Name") als Benamsung für eigenerstellte Objekte vermeiden oder mindestens in Eckklammern setzen.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

kikimat

Mindestlaufzeit ist ein Datum, Kündigungsfrist eine Zahl (Anzahl der Monate). Es klappt auch, dass mir in einer Zusatzspalte ausgerechnet wird, wann ich kündigen muss, also Mindestlaufzeit - Kündigungsfrist. Aber das Kriterium <=#31.12.2013# wird nicht erkannt, weil ich auch Daten angezeigt bekommen, die erst 2015 gekündigt werden müssen.

DF6GL

Hallo,

nochmal:

Hast Du die Aliasnamen korrigiert, bzw. bei "Vertragspartner" weggenommen?
Hast Du "Name" in Eckklamern gesetzt?
Werden in Spalten "Ausdr1" "richtige" Datumsangaben angezeigt?
Gibt es da welche , die später als 31.12.2014 liegen?


oder mach mal einen Screenshot der angezeigten DS bei Abfrageausführung.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

kikimat

Ich habe die Aliasnamen jetzt korrigiert und nun funktioniert es.

Vielen Dank!