Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

DateTime VB.Net und Access

70 views
Skip to first unread message

Thomas Ritter

unread,
Jan 16, 2004, 2:01:19 PM1/16/04
to
Hallo,

unlösbares Problem?

Access-Datenbank, zwei Felder als Time-Felder
eingerichtet.

VB.Net = connect - oledbadapter - dataset - Tabelle
dataset.fill - alles OK?
nein: Zeitfelder werden in der DBGrid mit Datum und Zeit
angezeigt
(könnte man Formatieren, kein Problem)
nun ändere ich die Zeit in der DBGrid und führe ein
Dataset.update durch.
In meiner Access-Datenbank steht danach immer 00:00:00.
das gleiche passiert mir, wenn ich einen DateTimePicker
nehme, ihn als Time konfiguriere.

Ich habe es mit allen Möglichkeiten versucht - keine Func

Wer weis abhilfe?

mfg
Thomas

P.S.:
Jeder kann dies ganz einfach nachvollziehen.
Erstellt einmal eine Access-Datenbank mit einer Tabelle.
erstellt einfach ein Feld ID (Schlüssel und Autowert) ein
Feld Datum/Zeit, Format Zeit24 oder oder.
Erstellt unter VB.Net eine neue Anwendung.
geht unter 'Projekt - Window - Form hinzufügen' wählt
Dataform-Assistent und erstellt mit der Access-Tabelle ein
Dataform mit Anzeige in einer Tabelle.

Gebt in der Access-Tabelle im Feld Zeit einen Wert ein und
startet den VB.Net-Code.

Wie Ihr seht, Zeigt Eure Tabelle in dem Feld Zeit den
Wert '15.01.2004 22:00:00'

soweit - so gut

jetzt ändert Ihr den Wert im Feld Zeit wie Ihr wollt,
klickt auf 'aktualisieren' und schaut in der Access-
Tabelle nach.

OHHHHH, so ein MiSt, da steht 00:00:00!!!!

wo ist die Zeit geblieben?????

Ändert die Formatierung in der Access-Tabelle wie Ihr
wollt, in Dateshot, Datelong, Timeshot, TimeLong egal,
VB.Net vergisst die Zeit!!!


Peter Fleischer

unread,
Jan 16, 2004, 2:55:57 PM1/16/04
to
Thomas Ritter wrote:
...

> In meiner Access-Datenbank steht danach immer 00:00:00.
> das gleiche passiert mir, wenn ich einen DateTimePicker
> nehme, ihn als Time konfiguriere.
...

Thomas,
ohne den Designer mit ein paar Befehlen und dem DataGrid kann ich dein
Problem nicht reproduzieren (VB 2003, WXP, MDAC2.8, Jet40SP7).

Peter

Thomas Ritter

unread,
Jan 18, 2004, 5:18:13 AM1/18/04
to

>-----Originalnachricht-----

>Hallo,
>
>unlösbares Problem?
>
>Access-Datenbank, zwei Felder als Time-Felder
>eingerichtet.
>P.S.:
>Jeder kann dies ganz einfach nachvollziehen.
>Erstellt einmal eine Access-Datenbank mit einer Tabelle.
>erstellt einfach ein Feld ID (Schlüssel und Autowert) ein
>Feld Datum/Zeit, Format Zeit24 oder oder.

Hallo Peter,

anbei einen klenen Code, gibt man in der Tabelle eine
gültige Zeit ein und startet den Code, erscheint nur ein
Datum.

Dim Connstring As String
= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Test.mdb"
'Test.mdb mit Tabelle Timetest bestehend aus
ID,Timevon,Timebis; Format Datum/Zeit - Timelong '00:00:00'

Dim sql = "select * from TimeTest"
Dim conn As New OleDb.OleDbConnection(Connstring)
Dim ds As DataSet = New DataSet
Dim da As OleDb.OleDbDataAdapter = New
OleDb.OleDbDataAdapter(sql, conn)
Dim cb As OleDb.OleDbCommandBuilder = New
OleDb.OleDbCommandBuilder(da)

