Gast Geschrieben 3. Juni 2002 Geschrieben 3. Juni 2002 Guten Morgen zusammen, folgendes Problem mit Visual Basic: ich muss irgendwie das Systemdatumformat unter WinNT ändern können, dafür muss ich das Format einlesen können (habe ich schon realiesiert) und verändern (also z.B. von TT.MM.JJJJ nach JJJJ-MM-TT - noch NICH realisiert). Bräuche den Befehl unter VB (falls es sowas gibt) MfG LoneGunman Zitieren
Boro Geschrieben 3. Juni 2002 Geschrieben 3. Juni 2002 Hallo, Unter VB gibt es die Funktion Date die dass Systemdatum verändern kann. Ich hab dass bisher nur unter Win 9x gemacht, ich kann daher nicht garantieren dass es unter Win NT auch klappt, aber versuch es mal damit : Date = DD.MM.JJJJ Das Datum muss dabei korrekt sein, also nicht 31.02.2001 oder so was, da bekommst du eine Fehlermeldung. Soweit ich weiß kannst du auch andere Formate eingeben, zumindest alles was du mit FormatdateTime formatieren kannst. Solltest du übrigens immer zu einem bestimmten Datum zurück rechnen wollen dann kann ich dir dateAdd in Verbindung mit datediff empfehlen, mit Datediff ermittelst du die Differenz zwischen heute und dem Wunschdatum und mit Dateadd addierst du die negative Differenz zum aktuellen Datum hinzu. So long Feivel Zitieren
Gast Geschrieben 3. Juni 2002 Geschrieben 3. Juni 2002 Hmm, ich müsste aber das SystemdatumFORMAT aus VB heraus ändern. Also von TT.MM.JJJJ nach JJJJ-MM-TT. Ist im Prinzip dasselbe wie unter "Systemsteuerung" -> "Ländereinstellungen" -> "Datum" -> "Kurzes Datumsformat", nur halt aus VB heraus. Zitieren
Boro Geschrieben 3. Juni 2002 Geschrieben 3. Juni 2002 Original geschrieben von LoneGunman Hmm, ich müsste aber das SystemdatumFORMAT aus VB heraus ändern. Also von TT.MM.JJJJ nach JJJJ-MM-TT. Ist im Prinzip dasselbe wie unter "Systemsteuerung" -> "Ländereinstellungen" -> "Datum" -> "Kurzes Datumsformat", nur halt aus VB heraus. Hi ! Okay, dann hab ich deinen ersten Eintrag falsch verstanden. Also, mir fällt jetzt keine Funktion ein die eine Formatierung so umwandelt, ich hab es gerade mal mit FormatdateTime versucht, aber da bekommen ich auch nur immer wieder DD.MM.YYYY zurück. Die einzige Lösung die mir einfällt ist dass du dir einzeln den Tag, den Monat und dass Jahr aus dem Datum extrahierst und es neu mit Hilfe eines Array´s oder mehreren Variablen wieder zusammen setzt. Das hat bei mir funktioniert : Dim Tag As Integer Dim Monat As Integer Dim Jahr As Integer Dim ergebnis As String Tag = Day(Now) Monat = Month(Now) Jahr = Year(Now) ergebnis = Jahr & "-" & Monat & "-" & Tag MsgBox(ergebnis) Copy & Paste sollte funktionieren. Das ist aber nur ein kleiner Trick um an dass gewünschte Ergebnis zu kommen, ich glaube nicht daran dass es besonders zweckmässig ist, vom Programmierstyle ganz zu schweigen. Nimm es erstmal als Notlösung, ich bin selber gespannt ob jemand eine bessere Idee hat. Gruß Feivel Zitieren
Gast Geschrieben 3. Juni 2002 Geschrieben 3. Juni 2002 Ja, hab es auch so versucht. Das Problem was ich hierbei habe ist folgendes: Wenn ich das Datum wieder zurückschreibe in eine Datenbank, schreibt mit VB immernoch im ungewünschten Format, da VB das Systemdatumsformat benutzt. Deswegen wollte ich "hardcore" in das Betriebssystem eingreifen. Zitieren
Boro Geschrieben 3. Juni 2002 Geschrieben 3. Juni 2002 Hi, tja, soweit hab ich jetzt selber nicht gedacht. Ich find´s aber interessant dass die Datenbank scheinbar kein Problem damit hat dass Format wieder umzuwandeln. Dann kann die Umkehrung auch nicht schwer sein. Wie gesagt, die perfekte Lösung kenn ich nicht, aber wie wärs wenn du den Wertebereich der Datenbank von Date in String änders ? Dann ist Schluss mit der Umwandlung und wenn du nicht unbedingt die Datumsfunktionen brauchst kannst du dass Feld genauso wieder auslesen. Oder du machst aus meinem Beispiel eine Funktion und rufst sie bei jedem Auslesen des Datums auf und bekommst als Rückgabewert den String wie du ihn brauchst. Das ist schon wieder "gemogelt", aber zur Not......!? Ansonsten bin ich mit meinem Latein am Ende, alles andere wäre geraten & gemogelt. Hoffe trotzdem dass ich dir helfen konnte. Viel Spass noch ! Feivel Zitieren
Gast Geschrieben 3. Juni 2002 Geschrieben 3. Juni 2002 Hat mir geholfen auf den richtigen Einsatz zu kommen. Habe Variant genommen. MfG LoneGunman Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.