Neuigkeiten:

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

Mobiles Hauptmenü

Aktualisierungsabfrage DatDiff Typumwandlungsfehler

Begonnen von mariaz3565, September 24, 2015, 12:35:27

⏪ vorheriges - nächstes ⏩

mariaz3565

Hallo!
Ich brauche eure Hilfe! Bin gerade dabei eine Aktualisierungsabfrage zu basteln. Diese soll mein Feld "Termin" in der Tabelle mit dem Datum Jetzt() vergleichen und die Differenz der Tage neu berechnen. Dafür habe ich eigene Felder in der Tabelle (im Plan, bald fällig, überfällig).
Meine Formel dafür ist
DatDiff("t";[Logbuch]![Termin];Jetzt();7;"vbFirstJan1")

So sieht die SQL Anweisung aus
UPDATE Logbuch SET Logbuch.im_Plan = DateDiff("t",[Logbuch]![Termin],Now(),7,"vbFirstJan1")
WHERE (((Logbuch.Status)<>"Erledigt"));

Aber leider bekomme ich eine Fehlermeldung:
Typumwandlungsfehler

Ich verstehe leider nicht warum. Mein Zielfeld ist ein Zahlenfeld/Eingabe erforderlich NEIN

Woran könnte es sonst noch liegen?

Danke im Voraus für eure Rückmeldungen.

lg
Mary

el_gomero

#1
Hallo,

die Fehlermeldung sagt ja aus, dass der Typ nicht umgewandelt werden kann. Welcher Wert steht denn in [Logbuch]![Termin]?

Dann fällt auf, dass die SQL-Syntax so nicht stimmen kann, darin wird immer die englische Notation verwendet, also d für Tag, nicht t. Und beim Vergleich würde ich ohne die Uhrzeit arbeiten also mit Date. Und die letzten Argumente ohne Anführungszeichen.

Wolltest du wirklich den Samstag als 1. Wochentag nehmen (7)? Für Montag gilt die 2.


UPDATE Logbuch
SET Logbuch.im_Plan = DateDiff("d",[Logbuch]![Termin],Date(),2,2)
WHERE Logbuch.Status<>"Erledigt";

Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

mariaz3565

Hallo el_gomero!

Mein Terminfeld ist ein Datum/Uhrzeit Feld. Das soll/muss auch so bleiben... :-(

lg

el_gomero

Zitat
Mein Terminfeld ist ein Datum/Uhrzeit Feld. Das soll/muss auch so bleiben... :
Da spricht ja auch nix gegen, trotzdem beantwortet das meine Frage nicht wirklich. Welcher Wert steht zB im ersten DS, der zu aktualisieren ist? Kann das Feld auch leer sein?
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

MzKlMu

Hallo,
wie definiert sich denn im Plan, bald fällig, überfällig ?
Die Tabellenfelder dafür sind überflüssig, so etwas rechnet man immer über eine Abfrage ohne Tabelleneintrag. Die Tabelle müsste ja jeden Tag aktualisiert werden und das kann es nicht sein.

Was genau willst Du denn sehen bzw. eintragen ?
Gruß Klaus

DF6GL

Hallo,

ungeachtet der begründeten Einwände:

Wenn
[Logbuch]![Termin]
die Referenz auf ein Tabellenfeld sein soll, muss in SQL der Punkt verwendet werden:

[Logbuch].[Termin]

oder hier in diesem Beispiel den Tabellennamen einfach weglassen:
[Termin]
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

MaggieMay

Hi,

Access-SQL akzeptiert auch das Ausrufezeichen.
Freundliche Grüße
MaggieMay

DF6GL

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

mariaz3565

Hallo und danke an ALLE Beteiligten!

Ich habe es jetzt wie folgt gelöst:

UPDATE Logbuch SET Logbuch.im_Plan = DateDiff("d",Now(),[Termin]), Logbuch.bald_fällig = DateDiff("d",Now(),[Termin]), Logbuch.überfällig = DateDiff("d",Now(),[Termin])
WHERE (((Logbuch.Status)<>"erledigt"));


Danke für den Hinweis mit der Berechnung mittels Abfrage (im_Plan, usw.). Habe es (leider) anders gelöst mit einer VBA Berechnung direkt im Formular, welches bei speichern alle Werte in die Tabelle einträgt.

lg
Mary