Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Liste mit Aktivitäten --> Errechnen der benötigten Zeit
zurück: Problem mit VBA und Parameterabfrage weiter: Nummerierung Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
loggers
Im Profil kannst Du frei den Rang ändern


Verfasst am:
11. Apr 2009, 09:06
Rufname:

Liste mit Aktivitäten --> Errechnen der benötigten Zeit - Liste mit Aktivitäten --> Errechnen der benötigten Zeit

Nach oben
       Version: Office 2007

Hallo,

ich möchte mit Access folgende Fragestellung lösen und hoffe, hier die Hilfe zu finden, die ich benötige, da ich einfach nicht genau weiß, wie ich das anstellen soll. Der Übersicht halber, habe ich die Problemstellung inhaltlich wie folgt aufgeteilt:

Grundlage
Ich habe in Access eine Excel-Tabelle importiert. Diese Tabelle dokumentiert genau, was welcher Mitarbeiter für die jeweilige Kundenanfrage unternommen hat (Telefonate, Recherche, Vermerke). Jeder Datensatz enthält genaue Angaben zu jeweils einer Aktivität: Vorgangsnummer, Datum, Uhrzeit von, Uhrzeit bis, Ziel der Maßnahme (z.B. Kunde möchte Beratung zu XY“), Ergebnis der Maßnahme (z.B. „Kunde erhielt Beratung zu XY“) usw. Natürlich sind die Angaben in „Kundennummer“, „Ziel“ und „Ergebnis“ bei allen zusammengehörigen Datensätzen gleich.
Eine Beispieltabelle im Excelformat sieht wie folgt aus:
Code:
Vorgangsnummer   Ziel             Ergebnis         Datum der Aktivität   Uhrzeit von   Uhrzeit bis   Art der Aktivität
          1234   Beratung zu XY   Beratung zu XY   01.02.2009            10:43         10:52         Kundentelefonat
          1234   Beratung zu XY   Beratung zu XY   03.02.2009             9:10          9:45         Kundenbesuch
          1234   Beratung zu XY   Beratung zu XY   06.02.2009            14:10          8:45         Recherche
          1234   Beratung zu XY   Beratung zu XY   07.02.2009             8:00          8:30         Kundentelefonat
          5678   Beratung zu XY   Beratung zu XY   01.03.2009             8:00          8:02         Kundentelefonat
          5678   Beratung zu XY   Beratung zu XY   16.03.2009             9:00          9:01         Recherche
          5678   Beratung zu XY   Beratung zu XY   20.03.2009            10:45         11:36         Recherche
          5678   Beratung zu XY   Beratung zu XY   21.03.2009            10:00         10:10         Kundentelefonat
(Tabelle1)
Primäres Ziel
Ich möchte in Access errechnen, wie viel Zeit die jeweilige Kundenanfrage gedauert hat, also z.B. Vorgangsnummer 1234 hat insgesamt 25 Minuten in Anspruch genommen, sprich: alle Aktivitäten zusammengerechnet ergeben eine Bearbeitungsdauer von 25 Minuten. Dabei dürfen jedoch nur die Aktivitäten einfließen, die einen Kundenkontakt enthalten. Z.B.: Zu Vorgangsnummer 1234 sind 4 Aktivitäten hinterlegt: 2x Kundentelefonat, 1xBrief an Kunden und 1xRecherche. Die Recherche darf bei dieser Berechnung nicht mitgezählt werden, da diese keinen direkten Kundenkontakt hat.
Das Ergebnis soll also eine Abfrage sein, die eine Tabelle darstellt, die die Dauer zu jeder Kundenanfrage darstellt (Zusammengefasst in einem Datensatz/in einer Zeile), die einzelnen Aktivitäten spielen dabei keine Rolle mehr. Diese Tabelle könnte so aussehen: Vorgangsnummer, Datum, Dauer (in Minuten)