conn.Open()
da.Fill(ds, "TimeTest")
Me.DataGrid.DataSource = ds.Tables("TimeTest")
conn.Close()

mfg
Thomas

Armin Zingler

unread,
Jan 18, 2004, 5:42:50 AM1/18/04
to
"Thomas Ritter" <in...@riro-shop.de> schrieb

anbei einen klenen Code, gibt man in der Tabelle eine
gültige Zeit ein und startet den Code, erscheint nur ein
Datum.

========

Im Datagrid erscheint bei mir auch nur das Datum, nicht die Zeit. Wenn ich
aber einen TableStyle hinzufüge und für die Spalte als Format dd.MM.yyyy
HH:mm:ss angeben, wird auch die Zeit angezeigt.


--
Armin

Peter Fleischer

unread,
Jan 18, 2004, 5:49:17 AM1/18/04
to
Thomas Ritter wrote:
...

> anbei einen klenen Code, gibt man in der Tabelle eine
> gültige Zeit ein und startet den Code, erscheint nur ein
> Datum.
...

Thomas,
in deinem Codeausschnitt ist nur die Anzeige, die standardmäßig nur das
Datum anzeigt. In der Datenbank steht gatanrtiert noch die Zeit, die durch
deinen Codeschnipsel nicht geändert wird. Zur vollen Anzaeige des Datums und
der Zeit kannst du Armins Rat befolgen oder einfach eine Format-Funktion in
den SQL-String integrieren.

Peter

Info

unread,
Jan 18, 2004, 5:50:56 AM1/18/04
to

"Armin Zingler" <az.n...@freenet.de> schrieb im Newsbeitrag
news:uJcIh$a3DH...@TK2MSFTNGP11.phx.gbl...

Hallo Armin,

das ist ja alles OK, aber hast Du auch versucht, über die Datagrid die Zeit
zu ändern und das Dataset zu updaten? Da liegt nämlich mein Problem, nach
dem Update steht in der Access-Tables nur '00:00:00'

mfg
Thomas

Peter Fleischer

unread,
Jan 18, 2004, 6:07:42 AM1/18/04
to
Info wrote:
...

>> Im Datagrid erscheint bei mir auch nur das Datum, nicht die Zeit.
>> Wenn ich aber einen TableStyle hinzufüge und für die Spalte als
>> Format dd.MM.yyyy HH:mm:ss angeben, wird auch die Zeit angezeigt.
...

> das ist ja alles OK, aber hast Du auch versucht, über die Datagrid
> die Zeit zu ändern und das Dataset zu updaten? Da liegt nämlich mein
> Problem, nach dem Update steht in der Access-Tables nur '00:00:00'

Thomas,
ich wiederhole: ohne den Designer mit ein paar Befehlen und dem DataGrid

Thomas Ritter

unread,
Jan 18, 2004, 6:19:57 AM1/18/04
to

>-----Originalnachricht-----
>Hallo,
>
>unlösbares Problem?
>

NEIN!!!
Vielen Dank an Perter und Armin.

Die Diskussion hat mir auf die Schliche geholfen.
den TablesStyle in der Datagrid und die Formatierung in
der Access-Datenbank -GLEICH- setzen und dann funct auch
das Dataset-Update.

Hab mir sehr geholfen.

mfg
Thomas

Armin Zingler

unread,
Jan 18, 2004, 6:19:52 AM1/18/04
to
"Info" <in...@riro-shop.de> schrieb

> das ist ja alles OK, aber hast Du auch versucht, über die Datagrid
> die Zeit zu ändern und das Dataset zu updaten? Da liegt nämlich mein
> Problem, nach dem Update steht in der Access-Tables nur '00:00:00'


Ja natürlich, wenn im Datagrid keine Zeit steht, dann fehlt die Zeitangabe
und beim Update auf die Datenbank fehlt sie auch in der Datenbank. Ok, wenn
ich die Zeitangabe im Datagrid ändere und auf Aktualisieren klicke, bekomme
ich "Parallelitätsverletzung : Der UpdateCommand hat sich auf 0 Datensätze
ausgewirkt.". Ein PK ist gesetzt. Der Fehler kommt mit und ohne Tablestyles.


