Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: mad am August 15, 2019, 00:18:24

Titel: Text in Minuten umwandeln
Beitrag von: mad am August 15, 2019, 00:18:24
Hallo in die Runde,
mal eine vermutlich ungewöhnliche Frage, kann man Text aus einem Tabellentextfeld z.B. 25:30 oder auch 25:30:00 per berechnendes Tabellenfeld (Zahl) in Minuten umrechnen? Sekunden kommen nicht vor.
Es handelt sich hierbei um kein Datum/Uhrzeit-Felddatentyp. Ich möchte hier mal was ausprobieren.

In diesem Zuge muß ich natürlich meine jetzigen Inhalte der Datum/Uhrzeit-Felder (z.B. 28:30) per Aktualisierungsabfrage in Textfelder schreiben.
Das mache ich derzeit wie folgt:
UPDATE [Registrierung-Üb] SET [Registrierung-Üb].ÜbStdN_test = [Registrierung-Üb].[ÜbStdN];
Das Ergebnis sieht dann aber immer wie folgt aus: 28:30:00
Kann man eine Formatierung mit einfügen um nur 28:30 zu übertragen?

Zur Info, daß ganze hängt auch mit meinem Forumsbeitrag https://www.access-o-mania.de/forum/index.php?topic=24255.msg142729;topicseen#new
zusammen. Um das Textfeld nachträglich auch ändern zu können.

Gruss
mad
Titel: Re: Text in Minuten umwandeln
Beitrag von: ebs17 am August 15, 2019, 13:02:49
Normalerweise kann man Zeitformate per CDate in DateTime-Werte umwandeln und dann nachfolgend die Minuten daraus ableiten (Wert * 24 * 60).

Das scheitert hier, weil Du Werte oberhalb von 24 Stunden hast.

Aber: 25:30 sind doch 25 Stunden und 30 Minuten ...?
WertInMinuten = 25 * 60 + 30
Das sollte doch für Dich lösbar sein, wie auch das Left-/Mid-/Right-Trallala zum Separieren der Einzelzahlen.
Titel: Re: Text in Minuten umwandeln
Beitrag von: mad am August 15, 2019, 20:56:38
Hallo ebs17,

Zeitwerte in Minuten umwandeln das wende ich bereits an. Das ist auch kein Problem wenn das Ausgangsfeld ein Datum/Uhrzeitfeld ist. Geht halt nur bis 23:59:59. Das mit den 25:30 ist auch nur ein Beispiel, insgesamt habe ich etwa 8000 Datenzeilen die verschiedenste Werte von <24 und >24Std (in Textformat) enthalten.

Auch wenn es sehr aussergewöhlich ist,
aber ich bräuchte wirklich einen Code der den Text hh:nn (Eingabeformat, aber eben kein Datum/Uhrzeit-Format) in Minuten umwandelt.

Vielleicht gibt es eine Lösung dafür, auch wenn es ungewöhnlich klingt.


Gruss
mad

Titel: Re: Text in Minuten umwandeln
Beitrag von: MzKlMu am August 15, 2019, 21:53:52
Hallo,
ZitatVielleicht gibt es eine Lösung dafür,
Eberhard hat Dir doch einen Vorschlag gemacht, bzw. Hinweise gegeben. Woran scheitert es jetzt ?
Titel: Re: Text in Minuten umwandeln
Beitrag von: mad am August 15, 2019, 22:29:33
Ist das der Hinweis?
ZitatWertInMinuten = 25 * 60 + 30
Das sollte doch für Dich lösbar sein, wie auch das Left-/Mid-/Right-Trallala zum Separieren der Einzelzahlen.
Ich hätte das jetzt wie folgt erstmal mit zwei ungebundenen Textfeldern in einem Formular versucht.
Den nachfolgenden Code habe ich in Steuerelementeinhalt geschrieben.
=Left([Text67],2) * 60 + Right([Text67],2)
Dann bekomme ich folgende Fehlermeldung, siehe Anhang.

Wahrscheinlich bin ich wieder mal komplett falsch unterwegs?

Gruss
mad
Titel: Re: Text in Minuten umwandeln
Beitrag von: DF6GL am August 15, 2019, 23:02:42
Hallo,


=Val(Left([Text67];2)) * 60 + Val(Right([Text67];2))

("Val", "Left", "Right" werden von deutschem Access als "Wert", "Links", "Rechts"  übersetzt und es sind ";" als Trennzeichen bei einem Ausdruck in z. B. einen Steuerelementinhalt erforderlich)
Titel: Re: Text in Minuten umwandeln
Beitrag von: MzKlMu am August 15, 2019, 23:06:05
Hallo,
als Steuerelementinhalt ist die eingedeutschte Schreibweise notwendig, sowie Semikolon statt Komma.
=Links([Text67];2) * 60 + Rechts([Text67];2)
Möglicherweise ist noch explizit eine Datentypkonvertierung notwendig, denn Links und Rechts liefert Text.
Dann so:
=ZInteger(Links([Text67];2)) * 60 + ZInteger(Rechts([Text67];2))
Titel: Re: Text in Minuten umwandeln
Beitrag von: mad am August 16, 2019, 00:25:18
Super,
ohne euch wär ich aufgeschmissen.

Danke
mad