Sekundäres Ziel
In der nun erstellten „Zieltabelle“ („Primäres Ziel“) soll auch das „Ergebnis“ der Kundenabfrage aktualisiert werden. D.h. war die Bearbeitungszeit insgesamt kürzer als 20min. soll das Ergebnis heißen „Information“. Nur Kundenanfragen ab 20 Min. Bearbeitungsdauer dürfen eine „Beratung“ sein.

Gewünschtes Ergebnis

So könnte die Abfrage am Ende aussehen:
Code:
Vorgangsnummer   Ziel             Ergebnis         Dauer insgesamt
          1234   Beratung zu XY   Beratung zu XY   00:45 Minuten
          5678   Beratung zu XY   Information      00:13 Minuten
(Tabelle2)
Meine Probleme
Für mich ergeben sich hier Probleme, die meinen Access-Horizont überschreiten:
1. Wie kann ich Access sagen, es soll nur die Datensätze zusammenzählen, die auch tatsächlich zusammengehören?
2. Wie kann ich aus „Uhrzeit von, Uhrzeit bis“ die Minutenzahl extrahieren?
3. Wie kann ich bei unter 20min. bzw. ab 20min. das Ergebnis entsprechend ändern?

Ich freue mich über jede Hilfe und wünsche Euch schöne Feiertage!

VG
Loggers



tabelle1.png
 Beschreibung:
 Dateigröße:  16.43 KB
 Angeschaut:  474 mal

tabelle1.png



tabelle2.png
 Beschreibung:
 Dateigröße:  3.66 KB
 Angeschaut:  474 mal

tabelle2.png


Marmeladenglas
komme zurecht


Verfasst am:
11. Apr 2009, 10:57
Rufname:


AW: Liste mit Aktivitäten --> Errechnen der benötigten Ze - AW: Liste mit Aktivitäten --> Errechnen der benötigten Ze

Nach oben
       Version: Office 2007

Hi,
grundsätzlich bedarf es zu deinem Vorhaben keiner Tabelle, in der z.b. die Gesamtzeiten geschrieben werden. Das macht man alles über Abfragen, die weitestgehend wie Tabellen in Formularen/Berichten etc. verwendbar sind. Das macht es auch hinfällig irgendwelche Korrekturen vorzunehmen bzgl. des Ergebnisses (bzw. überhaupt ein Ergebnis in der Tabelle zu speichern, wenn nur zwischen diesen beiden Zuständen, ob Beratung - oder nur Information, unterschieden wird) ob es jetzt eine Beratung war, da mehr als 20 Min. Zeit aufgewendet wurde. Das wird dynamisch über die Abfrage immer aktuell errechnet und entsprechend, dann als Beratung oder Nicht-Beratung ausgewiesen.
Dein Upload ist wohl so auch als Access-Tabelle hinterlegt, daraus folgt, dass deine Tabelle weiter normalisiert werden soll, sprich gleiche Informationen werden in einer übergeordneten Tabelle ausgelagert und mit den Details in Beziehung gesetzt (z.b. Vorgangsnummer, Beratung zu, KundenNr. etc).
Über eine Gruppierung in der Abfrage kann man sich die Summen der Zeiten anzeigen lassen. Sollen die Recherche-Einträge außen vor bleiben, wird das entsprechend über ein Kriterium in der Abfrage ausgefiltert und somit für die Berechnung nicht herangezogen.
Bzgl. der Differenzberechnung könnte das in einer Abfrage so aussehen:
Code:
Dauer: DateDiff("n";[von];[bis])\60 & ":" & Format((Abs(DateDiff("n";[von];[bis]) Mod 60));"00")
bzw. um "nur" die Minuten zu errechnenl, um sie zu summieren:
Code:
DauerMin: Int(DateDiff("n";[von];[bis]))
Zur Darstellung des Ergebnisses könnte ein SQL so aussehen:
Code:
SELECT   VorgangNr, Ziel,
         Sum((DateDiff("n",[von],[bis])))\60 & ":" & Format(Abs(Sum((DateDiff("n",[von],[bis]))) Mod 60),"00") & " Minuten" AS Dauer, IIf(Sum(DateDiff("n",[von],[bis]))>20,"Beratung","Information") AS Ergebnis
