Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
SQL-Abfrage mit dynamischem Datum
zurück: Ausgabe limitieren weiter: Probleme mit Datumswechsel von Jahr 2003 auf 2004 Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Offen Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
TomFHM
Neuling


Verfasst am:
03. Jan 2004, 16:29
Rufname:

SQL-Abfrage mit dynamischem Datum - SQL-Abfrage mit dynamischem Datum

Nach oben
       

Hallihallo!


Eigentlich sollte die Abfrage ganz einfach sein, da ich nur alle Datensätze eines bestimmten Datums haben will. Die 3 Versionen weiter unten sind also das Argument der WHERE-Bedingung.


__Version 1:__
m.tagesdatum = #12/17/2003#

In dieser Form passts!





__Version 2:__
m.tagesdatum = fktGetDate()

Code:
Function fktGetDate()
    'Aktuelles Datum übergeben
    fktGetDate = Date
End Function


Das geht auch, macht die Abfrage aber E W I G langsam.





__Version 3:__
m.tagesdatum = fktGetDate2()

Code:
Function fktGetDate2()
    'Aktuelles Datum übergeben
    fktGetDate2 = "#" & Format(Date, "mm") & "/" & Format(Date, "dd") & "/" & Format(Date, "yyyy") & "#"
End Function


Hier kommt von Access die Meldung:
"Datentypen in Kritetienausdruck unverträglich."




Lass ich mir fktGetDate2() in einer MsgBox ausgeben, kommt #12/17/2003# raus!

Dynamisch muss es sein. Version 2 wäre auch OK, nur sitze ich da für eine Abfrage 5 Minuten dran, was 'normal' 5 Sec dauert...

Kann mir jemand helfen?

Vielen Dank

Schöne Grüße

Tom
marmic55
Im Profil kannst Du frei den Rang ändern


Verfasst am:
03. Jan 2004, 19:19
Rufname: Michael
Wohnort: Langenhagen


AW: SQL-Abfrage mit dynamischem Datum - AW: SQL-Abfrage mit dynamischem Datum

Nach oben
       

Hallo,

so kann ein Datum umgewandelt werden:


Code:
Function fktGetDate2()  As Date
Format(Date, "\#m\/d\/yyyy\#")
end function


Das aktuelle Datum kann aber auch direkt in der Abfrage (Kriterienzeile) abgefragt werden.

Hilfts weiter ?

Gruß

Michael
Gast



Verfasst am:
07. Jan 2004, 18:48
Rufname:

AW: SQL-Abfrage mit dynamischem Datum - AW: SQL-Abfrage mit dynamischem Datum

Nach oben
       

Hallihallo!

Also nochmal, diesmal ausführlicher. Smile

Ich habe eine SQL-Abfrage:

Code:
SELECT i.gesamt AS E465VO
FROM [SELECT SUM(m.istmenge) AS gesamt
    FROM TPMeldungMitLos m
    WHERE m.dlinie = '1' AND m.tagesdatum = [B]#1/6/2004# [/B]  AND m.fasl > '010' AND
    (m.meldungsart = 'I1' OR m.meldungsart = 'P1' OR m.meldungsart = 'R1' OR m.meldungsart = 'A1') AND m.tesl = '4533']. AS i;


Die funktioniert so. Der für mich wichtige Teil ist das #1/6/2004#.
Das änders sich nämlich täglich.

folgende Version geht NICHT:

Code:
SELECT i.gesamt AS E465VO
FROM [SELECT SUM(m.istmenge) AS gesamt
    FROM TPMeldungMitLos m
    WHERE m.dlinie = '1' AND m.tagesdatum = [B]fktGetDateEsprit()[/B]  AND m.fasl > '010' AND
    (m.meldungsart = 'I1' OR m.meldungsart = 'P1' OR m.meldungsart = 'R1' OR m.meldungsart = 'A1') AND m.tesl = '4533']. AS i;


Fehlermeldung: "Datentypen in Kriterienausdruck unverträglich."

Im Modul Global steht:

Code:
Global G_dateToday As Date
Global G_dateEsprit As Date

Function fktGetDateEsprit()
    'Aktuelles Datum und Esprit-Datum
    G_dateToday = Date
   
    If Day(G_dateToday) = 2 Then
        G_dateEsprit = G_dateToday - 2
    Else
        G_dateEsprit = G_dateToday - 1
    End If

    'Aktuelles Datum übergeben
    fktGetDateEsprit = Format(G_dateEsprit, "\#m\/d\/yyyy\#")
End Function


Lass ich mir den Wert der Funktion ausgeben
Code:
  MsgBox fktGetDateEsprit()

