Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Text in Minuten umwandeln

Begonnen von mad, August 15, 2019, 00:18:24

⏪ vorheriges - nächstes ⏩

mad

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

ebs17

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.
Mit freundlichem Glück Auf!

Eberhard

mad

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


MzKlMu

Hallo,
ZitatVielleicht gibt es eine Lösung dafür,
Eberhard hat Dir doch einen Vorschlag gemacht, bzw. Hinweise gegeben. Woran scheitert es jetzt ?
Gruß Klaus

mad

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

DF6GL

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)
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MzKlMu

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))
Gruß Klaus

mad

Super,
ohne euch wär ich aufgeschmissen.

Danke
mad