FROM     DeineTabelle
WHERE    Art<>"R"
GROUP BY VorgangNr, Ziel;
Der Zusatz Minuten in der Kundenkontaktdauer könnte jedoch irreführend sein, wenn die Gesamtdauer 59 Minuten überschreitet.
Sollte hier statt "Beratung" das Ziel ausgegeben werden (iif-Teil), mußt du den String entsprechend durch das FEld [Ziel] austauschen.
"R" hab ich jetzt einfach mal als stellvertrend für Recherche genommen.

P.S. im übrigen erfreut mich deine umfassende und vollständige, gut nachvollziehbare Problemdarstellung sehr !! Da antwortet man gern


Zuletzt bearbeitet von Marmeladenglas am 11. Apr 2009, 18:03, insgesamt 2-mal bearbeitet
Gast



Verfasst am:
11. Apr 2009, 16:32
Rufname:

AW: Liste mit Aktivitäten --> Errechnen der benötigten Ze - AW: Liste mit Aktivitäten --> Errechnen der benötigten Ze

Nach oben
       Version: Office 2007

Hallo Marmeladenglas,

vielen Dank für Deine ausführliche Info und Hilfestellung. Da ich mich mit Codes in Access bisher nur marginal auskenne, hier noch ein paar Fragen, bevor ich mich durch Deine Tipps arbeiten kann.

Verstehe ich das richtig, dass ich die Codes bei einer Abfrage in der SQL-Ansicht einfüge?

Wenn ja, wofür ist dann die Visual Basic Programmierung? Ich bin da gerade etwas verwirrt? Wink

Vielen Dank!
Marmeladenglas
komme zurecht


Verfasst am:
12. Apr 2009, 08:59
Rufname:

AW: Liste mit Aktivitäten --> Errechnen der benötigten Ze - AW: Liste mit Aktivitäten --> Errechnen der benötigten Ze

Nach oben
       Version: Office 2007

Hi,
mmhh.. naja SQL ist eher dazu gedacht direkt Daten und deren Strukturen zu manipulieren, enthält im Gegensatz zu VBA (als umfangreiche Programmiersprache) eher einen geringeren Befehlsumfang. Mit VBA kannst du mannigfache Dinge manipulieren, was mit SQL nicht geht. Wie wolltest du z.b. mit SQL die Hintergrundfarbe eines Formulars/Feldes ändern ?
Würde jetzt mal dreist behaupten, alles was du in SQL machen kannst, läßt sich auch irgendwie mit VBA programmieren, aber nicht umgekehrt. Wenn ich damit vollkommen falsch liege, bitte ich um Korrektur von kompetenter Stelle
SQL ist eine starre, präzise Sprache, eher einfach - VBA ist sehr flexibel.
Schnittstellen existieren in beide Richtungen. D.h. unter SQL kannst du VBA einsetzen (z.b. Rückgabewert einer in VBA definierten Funktion in einer SQL Abfrage verwenden), wie auch SQL-Statements ausführen lassen unter VBA.
Was die Datenmanipulation angeht hat SQL meist die Nase vorn (z.b. Abfragen).
Jetzt mal so im groben...
Ich hab dir das mal in einer DB aufgearbeitet. Einmal über ein Formular mit deiner Ursprungstabelle und 1x als Formular mit Auftrennung der Tabelle in tblVorgang und tblAktivitätenProVorgang



Ber.zip
 Beschreibung:

Download
 Dateiname:  Ber.zip
 Dateigröße:  39.69 KB
 Heruntergeladen:  16 mal

loggers
Im Profil kannst Du frei den Rang ändern


Verfasst am:
12. Apr 2009, 09:01
Rufname:

AW: Liste mit Aktivitäten --> Errechnen der benötigten Ze - AW: Liste mit Aktivitäten --> Errechnen der benötigten Ze

Nach oben
       Version: Office 2007

Hallo Marmeladenglas,