kommt #1/6/2004# raus, genau was ich brauche... Aber Access macht das nicht.

Was jedoch auch geht ist folgendes:

Code:
SELECT i.gesamt AS E465VO
FROM [SELECT SUM(m.istmenge) AS gesamt
    FROM TPMeldungMitLos m
    WHERE m.dlinie = '1' AND m.tagesdatum = [b]fktGetDateEsprit2()[/b] AND m.fasl > '010' AND
   (m.meldungsart = 'I1' OR m.meldungsart = 'P1' OR  m.meldungsart = 'R1' OR m.meldungsart = 'A1') AND m.tesl = '4533']. AS i;



Im Modul Global steht:

Code:
Global G_dateToday As Date
Global G_dateEsprit As Date

Function fktGetDateEsprit2()
    'Aktuelles Datum und Esprit-Datum
    G_dateToday = Date
   
    If Day(G_dateToday) = 2 Then
        G_dateEsprit = G_dateToday - 2
    Else
        G_dateEsprit = G_dateToday - 1
    End If

    'Aktuelles Datum übergeben
    fktGetDateEsprit2 = G_dateEsprit
End Function

Jedoch brauch die Abrfrage so ca. 40 Sekunden. Mit dem #1/6/2004# aber
nur 1 Sekunde.

Das ganze betrifft Access 2000.

Kann mir jemand helfen?

Vielen Dank & schöne Grüße

Tom
TomFHM
Neuling


Verfasst am:
15. Jan 2004, 20:04
Rufname:


AW: SQL-Abfrage mit dynamischem Datum - AW: SQL-Abfrage mit dynamischem Datum

Nach oben
       

Hallo!

Was ist denn los?

Ist die Frage schlecht und unverständlich? Ist sie zu leicht? Oder zu schwer?

Schöne Grüße

Tom
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: Datum im Formularkopf 6 didide 822 06. Jan 2005, 17:19
lothi Datum im Formularkopf
Keine neuen Beiträge Access Tabellen & Abfragen: in einer Wenn dann Funktion aufs Datum gruppieren 10 Gast 692 06. Jan 2005, 10:22
Skogafoss in einer Wenn dann Funktion aufs Datum gruppieren
Keine neuen Beiträge Access Tabellen & Abfragen: Datum und Uhrzeit automatisch speichern 3 peinberger 1120 30. Dez 2004, 10:33
mapet Datum und Uhrzeit automatisch speichern
Keine neuen Beiträge Access Tabellen & Abfragen: Alter auf Basis akt. Datum ausrechnen 2 jomei 1635 22. Dez 2004, 09:15
jomei Alter auf Basis akt. Datum ausrechnen
Keine neuen Beiträge Access Tabellen & Abfragen: Datum konvertieren 2 pad8626 1237 03. Dez 2004, 16:25
pad8626 Datum konvertieren
Keine neuen Beiträge Access Tabellen & Abfragen: Accessdaten Datum in Englischer Form in Serienbrief von Word 1 Hajo 1128 24. Nov 2004, 11:49
Gast Accessdaten Datum in Englischer Form in Serienbrief von Word
Keine neuen Beiträge Access Tabellen & Abfragen: Datum in Abfrage eingrenzen? 3 Gast 2564 06. Okt 2004, 12:33
Skogafoss Datum in Abfrage eingrenzen?
Keine neuen Beiträge Access Tabellen & Abfragen: Was mache ich da falsch? (SQL-Abfrage) 1 Chal 490 07. Sep 2004, 10:00
lothi Was mache ich da falsch? (SQL-Abfrage)
Keine neuen Beiträge Access Tabellen & Abfragen: Datum berechnen 1 kdl 1147 09. Aug 2004, 06:10
TommyK Datum berechnen
Keine neuen Beiträge Access Tabellen & Abfragen: datum in Tabelle nur nach Jahr & Monat filtern.....aber. 4 mirko 1237 20. Jul 2004, 12:03
mirko datum in Tabelle nur nach Jahr & Monat filtern.....aber.
Keine neuen Beiträge Access Tabellen & Abfragen: Bei Änderung eines Feldes in der Zeile Datum aktualisieren 16 Wickiman 1849 30. Jun 2004, 09:41
tocotronicx Bei Änderung eines Feldes in der Zeile Datum aktualisieren
Keine neuen Beiträge Access Tabellen & Abfragen: Strings als Datum konvertieren ? 8 leira 1230 29. Mai 2004, 12:46
leira Strings als Datum konvertieren ?
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Word Serienbriefe