access tabellen- spalten errechnen lassen
hi buddies,
wie kann man sich in ms access spalten "errechnen" lassen, quasi wie in excel...
beispiel:
eine spalte heißt "arbeitsbeginn", die 2.te heißt "arbeitsende" nun möchte ich mir
in spalte "stunden" die arbeitszeit in stunden ausgeben lassen, indem ich die differenz
aus beginn und ende bilde....
sorry.... aber ich bin echt ziemlich raus aus access
danke für jeden tip!!!
fm
wie kann man sich in ms access spalten "errechnen" lassen, quasi wie in excel...
beispiel:
eine spalte heißt "arbeitsbeginn", die 2.te heißt "arbeitsende" nun möchte ich mir
in spalte "stunden" die arbeitszeit in stunden ausgeben lassen, indem ich die differenz
aus beginn und ende bilde....
sorry.... aber ich bin echt ziemlich raus aus access
danke für jeden tip!!!
fm
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 12315
Url: https://administrator.de/contentid/12315
Ausgedruckt am: 25.11.2024 um 18:11 Uhr
17 Kommentare
Neuester Kommentar
SQL: update [tabellenname] set stunden = arbeitsende - arbeitsbeginn
@Falkster
Magst Du mal die Struktur Deiner Tabelle XZ posten oder würde uns das nur unnötig belasten? Wüsste mindestens 4 verschiedene Gründe, warum im Feld "Stunden" nichts zu sehen ist, bei Kenntnis der Feldtypen ließe sich das aber einschränken.
Biber
Magst Du mal die Struktur Deiner Tabelle XZ posten oder würde uns das nur unnötig belasten? Wüsste mindestens 4 verschiedene Gründe, warum im Feld "Stunden" nichts zu sehen ist, bei Kenntnis der Feldtypen ließe sich das aber einschränken.
Biber
Hab' ich ja schon fast wieder vergessen, diesen Thread ...
Was meinst Du mit 'jede Änderung' ?
Du kannst natürlich mehrere Felder in einem Lauf ändern, dann trennst Du die Statements mit einem Komma, bspw.:
Was meinst Du mit 'access füllt die Spalte noch nicht ...'? Wenn Du keine Fehlermeldung bekommst, dann hat Access die Anweisungen auch ausgeführt. Kann natürlich sein, dass je nach WHERE-Bedingung nichts upgedated werden musste/sollte. Aber das kann ich aus meiner Kristallkugel nicht lesen. Dann müsstest Du schon mal konkrete Anweisungen posten, damit man da was zu sagen kann.
Was meinst Du mit 'jede Änderung' ?
Du kannst natürlich mehrere Felder in einem Lauf ändern, dann trennst Du die Statements mit einem Komma, bspw.:
update [tabellenname] set spalte1 = wert1, spalte2 = wert2, spalte3 .... (usw.)
Was meinst Du mit 'access füllt die Spalte noch nicht ...'? Wenn Du keine Fehlermeldung bekommst, dann hat Access die Anweisungen auch ausgeführt. Kann natürlich sein, dass je nach WHERE-Bedingung nichts upgedated werden musste/sollte. Aber das kann ich aus meiner Kristallkugel nicht lesen. Dann müsstest Du schon mal konkrete Anweisungen posten, damit man da was zu sagen kann.
Das hier
sollte funktionieren.
Tip: verwende keine Sonderzeichen in Objektnamen, Du sparst Dir dann die umständliche Eingabe und kannst die eckigen Klammern weglassen.
update [aufträge] set Gesamtstunden = norm + [25%] + [40%]
sollte funktionieren.
Tip: verwende keine Sonderzeichen in Objektnamen, Du sparst Dir dann die umständliche Eingabe und kannst die eckigen Klammern weglassen.
@Falkster,
a) ich habe mir die Struktur, soweit preisgegeben, sinngemäß angelegt und mit der Anweisung
das Feld Stundengesamt aktualisiert. Gibt es irgendwelche Details, die wir noch wissen sollten zu deiner Tabelle???
b) Abgesehen davon beiße ich mir schon seit gestern auf die Zunge:
WOZU brauchst du denn das redundante Feld "Stundengesamt" in der Tabelle?
Ein
würde doch das gleiche bringen und ist auf jeden Fall widerspruchsfreier.
Nun sag nicht, das diese Addier-Aktionen Zeit kosten....
Frank / der Biber aus Bremen
[Edit] *Anmerkung: Ok, ich habs erst später gemerkt: MS-Access ist noch nicht ganz soweit, dass sich da VIEWs anlegen lassen.
Vielleicht später, wenn Windows 256-Bit-Architektur hat.
Also bleibt das "create view view4711" leider virtuell. However, trotzdem ist kein redundantes (errechnetes) Feld "Gesamtstunden" nötig, dafür reichen sogar die dreieinhalb zur Verfügung stehenden Access-SQL-Befehle.
Habe das erste Mal (seit Access97) wieder ein Access aufgehabt - und ganz naiv in der Hilfe nach "SQL" gesucht. Wollte nur wissen, an welche SQL-Norm die M$-Praktikanten sich anlehnen. Na ja... ein bisschen dünn ist das aber ja schon... *lach*. Was kostet denn so ein Access eigentlich? *breitgrinst* [/Edit]
a) ich habe mir die Struktur, soweit preisgegeben, sinngemäß angelegt und mit der Anweisung
Update tabelle1 t set stundengesamt= t.norm+ t.[25%]+t.[40%]+ t.norm;
das Feld Stundengesamt aktualisiert. Gibt es irgendwelche Details, die wir noch wissen sollten zu deiner Tabelle???
b) Abgesehen davon beiße ich mir schon seit gestern auf die Zunge:
WOZU brauchst du denn das redundante Feld "Stundengesamt" in der Tabelle?
Ein
[create view View4711 as] *<i>siehe Anmerkung unten</i>
SELECT t.[25%], t.[40%], t.Norm, t.Norm+ t.[25%]+t.[40%]+ t.norm AS AlleStunden
FROM Tabelle1 t;
würde doch das gleiche bringen und ist auf jeden Fall widerspruchsfreier.
Nun sag nicht, das diese Addier-Aktionen Zeit kosten....
Frank / der Biber aus Bremen
[Edit] *Anmerkung: Ok, ich habs erst später gemerkt: MS-Access ist noch nicht ganz soweit, dass sich da VIEWs anlegen lassen.
Vielleicht später, wenn Windows 256-Bit-Architektur hat.
Also bleibt das "create view view4711" leider virtuell. However, trotzdem ist kein redundantes (errechnetes) Feld "Gesamtstunden" nötig, dafür reichen sogar die dreieinhalb zur Verfügung stehenden Access-SQL-Befehle.
Habe das erste Mal (seit Access97) wieder ein Access aufgehabt - und ganz naiv in der Hilfe nach "SQL" gesucht. Wollte nur wissen, an welche SQL-Norm die M$-Praktikanten sich anlehnen. Na ja... ein bisschen dünn ist das aber ja schon... *lach*. Was kostet denn so ein Access eigentlich? *breitgrinst* [/Edit]
Ich verfolge das gespannt weiter. Nebenbei: was für ein Zahlenformat haben denn die Spalten? Wenn Du in der Tabellendefinition bist, wählst Du oben den Feldtyp ('Zahl' bspw.) und unten dann die Art, um welche Zahl es sich handelt. Kannst Du mal da die genauen Einstellungen posten? Thx.
dba
dba
Hi Falkster,
und Du bist der Ansicht, dass Du in ein Feld mit einem Datentyp Long Integer und logischerweise 0 Dezimalstellen Stunden und deren Bruchteile erfassen kannst? Oder arbeitet ihr nur ganze Stunden?
Und jetzt mal eine ganz banale Frage von mir: Hast Du in deinen Spalten Norm, 25% und 40% auch was drin stehen, oder sind die leer? Könntest Du mal ein paar Zeilen aus der Tabellenanzeige hier aufführen? Das würde helfen.
Zu Bibers Erläuterung: Du hast mit dem 'AS' keine Spalte in Deiner Tabelle angelegt, sondern nur die Resultatspalte des SQL-Statements mit einem Namen versehen. Abfragen werden erst zum Zeitpunkt des Aufrufes ausgeführt und holen die dann aktuellen Daten aus den Tabellen um sie anzuzeigen oder anderen Accesskomponenten zur Verfügung zu stellen.
dba
und Du bist der Ansicht, dass Du in ein Feld mit einem Datentyp Long Integer und logischerweise 0 Dezimalstellen Stunden und deren Bruchteile erfassen kannst? Oder arbeitet ihr nur ganze Stunden?
Und jetzt mal eine ganz banale Frage von mir: Hast Du in deinen Spalten Norm, 25% und 40% auch was drin stehen, oder sind die leer? Könntest Du mal ein paar Zeilen aus der Tabellenanzeige hier aufführen? Das würde helfen.
Zu Bibers Erläuterung: Du hast mit dem 'AS' keine Spalte in Deiner Tabelle angelegt, sondern nur die Resultatspalte des SQL-Statements mit einem Namen versehen. Abfragen werden erst zum Zeitpunkt des Aufrufes ausgeführt und holen die dann aktuellen Daten aus den Tabellen um sie anzuzeigen oder anderen Accesskomponenten zur Verfügung zu stellen.
dba
@Falkster
Die Spieltabelle tabelle1, die ich angelegt habe sieht so aus:
--
stundengesamt, Zahl (Also Default: Long Integer, nix geändert)
25%, Zahl, dito
40%, Zahl, dito
Norm,Zahl. dito
---
Eingegebener Satz:
"25%": 44
"40%": 33
norm: 11
--> nach dem "Update" oben habe ich wie erwartet 88 im Feld "Stundengesamt"
Mit "virtuell " meinte ich nur: ich kann leider im Access nicht mal einen View, also eine bestimmte Sicht auf eine Tabelle anlegen - normalerweise hätte ich von einen Programm jenseits der 19.95-Euro-Grenze das schon erwartet.
Von daher kann ich zwar in Gedanken das zweite Select-Statement als View bezeichnen ("virtuell"), aber ich kann es nicht hinterlegen. Oder ich habs nicht gefunden in Access.
Warum bei Dir das Feld leer bleibt, kann ich nicht nachvollziehen.
Die Spieltabelle tabelle1, die ich angelegt habe sieht so aus:
--
stundengesamt, Zahl (Also Default: Long Integer, nix geändert)
25%, Zahl, dito
40%, Zahl, dito
Norm,Zahl. dito
---
Eingegebener Satz:
"25%": 44
"40%": 33
norm: 11
--> nach dem "Update" oben habe ich wie erwartet 88 im Feld "Stundengesamt"
Mit "virtuell " meinte ich nur: ich kann leider im Access nicht mal einen View, also eine bestimmte Sicht auf eine Tabelle anlegen - normalerweise hätte ich von einen Programm jenseits der 19.95-Euro-Grenze das schon erwartet.
Von daher kann ich zwar in Gedanken das zweite Select-Statement als View bezeichnen ("virtuell"), aber ich kann es nicht hinterlegen. Oder ich habs nicht gefunden in Access.
Warum bei Dir das Feld leer bleibt, kann ich nicht nachvollziehen.
Hallo Falkster,
naja, eine leere numerische Spalte sollte zumindest eine '0' enthalten, oder?
Ich frag' mich nur, wie Du das hinbekommen hast ...
dba
naja, eine leere numerische Spalte sollte zumindest eine '0' enthalten, oder?
Ich frag' mich nur, wie Du das hinbekommen hast ...
dba