vielen Dank noch mal für Deine Arbeit und die Mühen, die Du mit mir hast Smile Ich finde Deine Hilfe sehr löblich!

Mir ist jedoch ein Fehler unterlaufen: Die Felder "Uhrzeit von" und "Uhrzeit bis" enthalten neben der Uhrzeit jedoch auch das jeweilige Datum, also z.B: so:

Code:
Vorgangsnummer   Ziel             Ergebnis               Beginn             Ende                Art der Aktivität
1234             Beratung zu XY   Beratung zu XY         18.07.2008 11:00   18.07.2008 11:20    Kundentelefonat
(Tabelle1)

Sinnigerweise habe ich die Felder in "Beginn" und Ende" umbenannt und das Feld "Datum der Aktivität" entfernt. Ich hatte übersehen, dass die Datenbank das Datum eben direkt in die anderen beiden Felder schreibt.
Wie kann die nun veränderten Felder (Datum und Uhrzeit gemischt) in der SQL Abfrage beachten? Im Übrigen sind die Aktivitäten immer am selben Tag, sprich: Ein Telefonat, das am 18.07. beginnt, wir wohl auch an diesem Tag enden Wink

VG
Marmeladenglas
komme zurecht


Verfasst am:
12. Apr 2009, 09:14
Rufname:

AW: Liste mit Aktivitäten --> Errechnen der benötigten Ze - AW: Liste mit Aktivitäten --> Errechnen der benötigten Ze

Nach oben
       Version: Office 2007

Hi,
das macht kein Unterschied !
Probier es aus. Die Felder von u. bis sind als Date/Time Felder angelegt, also kannst du hier auch ein Datum mitdazufügen! DateDiff rechnet mit n (also mit Minuten), selbst wenn das Datum bis sich unterscheidet zum Eintrag in "von" wird korrekt über die Minuten umgerechnet bzw. in Std. u. Min. umgewandelt. Ich hab meinen Upload nochmal ein bißchen überarbeitet, da wohl das Kombifeld auf dem Formular "ne Macke" hatte. Lad das nochmal runter und probier einfach mal aus in die Felder von bzw. bis das DAtum mitdazuzuschreiben. Du wirst feststellen, das "juckt" den Ablauf überhaupt nicht .
Für die Errechnung der Zeit-Gesamtaufwendung war das Feld Datum für die Abfrage sowieso unwichtig.
Edit:
Hab das auch angepaßt, dass wenn die Gesamtaufwendung > 59 Min sind, dass dann Stunden steht und nicht Minuten
Gast



Verfasst am:
12. Apr 2009, 15:29
Rufname:

AW: Liste mit Aktivitäten --> Errechnen der benötigten Ze - AW: Liste mit Aktivitäten --> Errechnen der benötigten Ze

Nach oben
       Version: Office 2007

Jetzt stehe ich noch vor dem Problem, dass nur Bestimmte Kunden auf diese Weise berechnet werden sollen. Dazu gibt es in der Originaldatenbank noch das Feld "Vorgangsname", das aus drei Wörtern besteht, z.B. "Meier Meier Müller". Ich möchte nun nur die Vorgänge von "Müller" auswerten. Bisher kannte ich das so, das ich in der Entwurfsansicht als Auswahlkriterium hinzugefügt habe: "Meier" & "*". Mit diesem Befehl erhalte ich jedoch gar keine Ergebnisse. Eigentlich ist das doch die Anweisung: Nimm alle Vorgangsnummern, die das "Meier" enthalten - sowie "*" für die folgenden Wörter, die aber nicht festgelegt sind. Wieso funktioniert das nicht in diesem Zusammenhang? Bisher ging das immer mit Access XP, mit dem 07 irgendwie nicht mehr.

Übrigens, Deine Antworteit ist phänomenal! Very Happy
Marmeladenglas
komme zurecht


Verfasst am:
12. Apr 2009, 15:56
Rufname:


AW: Liste mit Aktivitäten --> Errechnen der benötigten Ze - AW: Liste mit Aktivitäten --> Errechnen der benötigten Ze

