![]() |
Grosses Problem mit Datum/Zeit in Access
Hallo zusammen,
ich hab ein riesen Problem und komme einfach nicht weiter! Also von vorne: Ich habe eine Access 2003 mdb Datenbank in der ich eine Spalte habe die sich "Datum" nennt und vom Typ Datum/Zeit ist. In Delphi benutze ich ADOConnection, ADODataset und die JetEngine 4.0 um darauf zu zu greifen. Bis jetzt war es auch nir ein Problem aber ich hatte bis Dato immer Text Felder in Access. Jetzt muss es aber ein Datum/Zeit Feld sein. In diesem Datum/Zeit Feld in Access steht jetzt z.B. : 28.12.2004 12:30 Wie kann ich jetzt ein select auf dieses Feld mit dem Datum und der Uhrzeit machen?
Code:
funktioniert aber da hab ich ja die Uhrzeit noch nicht drin. Wenn ich jetzt
SELECT * From Tabelle where Datum = #28.12.2004#
Code:
mache dann sagt er mir das ADODataset dieses Punkten Schrägstriche eingefügt das Datum Amerikanisch geschrieben...alles geht solange ich nicht die Uhrzeit dahinter schreibe. Aber ich muss diese mit abfragen.
SELECT * From Tabelle where Datum = #28.12.2004 12:30#
Kann mir jemand dabei helfen? Wäre echt Klasse...muss das bis Dienstag gelöst haben... Vielen Dank dragi |
Re: Grosses Problem mit Datum/Zeit in Access
Hallo dragi,
indem Du auf >= und <= abfragst
Code:
Versuch es mal so.
SELECT * From Tabelle where Datum >= #28.12.2004# and Datum <= #28.12.2004#
Bye Claus |
Re: Grosses Problem mit Datum/Zeit in Access
Das funktioniert ja, aber so hab ich die Zeit in dem Feld nicht abgefragt. Es gibt mehrere Datensätze am 28.12.2204 aber mit einer anderen Uhrzeit dahinter. Deshalb muss ich die Uhrzeit ja mit abfragen. ALso irgendwie #28.12.2004 12:30# was aber so geschrieben nicht funktioniert :(
Ich hab das SELECT Statement nur etwas kürzer geschrieben, ich frage es so ab wie du. Wollte es für den Thread nur auf das wesentliche begrenzen, also wie man Datum Uhrzeit aus einem Feld abfragt...hätte ich vielleicht dazu schreiben sollen, sorry Dragi |
Re: Grosses Problem mit Datum/Zeit in Access
Hi!
Weiß nicht, ob das so geht, aber wie wäre es mit einem TimeStamp? Ciao Frederic |
Re: Grosses Problem mit Datum/Zeit in Access
Hallo dragi,
und wenn Du anstatt von "#28.12.2004 12:30#" "#28.12.2004 12:30:00#" angibst. bye Claus |
Re: Grosses Problem mit Datum/Zeit in Access
Dann kommt die gleiche Meldung mit der gechlossenen Datenmenge. Ich hab das Gefühl er stört dich an dem leerzeichen zwischen den beiden...ich verzweifel gerade. Sitz schon seit 2 Tagen an dem Teil...Puhhh
|
Re: Grosses Problem mit Datum/Zeit in Access
Hallo dragi,
so eine Abfrage generiert Access selber SELECT * FROM Test WHERE (((Test.Datum)=#12/28/2004 12:20:0#)); bye Claus |
Re: Grosses Problem mit Datum/Zeit in Access
Das werd ich jetzt mal probieren. Danle und ich meld mich dann gleich nochmal und berichte ob es klappt!
Danke Dragi |
Re: Grosses Problem mit Datum/Zeit in Access
Liste der Anhänge anzeigen (Anzahl: 1)
So, da bin ich wieder. Es klappt trotzdem nicht. Ich habe nun folgenden testaufbau:
eine db1.mdb in der sich eine Tabelle1 befindet mit den Feldern ID (AutoWert), Datum(FDatum/Zeit) und Text (Text). Ein Datensatz ist angelegt : 1, 17.12.2004 08:30, Hallo Auf meinem Formular ist ein Button, ein Edit1 , eine ADOConnection und ein ADODataset1. folgenden Code dazu:
Code:
und bei Button1Click kommt folgende Exception (siehe Anhang)
unit frm_STMain;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ADODB, Db, StdCtrls; type TForm1 = class(TForm) Button1: TButton; ADOConnection1: TADOConnection; ADODataSet1: TADODataSet; ADOQuery1: TADOQuery; Edit1: TEdit; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source= D:\Ausbildung\Projekte\Delphi\SQLTest\db1.mdb'; ADOConnection1.Connected := true; end; procedure TForm1.Button1Click(Sender: TObject); begin with Form1.ADODataset1 do begin Close; CommandText:= 'SELECT * FROM Tabelle1 WHERE (((Tabelle1.Datum) = #12/17/2004 08:30:0#))'; Open; end; Edit1.Text := ADODataSet1.FieldByName('Text').AsString; end; end. Ich hab auch schon die Klammern weggelassen und auch nur das Tabelle1.Datum in Klammern gesetzt. Trotzdem kein Erfolg. Kann es mit dem Jet4.0 zusammen hängen? Gruss Dragi |
Re: Grosses Problem mit Datum/Zeit in Access
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo dragi
Also die Lösung steht ![]() Der Grund, warum es nicht funktioniert ist, daß man bei Verwendung von ADO das Datumsfeld als Double und im amerikanischen Dezimalformat als String übergeben muß. Ich habe mir zur Demonstration aus dem obigen Beitrag 2 Funktionen mal ausgeliehen und daraus eine kleine Demo gemacht. Dann wird es für Dich einfacher es zu verstehen. bye Claus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz