Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Zeitdifferenz berechnen
zurück: Anfügeabfrage fügt Werte nicht hinzu weiter: Parametereingabe Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Iron
Anfänger


Verfasst am:
24. Jun 2005, 09:45
Rufname:

Zeitdifferenz berechnen - Zeitdifferenz berechnen

Nach oben
       

Hallo Leute,

ich habe ein Problem mit der Berechnung von Zeitdifferenzen zwischen zwei DS in Access XP.
Habe im Forum schon verschiedene Beiträge gelesen komme aber zu keinem Ergebnis.
Ich habe eine Tabelle mit den Spalten lfd; ID; Zeit:

lfd---ID-----Zeit
2----25---10:12:15
5----25---10:20:30
8----25---12:10:45
usw.
in einer zusätzlichen Spalte sollten die Rundenzeiten (Zeitdifferenz zwischen den einzelnen Datensätzen) ausgewiesen werden.

Die Tabelle sollte wie folgt aussehen:
lfd----ID-------Zeit------Rundenzeit
2------25---10:12:15
5------25---10:20:30----00:08:15
8------25---12:10:45----02:50:15
usw.

Wie kann man dies bewerkstelligen.

Danke für Eure Hilfe!
KirstenS
VBA- und SQL-Programmierer


Verfasst am:
24. Jun 2005, 10:09
Rufname:


AW: Zeitdifferenz berechnen - AW: Zeitdifferenz berechnen

Nach oben
       

Hallo Iron,

schreib dir eine Funktion:
Code:
Function Rundenzeit(lfn%, Zeit As Date) As Date
    Dim tmp%, tmp2 As Date
    Dim x As New ADODB.Recordset
   
    x.Open "SELECT Max(lfd) AS lfd FROM Tabelle1 WHERE lfd < " & lfn, _
           CurrentProject.Connection, adOpenStatic, adLockReadOnly
    If IsNull(x!lfd) Then 'kein Datensatz davor vorhanden
        Rundenzeit = 0
      Else
        tmp = x!lfd
        Set x = Nothing
        x.Open "SELECT Zeit FROM Tabelle1 WHERE lfd = " & tmp, _
               CurrentProject.Connection, adOpenStatic, adLockReadOnly
        Rundenzeit = Zeit - x!Zeit
    End If
    Set x = Nothing
End Function
und dann eine Abfrage
Code:
SELECT lfd, Zeit, Rundenzeit(lfd, Zeit) AS Rundenzeit
FROM Tabelle1;

Gruß Kirsten
Iron
Anfänger


Verfasst am:
24. Jun 2005, 11:57
Rufname:

AW: Zeitdifferenz berechnen - AW: Zeitdifferenz berechnen

Nach oben
       

Hallo Kirsten,

Danke für die schnelle Antwort.
Aber als Anfänger muss ich noch mal dumm nachfragen.

Wo schreibe ich die Funktion rein.
KirstenS
VBA- und SQL-Programmierer


Verfasst am:
24. Jun 2005, 11:58
Rufname:

AW: Zeitdifferenz berechnen - AW: Zeitdifferenz berechnen

Nach oben
       

Hallo Iron,

erstell dir einfach ein neues Modul in deiner Datenbank und schreibe den Code da rein.

Gruß Kirsten
Iron
Anfänger


Verfasst am:
24. Jun 2005, 12:04
Rufname:


AW: Zeitdifferenz berechnen - AW: Zeitdifferenz berechnen

Nach oben
       

Hallo Kirsten,

habe ich versucht.

Beim Speichern bekomme ich die Fehlermeldung "Ausdruck syntaktisch falsch". (Sie haben möglicherweise einen Operanden, aber keinen Operator.)

Gruss Iron
KirstenS
VBA- und SQL-Programmierer


Verfasst am:
24. Jun 2005, 12:11
Rufname:

AW: Zeitdifferenz berechnen - AW: Zeitdifferenz berechnen

Nach oben
       

Hallo Iron,

bei mir funktioniert es. Du musst im Code natürlich Tabelle1 durch deinen Tabellennamen ersetzen.