Nach oben
       Version: Office 2007

Hi,
Über Namen hier zu filtern, halte ich für keine präzise Lösung, noch dazu mit einem Joker.
D.h. es werden dir alle DS durcheinander aufsummiert, solange der erste Teil des Kriteriums übereinstimmt. D.h. ein Mayer-Müller wird mit den Datensätzen Mayer-Schulze verwurschtelt. Sowas sollte man über einen eindeutigen Index machen, in der Regel über einen Autowert.
Ich kenn deine Original-DB nicht, aber in deiner bisherigen Beschreibung war lediglich eine VorgangsNR beschrieben, jedoch kein Vorgangsname. Sollte dieser Vorgangsname einem Kundennamen entsprechen, würde ich raten den Kd. einen Autowert-Index zu verpassen und auch hierüber zu filtern - das ist dann eindeutig.
Bzgl. Joker:
Auch unter A2007 sollte das funktionieren. In der Entwurfsansicht einer Abfrage wäre das Like "Maier*" bzw. eingedeutscht Wie "Maier*"
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Werte aus 2 Tabellen vergleichen und differenz errechnen 0 andreas k 1191 27. Jan 2009, 11:48
andreas k Werte aus 2 Tabellen vergleichen und differenz errechnen
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage nach bestimmter Zeit automatisch wiederholen 4 andreczogalla 1296 14. Jan 2009, 17:10
andreczogalla Abfrage nach bestimmter Zeit automatisch wiederholen
Keine neuen Beiträge Access Tabellen & Abfragen: Liste in einer Spalte zurückgeben??? 2 RBX32 286 15. Nov 2008, 22:00
Willi Wipp Liste in einer Spalte zurückgeben???
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage: Eintrag 8 von 10 Tage in Liste ausgeben lassen 0 eXplicit 396 04. Nov 2008, 08:52
eXplicit Abfrage: Eintrag 8 von 10 Tage in Liste ausgeben lassen
Keine neuen Beiträge Access Tabellen & Abfragen: Spalte "Zeit" als Primärschlüssel verwenden? 7 echium 1599 22. Okt 2008, 18:53
KlausMz Spalte "Zeit" als Primärschlüssel verwenden?
Keine neuen Beiträge Access Tabellen & Abfragen: Zeit über 24 Stunden Berechnen 1 Luda 993 15. Sep 2008, 11:25
JörgG Zeit über 24 Stunden Berechnen
Keine neuen Beiträge Access Tabellen & Abfragen: Abfragen - Liste ab heutigem Datum 12 Gast 2014 15. Jul 2008, 16:11
Gast Abfragen - Liste ab heutigem Datum
Keine neuen Beiträge Access Tabellen & Abfragen: Ausgabe der Zeit bei Typenwechsel 0 speedy0308 282 03. Apr 2008, 13:53
speedy0308 Ausgabe der Zeit bei Typenwechsel
Keine neuen Beiträge Access Tabellen & Abfragen: Gesamtbetrag errechnen und formatieren. 2 Seach 596 11. Feb 2008, 12:35
Seach Gesamtbetrag errechnen und formatieren.
Keine neuen Beiträge Access Tabellen & Abfragen: Durchschnitt von Zeitdauer errechnen (falsches Format) 4 pali 693 28. Aug 2007, 15:34
Gast Durchschnitt von Zeitdauer errechnen (falsches Format)
Keine neuen Beiträge Access Tabellen & Abfragen: Differenz fortlaufender Einträge in einer Abfrage errechnen 7 Snoopy79 805 17. Apr 2007, 08:50
blicki Differenz fortlaufender Einträge in einer Abfrage errechnen
Keine neuen Beiträge Access Tabellen & Abfragen: Feldtyp Text > Datum/Uhrzeit und Alter Errechnen 1 harto69 909 03. Apr 2007, 18:00
Nouba Feldtyp Text > Datum/Uhrzeit und Alter Errechnen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft-Excel Diagramme