Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Abfrage: Feldformat von Text zu Zahl konvertieren?





Frage

Hallo, Ausgangslage: ich habe eine Tabelle, deren Felder ich nicht ändern darf. Die Felder sind im Format Text und beinhalten Dauer in Minuten und/oder Sekunden. Sie sehen so aus: 00:00:00:30:00 (z. B. für 30 Minuten) Was ich will: Ich möchte Differenzen zwischen den Feldern ermitteln. Problem: Geht nicht, da ich anscheinend mathematische Formeln auf Text nicht anwenden kann. Frage: Kann ich in einer Abfrage das Feldformat von "Text" auf "Zahl" ändern und dann die Differenzen bilden? Wie kann ich das am besten verwirklichen? Vielen Dank Chichitta

Antwort 1 von 14071

Hi Chichitta,

hab mal in ein VBA-Buch reingeschnuppert. Und da stand zu lesen, dass Access Variablen vom Typ Variant automatisch so behandeln kann als wären es Zahlen, bzw Datums wenn die Inhalte entsprechend sind. Also müsste eine Umwandlung entsprechend möglich sein. Kann aber sein, dass du den timepart explizit auslesen musst.

ciao
Jürgen

Antwort 2 von Chichitta

Hi Jürgen,

wie kann ich das implementieren? Könntest Du mir bitte ein Befehlbeispiel geben?

Danke
Ch

Antwort 3 von 14071

Hi,

ich weiss nur die Anfangssyntax
Dim Zeit as Variant
damit deklarierst du eine Variable Zeit vom Typ Variant.
Zeit = Tabelle.Feld
Zuweisung der Werte zur Variablen.

Aber wie gesagt ich hab nur mal reingestöbert in ein VBA-Buch.

Gruß
Jürgen

Antwort 4 von struppi

Hallo
Man kann das ganze mit einer Prozedur
in Sekunden umwandeln und diese dann in einer neuen Spalte speichern. Die sekunden können verrechnet werden.
Als VBS kann man das mal so testen:
zeit = "00:30:56"
feld = split(zeit,":")
stunden = clng(feld(0))*3600
minuten = clng(feld(1))*60
sekunden = clng(feld(2))
Gesamtzeit = stunden+minuten+sekunden
Msgbox Gesamtzeit
Das ganze müßte dann in VBA ins Formular (dim nicht vergessen) und an ein ereignis gehängt werden sodas die Ergebnisse automatisch in die neue Spalte übernommen werden.(läßt sich auch auf Tag und Jahr ausdehnen.

Antwort 5 von Chichitta

Hi,

vielen Dank für Eure Vorschläge!!

Kann jemand sich vielleicht zur folgenden Möglichkeit äußern:

Man benutze die Funktion Format und dann DatDiff für die Differenzenbildung. Läßt sich so der Feldformat "Text" umwandeln?

Danke
Ch

Antwort 6 von Köbi Hautle

Auf die Gefahr hin, die Frage falsch verstanden zu haben, versuchs mal in der Microsoft Knowledge Base mit folgender Adresse:

http://www.microsoft.com/IntlKB/Germany/Support/kb/D38/D38899.HTM?LN=DE&SD=SO&FR=0

Gruss, Köbi

Antwort 7 von struppi

Hallo
Wenn IsDate Wahr zurückliefert dann gehts auch so:
zeit = "00:30:56"
msgbox isDate(zeit)
diff = DateDiff("s","00:00:00",zeit)
Msgbox diff

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: