Neuigkeiten:

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

Mobiles Hauptmenü

Problem mit einer Abfrage: wie löse ich das....

Begonnen von Xoar, September 16, 2011, 13:22:06

⏪ vorheriges - nächstes ⏩

Xoar

Moin,

hab ein blödes Problem:
Ich habe zwei Abfragen; qryStundenkonto und qryUeberstunden.

In qryStundenkonto sind: Diensttag_ID, Mitarbeiter_ID, Fahrzeug_ID, Posten_ID und die Dienstzeit erfasst.
In qryUeberstunden sind nachträglich eingetragene Überstunden erfasst: Diensttag_ID, Mitarbeiter_ID, Kommentar

                                                                           nur mit qryStundenkonto übereinstimmende            alle
zuerst hatte ich die Felder Diensttag_ID und Mitarbeiter_ID aus qryUeberstunden mit denen aus qryStundenkonto in Beziehung gesetzt.

So nun das Problem, wenn ein Mitarbeiter Überstunden eingetragen bekommt, an einem Tag an dem er NICHT arbeiten war, werden diese nicht angezeigt.
Wenn er arbeiten gewesen ist, klappt das ohne Probleme.

Der Fehler besteht halt darin, das in qryStundenkonto der Mitarbeiter für den Tag ja nicht erfasst ist, und somit nicht angezeigt wird. Ich müsste eine Abfrage haben, wo der Mitarbeiter mit seiner Diensttag_ID hinzugefügt wird. Keine Ahnung wie ich das lösen soll.

Hab schon überlegt ob ich nicht mit nem RecordSet der Quelltabelle den Datensatz hinzufüge, dann gibt es das Problem ja nicht.

hat wer noch ne bessere Idee/Lösung?

Hoffe ist einigermaßen verständlich....

Jonny

Hallo,
schau mal bei deiner Abfrage die Verknüpfung an.
Wahrscheinlich ist da der Punkt 1 aktiviert.
Hier mußt du alle aus Überstunden nehmen

Gruß

Johann

Xoar

#2
geht auch nicht, muss ja immer alles aus qryStundenkonto angezeigt bekommen, andere Beziehungen setzten fällt damit wohl flach :/

Wenn ich nicht "alle aus qryStundenkonto und übereinstimmende aus qryueberstunden" wähle bei den Beziehungen, zeigt er mir ja nur die Datensätze an WO es Überstunden gibt. Oder wenn ich nur Mitarbeiter_ID so verknüpfe, zeigt er mir zwar für den richtigen Mitarbeiter die Überstunden an, ABER für jeden Diensttag und nicht nur für den, an dem die Überstunden eingetragen sind.

DF6GL

Hallo,


"...wenn ein Mitarbeiter Überstunden eingetragen bekommt, an einem Tag an dem er NICHT arbeiten war, werden diese nicht angezeigt."

??? Was sind das denn für Arbeitsbedingungen??
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

Jonny

Hallo,
ganz einfach:
Samstag ist frei und der MA kommt.
Deshalb bekommt er Überstunden.
;)und das ob er arbeitet oder nicht.

Gruß

Johann

ebs17

ZitatSo nun das Problem, wenn ein Mitarbeiter Überstunden eingetragen bekommt, an einem Tag an dem er NICHT arbeiten war, werden diese nicht angezeigt.
Bei Euch kriegt man auch Überstunden gutgeschrieben an Tagen, wo man gar nicht arbeiten war? Also an Wochenenden, Feiertagen, Urlaub?

Möglicherweise solltest Du die Datenmodellierung überprüfen, wenn Du etwas erfassen willst, was so nicht vorgesehen ist. Man könnte ja alle Tage als Arbeitstage zulassen (für einen Selbständigen ist das selbstverständlich) und Normalstunden und Überstunden unterschiedlich kennzeichnen. Andere arbeiten mit Arbeitszeitkonten.

ZitatIch habe zwei Abfragen; qryStundenkonto und qryUeberstunden.
Ursprünglich sollte man aber mit den Tabellen arbeiten, Abfragen können wichtige Elemente wegreduzieren.

MfGA
ebs

DF6GL

#6
Hallo,

@Jonny:

sorry, aber das ist nun mal Quatsch..  ;)