Hast du mal getestet, ob die Funktion (ohne die Abfrage) funktioniert? Du kannst z.B. ein leeres Formular erstellen mit einer Befehlsschaltfläche, hinter der du die Funktion aufrufst.

Sonst poste mal deinen genauen Code.

Gruß Kirsten
Iron
Anfänger


Verfasst am:
24. Jun 2005, 13:01
Rufname:

AW: Zeitdifferenz berechnen - AW: Zeitdifferenz berechnen

Nach oben
       

Hallo Kirsten,

vielen Dank für die schnelle Hilfe es funktioniert, ich habe nur ein kleines Problem endeckt.
Du beziehst Dich bei dem Code auf die "lfd" und gehst davon aus das diese aufsteigend ist, es kann aber sein das die "lfd" nicht aufsteigend ist.
Ich müsste die "lfd" in der Tabelle neu nummerieren, wie geht das?

Gruss Iron
KirstenS
VBA- und SQL-Programmierer


Verfasst am:
24. Jun 2005, 13:40
Rufname:

AW: Zeitdifferenz berechnen - AW: Zeitdifferenz berechnen

Nach oben
       

Hallo Iron,

wenn die lfd nicht aufsteigend ist, nach welchem Kriterium sortierst du dann???

Falls du nach der Zeit sortierst, geht das Ganze ja noch viel einfacher:
Code:
Function Rundenzeit(Zeit As Date) As Date
    Dim x As New ADODB.Recordset
   
    x.Open "SELECT Max(Zeit) AS Zeit FROM Tabelle1 WHERE Zeit < '" & Zeit & "'", _
           CurrentProject.Connection, adOpenStatic, adLockReadOnly
    If IsNull(x!Zeit) Then 'kein Datensatz davor vorhanden
        Rundenzeit = 0
      Else
        Rundenzeit = Zeit - x!Zeit
    End If
    Set x = Nothing
End Function

Du musst dann in deiner Abfrage natürlich den 1. Parameter lfn weglassen.

Gruß Kirsten
Iron
Anfänger


Verfasst am:
24. Jun 2005, 13:59
Rufname:

AW: Zeitdifferenz berechnen - AW: Zeitdifferenz berechnen

Nach oben
       

Hallo Kirsten,

es wird die Zeit aufsteigend sortiert, die "lfd" ist eigendlich nur beiwerk
Den Code habe ich ins Modul eingetragen.
Die Abfrage habe ich wie folgt geändert:
Code:
SELECT Zeit, Rundenzeit(Zeit) AS Rundenzeit
FROM Zähler;

Wenn ich die Abfrage ausführe kommt Fehler "Name nicht eindeutig. in Abfrageausdruck 'Rundenzeit(Zeit)' "

Gruss Iron
KirstenS
VBA- und SQL-Programmierer


Verfasst am:
24. Jun 2005, 14:10
Rufname:

AW: Zeitdifferenz berechnen - AW: Zeitdifferenz berechnen

Nach oben
       

Hallo Iron,

sorry, ich hatte das timevalue vergessen.

Versuch es hiermit:
Code:
Function Rundenzeit(Zeit As Date) As Date
    Dim x As New ADODB.Recordset
   
    x.Open "SELECT Max(Zeit) AS Zeit FROM Tabelle1 WHERE Zeit < timevalue('" & _
        Zeit & "')", CurrentProject.Connection, adOpenStatic, adLockReadOnly
    If IsNull(x!Zeit) Then 'kein Datensatz davor vorhanden
        Rundenzeit = 0
      Else
        Rundenzeit = Zeit - x!Zeit
    End If
    Set x = Nothing
End Function

Gruß Kirsten
Iron
Anfänger


Verfasst am:
24. Jun 2005, 14:16
Rufname:

AW: Zeitdifferenz berechnen - AW: Zeitdifferenz berechnen

Nach oben
       

Hallo Kirsten,

schade bringt noch den selben Fehler.

Gruss Iron
KirstenS
VBA- und SQL-Programmierer


