Guten Tag und Servus!
Ich versuche schon seit ner Woche ne plausible Lösung zu finden, leider sind meine Ergebnisse weder plausibel noch erfolgreich.
Ich dachte nach dem ich dutzende verschiedene Sql Abfragen verschiedenster Art in meinem Programm seit Jahren verwende, ich komme damit zurecht, tja wohl doch nicht, und was ich hier und anderswo so fand, half auch nicht, leider.
Ausgangspunkt ist dieser: Eine Accessdatenbank "RECHNUNGEN" in der unter anderem ein Datenfeld "DATUM" das beim Eintrag aktuelle Datum mit Uhrzeit , im Format <18.09.2012 08:47:33>,erfasst, Datentyp in Access>Datum,
ein anderes "REFERENZ", das den Datentyp Text hat, in dem aber auch in bestimmten Fällen ein Datum drinn steht,beispielsweise wenn die Rechnungen letztes Mal auf Bezahlung geprüft wurden, natürlich steht dann, wenn ich diese Abfrage mache auch eines drinn.
Die hole ich mir dann aus der Datenbank und weise sie Variablen zu.....
Dim vondatumstr As String = "#" & (Format(CDate(ds.Tables(Rechnung).Rows( _
u).Item("Referenz")), "MM/dd/yyyy H:mm:ss").Replace(".", "/")) & "# Dim bisdatumstr As String = "#" & (Format(ds.Tables(Rechnung).Rows(u).Item( _
"Datum"), "MM/dd/yyyy H:mm:ss").Replace(".", "/")) & "#" Ich mache jetzt die Abfrage wie folgt....
sql =
"Select sum (gesamtpreis) as gesamtpreis,sum(menge) as menge, from Rechnung" & _
"where KdNR='" & kundennummertemp & "'and Format(Datum),'MM/dd/yyyy H:mm:ss')" & _
">" & vondatumstr & "" Ich möchte jetzt also die Summe der Rechnungsbeträge der Rechnungen ab diesem Zeitpunkt pro Kunde. Meistens sind diese Einträge vom selben Tag, die Uhrzeit ist also durchaus relevant. Das Ergbnis ist leider immer,
dass auch die Einträge vor diesem Referenzdatum mit addiert werden. Die Formatumwandlung ist doch korrekt?! ergibt #09/18/2012 08:47:33# ...oder ist H:mm:ss falsch? Leider nichts dazu gefunden!
Der andere Ansatz, wäre die elegantere, sicherere Lösung mit der where ...between Abfrage?!
sql =
"Select sum (gesamtpreis) as gesamtpreis,sum(menge) as menge, from Rechnung" & _
"where KdNR='" & kundennummertemp & "'and Format(Datum,'MM/dd/yyyy H:mm:ss'))" & _
"between'" & vondatumstr & "'and'" & bisdatumstr & "" Da kriege ich leider einen Syntaxfehler und ich bin nicht im Stande ihn zu erkennen, hundertmal geändert und versucht, obwohl wenn das obige kein korrektes Ergebnis liefert wird sich auch mit dem between nicht ändern, vermute ich.
Fehler
Syntaxfehler in Zeichenfolge in Abfrageausdruck 'KdNR='2'and Format(Datum,'MM/dd/yyyy H:mm:ss')) between'#08/28/2012 21:49:28#'and'#08/30/2012 20:40:36#'.
Ich bin der Verzweiflung nahe, ich weiß schon warum ich mich gegen diese Datumsabfragen immer gewehrt habe und nie verwendet, jetzt komme ich nicht mehr drumm rum . Muss doch machbar sein, gibts doch nicht,so blöd kann ich nicht sein?!
Für eine kleine Unterstützung und Hilfe wäre ich echt Mega Dankbar! Hoffe es war verständlich.
Grüße
Michael |