Wenn der MA "kommt" , arbeitet er (vermutlich) . Ob diese Arbeitszeit als vom Typ "Überstunde" geführt (und demzufolge mit irgendwelchen Zuschlägen , die auch noch vom Tag (Arbeitstag, Werktag, Sonn/Feiertag) abhängen, versehen wird) ist reine Definitionssache, bzw. Arbeitsvertragssache.  

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

Stapi

Hallo Xoar

Ich habe ein ähnliches Projekt gemacht, dort habe ich es so gelöst das ich die ganze Woche abbilde von Montag bis Freitag mache ich in der Stundenerfassung durch einem Ja/Nein Feld, ob an dem Tag Sollstunden abgeleistet werden, oder wie du beschrieben am Samstag dann keine Sollstunden, dann laufen die aufgeführten Stunden als Mehrarbeitsstunden in ein Stundenkonto. In einer weiteren Tabelle lege ich für jeden Mitarbeiter die täglichen Sollstunden fest, somit kann ich Unterschiedliche Arbeitsverträge bzw Wochenstunden abbilden.

Gruß Stefan
Grüße aus dem schönen NRW
Stefan

Xoar

so bin etwas verhindert deshalb kann ich erst jetzt antworten.

Also, es gibt Mitarbeiter die unter Rufbereitschaft frei haben. Jeder Mitarbeiter der Rufbereitschaft hat bekommt wenn er NICHT zum arbeiten gerufen wird genau zwei Überstunden gutgeschrieben. Bekommt Überstunden für einem Tag an dem er nicht arbeiten war :) gibt da auch noch ein paar andere Möglichkeiten für Überstunden, deshalb kann ich das nicht automatisieren.

ich glaube so wie es aussieht ist es am einfachsten den Datensatz der Quelltabelle hinzuzufügen, sonst muss ich meine ganze Datenbank umbauen.

kann man so einen Datensatz einfacher als mit nem vba recordset einer tabelle hinzufügen?

sorry vom Handy geschrieben.

Grüße

DF6GL

Hallo,

ich denke, dass Du besser die DB nach diesem Gesichtpunkten aufbaust:


Jeder Tag, an dem der MA etwas für die Firma tut, wird erfasst. (Das kann auch in Verbindung mit einem Werks-/Fabrikkalender passieren) . Ob es sich dabei nur um Rufbereitschaft (realisierbar durch ein JA/Nein-Feld, bzw. Zeitfelder bei variablem Tages-Zeitraum) und/oder tatsächliche Anwesenheitsstunden (Anzahl und Art) handelt, ist sekundär. Je nach "Arbeitsart" erfolgt die Berechnung seiner Stunden-Konten.
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

database

Hallo,

ungeachtet der Vorschläge von Franz, die ich dir zu beachten empfehlen würde ...
Zitatkann man so einen Datensatz einfacher als mit nem vba recordset einer tabelle hinzufügen?

Ja, kann man - entweder per Anfügeabfrage oder durch absetzen eines SQL-Befehls gegen die Datenbank per VBA.

Letzteres dann mit:

CurrentDB.Execute "INSERT INTO DeineTabelle(Feld1, Feld2, Feld3) VALUES ('" & Wert1 & '",'" & Wert2 & "','" & Wert3 & "')"

... wenn 3 Felder eines neuen Datensatzes befüllt werden sollen und die Daten in Textformat und in Variablen (Wert1, ...) vorliegen.
Bei Zahlenwerten in (hoffentlich) Zahlenvariablen entfallen dann die einfachen Hochkommata.

HTH

Xoar

so mit der Variante von Database werd ich das nun realisieren, danke :)

Über mein Überstundenformular wird dann der Tag (Zeitraum), die Überstunden und der Kommentar der Stundenkontotabelle hinzugefügt. Ist ansich genau das gleiche wie ihr beschrieben habt nur das diese Stunden über ein Zweitformular hinzugefügt werden und nicht über das Haupteingabeformular.

Danke für eure Ratschläge, haben mir sehr geholfen :)



Xoar

alles zurück.

Manchmal denk ich einfach zu kompliziert.

hab einfach nen Ufo gemacht, Datensatzherkunft auf die tblStundenkonto und nun kann man ganz simpel Mitarbeiter, Tag etc auswählen und einfach die Überstunden eintragen.

so einfach kann´s gehen...