Verfasst am:
24. Jun 2005, 15:59
Rufname:

AW: Zeitdifferenz berechnen - AW: Zeitdifferenz berechnen

Nach oben
       

Hallo Iron,

läuft bei mir ohne Probleme.

Denk dran, dass du Tabelle1 durch deinen Tabellennamen ersetzen musst!

Versuch mal, die Funktion ohne die Abfrage laufen zu lassen.

Gruß Kirsten
KirstenS
VBA- und SQL-Programmierer


Verfasst am:
24. Jun 2005, 16:14
Rufname:

AW: Zeitdifferenz berechnen - AW: Zeitdifferenz berechnen

Nach oben
       

Noch eine Idee: wenn Access meckert, der Name sei nicht eindeutig, hast du vielleicht die alte Funktion nicht gelöscht und das Programm weiß nicht, welche der beiden Funktionen Rundenzeit es verwenden soll?

Gruß Kirsten
Iron
Anfänger


Verfasst am:
06. Mai 2007, 16:42
Rufname:


Zeitdifferenz berechnen-nachgefragt - Zeitdifferenz berechnen-nachgefragt

Nach oben
       Version: Office XP (2002)

Hallo Kirsten,

Danke für Deine Hilfe, funktioniert einwandfrei.
Hatte noch Probleme mit Datentypen.

Wünsche schönen Tag.

Gruss Iron
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: Tabelle berechnen und aktualisieren 12 Heiner99 3132 21. Feb 2008, 01:34
Willi Wipp Tabelle berechnen und aktualisieren
Keine neuen Beiträge Access Tabellen & Abfragen: Daten berechnen.... 2 SzP/TEF13 385 08. Feb 2008, 15:46
SzP/TEF13 Daten berechnen....
Keine neuen Beiträge Access Tabellen & Abfragen: Netto aus Brutto berechnen MWST undterschiedliche Werte 1 adamth 9992 08. Feb 2008, 10:13
Marmeladenglas Netto aus Brutto berechnen MWST undterschiedliche Werte
Keine neuen Beiträge Access Tabellen & Abfragen: Zeitdifferenz über 24 Stunden 1 dendro 1414 04. Sep 2007, 12:28
dendro Zeitdifferenz über 24 Stunden
Keine neuen Beiträge Access Tabellen & Abfragen: Datensätze berechnen 0 adiiiii 374 22. Aug 2007, 10:23
adiiiii Datensätze berechnen
Keine neuen Beiträge Access Tabellen & Abfragen: SQL leere Felder als null berechnen 2 Graf_bubu 2520 10. Jan 2007, 10:36
Graf_bubu SQL leere Felder als null berechnen
Keine neuen Beiträge Access Tabellen & Abfragen: Alter berechnen 2 dennis77 10719 11. Dez 2006, 15:50
dennis77 Alter berechnen
Keine neuen Beiträge Access Tabellen & Abfragen: SQL Abfrage - Wert berechnen aus vorhergehender Zeile 5 Hackepeter 2702 01. Dez 2006, 12:59
Willi Wipp SQL Abfrage - Wert berechnen aus vorhergehender Zeile
Keine neuen Beiträge Access Tabellen & Abfragen: Formel in Datensatz speichern und diese berechnen 5 chrispx 3116 18. Jul 2006, 20:15
Nouba Formel in Datensatz speichern und diese berechnen
Keine neuen Beiträge Access Tabellen & Abfragen: Werte summieren & Quoten berechnen 7 SCG_Shadow 4929 07. Jul 2006, 14:30
rita2008 Werte summieren & Quoten berechnen
Keine neuen Beiträge Access Tabellen & Abfragen: Zeit berechnen??? 3 Sleepy30 1386 22. März 2006, 18:22
Nouba Zeit berechnen???
Keine neuen Beiträge Access Tabellen & Abfragen: Rabatt in Tabelle berechnen 1 domi1985 1706 23. Nov 2005, 09:08
blicki Rabatt in Tabelle berechnen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: HTML Editor Forum