--
Armin

Armin Zingler

unread,
Jan 18, 2004, 7:20:48 AM1/18/04
to
"Thomas Ritter" <in...@riro-shop.de> schrieb

> Die Diskussion hat mir auf die Schliche geholfen.
> den TablesStyle in der Datagrid und die Formatierung in
> der Access-Datenbank -GLEICH- setzen und dann funct auch
> das Dataset-Update.

"Formatierung in der Access-Datenbank"? Das Format ist für dein Programm
irrelevant. Welche Einstellung Access verwendet, um *in Access* Daten
anzuzeigen, hat nichts mit deinem Programm zu tun. Mit welchem Format du die
Daten anzeigen willst, kannst/musst du schon selbst bestimmen.

> Hab mir sehr geholfen.

Schön für dich. ;-)


--
Armin

Peter Fleischer

unread,
Jan 18, 2004, 7:33:15 AM1/18/04
to

Armin,
ich kann eure Probleme nicht nachvollziehen. Wenn ich im DataGrid nur Datum
anzeigen lasse, dann wird eine Eingabe nur eines Datuns natürlich mit 0 Uhr
in die Datenbank eingetragen. Wenn ich ein Datum mit Uhrzeit eintrage, wird
zwar nur das Datum angezeigt, die Uhrzeit wird aber trotzdem in der
Datenbank abgelegt. Das Gleiche passiert bei Anzeige mit Uhrzeit.

Komplizierter wird es, wenn ein Feld an mehrere Controls gebunden ist, und
diese Controls alle ändern dürfen.

Peter

Andreas Sahlmann

unread,
Jan 20, 2004, 5:39:28 AM1/20/04
to
Hallo NG,

lese gerade die Anfrage von Thomas. Ich habe lange Zeit
mit dem gleichen Problem gekämpft und bin auf
folgende 'Lösung' (?) gekommen:

Wenn man über den Designer die entsprechenden Update-,
Insert-, ... erzeugen lässt, ordnet der Designer den
Datum/Zeit-Felder von Access den Typ 'DateTime' zu.

Man findet im Code immer wieder folgende Codeteile
... System.Data.OleDb.OleDbType.DateTime ...

Sobald man 'DateTime' durch ein einfaches 'Date' ersetzt,
funktioniert die Kommunikation zwischen VB und Access
einwandfrei. Für Programmierer, die nicht mit den
Designern arbeiten, taucht diese Problem vermutlich nicht
auf. Wer programmiert schon von Hand die vom Designer
umfangreich erstellten Commands. In der Regel reicht doch
das Auffinden des entsprechenden Datensatzes über ein
Schlüsselfeld?! Fast alles andere ist doch Ballast?

Ist das nachvollziehbar?


Gruß

Andreas

Info

unread,
Jan 20, 2004, 11:26:20 AM1/20/04
to
Hallo Armin,

DU hast mein Problem erkannt, genau das war's.
habe das ganze Problem umgangen, in dem ich Deinen Rat befolgt habe, und
eine Formatierung in der SQL-Abfrage ('HH:mm:ss') vorgenommen habe.
Jetzt haben wird das 'fast unlösbare' Problem gelöst.
würde sagen, hier besteht noch Verbesserungsbedarf seitens MS.

Mfg
Thomas

"Armin Zingler" <az.n...@freenet.de> schrieb im Newsbeitrag

news:unXF#ub3DH...@TK2MSFTNGP12.phx.gbl...

Info

unread,
Jan 20, 2004, 11:32:08 AM1/20/04
to
Hallo Andreas,

wunderbar auf den Punkt gebracht!

mfg
Thomas

"Andreas Sahlmann" <Andreas....@t-online.de> schrieb im Newsbeitrag
news:076601c3df41$ae3a7200$a301...@phx.gbl...

0 new messages