2017-02-28 9 views
-1

Ich brauche eine flexible Tabelle, die Daten anzeigt. Mit Flexibilität, ich meine, wenn ich es am 15. Juni 1976 ansetze, wird es als solches angezeigt. Aber wenn ich 20 gebe, berechnet Access diese 20 in demselben Feld wie das heutige Datum - 20 Jahre.Bedarf Datumsberechnung MS Access

Ich habe die Formatierung des Felds Datum/Uhrzeit in der Tabelle: tbl_ageLimit auf # eingestellt, so dass es ein serielles Datum anstelle eines vom Benutzer lesbaren Datums anzeigt. Diese Tabelle hat ein Feld: ageLimit.

Ich versuche eine Abfrage zu entwickeln, um zu erkennen, ob das Datum in seinem aktuellen Status nicht relevant ist und wandle es dann in etwas Relevantes um und lege es in eine andere Tabelle, die ständig aktualisiert wird.

Gerade jetzt, ich versuche nur, Formel zum Erkennen und Konvertieren des Datums zu arbeiten. Dies ist die Formel, die hervorragend in Excel funktioniert, aber scheint nicht in MS Access zu funktionieren:

IIF([ageLimit]<=100,Date()-365*[ageLimit],[ageLimit]) 

Es erkennt, wenn das Feld eine Zahl hat, die weniger als 100, aber es ist nicht das tun Mathe und Anzeigen eines neuen Datensatzes in der neuen Tabelle. Unten ist die sql:

Kann jemand mich freundlich darauf hinweisen, was ich falsch mache? Vielen Dank.

Wie gewünscht, hier sind Schnappschüsse des Problems:

tbl_ageLimit Time/Date Field formatted as serial datetbl_allAges showing four records instead of five. Where's the fifth record?

Die Tabelle, die erstellt wird, ist nicht das fünfte Datensatz zeigt. Stamped.

+0

Wie die Formel vortrefflich in Excel funktioniert? Excel verwendet 'IIF()' nicht. * Aber es ist nicht die Mathematik * ... Bitte zeigen Sie uns einige Daten des aktuellen und gewünschten Ergebnisses. – Parfait

+0

Es ist auch ganz in Ordnung, mir zu sagen, dass mein Design fehlerhaft ist. Der Zweck ist, weil verschiedene Staaten unterschiedliche Gesetze über die Kreditvergabe an bestimmte Immobilien haben. Leider sagen manche 20 Jahre alt, andere haben ein festes Datum, zB 15. Juni 1976. Andere haben nur ein Jahr. –

+0

Excel hat eine IIf() Formel, es ist nur IF (Ausdruck, wenn wahr, wenn falsch). –

Antwort

1

Sie sollten die WHERE-Klausel entfernen, da Datensätze nicht gefiltert werden müssen. Da Sie beabsichtigen, den IIF() Ausdruck, in der SELECT Klausel zu bewerten:

SELECT IIf([ageLimit]<=100, Date()-365*[ageLimit], [ageLimit]) As [age_Limit] 
INTO tbl_allAges 
FROM tbl_ageLimit 
+0

Es gibt mir eine kreisförmige Referenzdialogbox. Vielleicht eine Zugriffsbeschränkung? –

+0

Benennen Sie den Tabellenalias um. Siehe Aktualisierung mit [age_Limit]. Benenne dich dann in der neuen Tabelle um. – Parfait

+0

Du bist eine wunderschöne Person! Vielen Dank! –