Hallo zusammen,
ich möchte die Breite zwischen den beiden "x" auslesen.
Habe mit Links, Teil und Recht probiert, habe es aber nicht hinbekommen.
Folgende Daten (Beispiel) sind möglich:
1x1000x1000
1,5x1000x1000
1,52x1000x1000
1,00x 900x1000
1,00x1000x 900
also "fast" jede Kombinationsmöglichkeit, da Textfeld.
Danke für Eure Unterstützung
Hallo,
die Split-Funktion sollte weiterhelfen...
Bei Informationen, die nur für's Auge bestimmt sind, ist der Feldinhalt OK. Sollen jedoch Berechnungen des Volumens oder auch das Extrahieren von Informationen vorgenommen werden, so ist die Datenform schlecht. Nicht nur weil eine Abfrage viel Schreibaufwand mit sich bringt, sondern weil sie zeitintensiv im Ablauf ist und keine Indexnutzung ermöglicht. Besser ist es, den drei Dimensionen jeweils ein eigenes Feld zu spendieren. Ohne großen Aufwand lassen sich die drei Felder dann in der Abfrage in die bisherige Form überführen.
Trotzdem hier noch eine mögliche Lösung:Mid$([Feldname];InStr([Feldname];"x")+1;InStrRev([Feldname];"x")-Instr([Feldname];"x")-1)
Hallo,
mit Split (ohne Fehlerbehandlung):
Dim H as Double, B as Double, T as Double, a
a=Split(Textfeld,"x")
H=a(0)
B=a(1)
T=a(2)
@Franz,
es müsste explizit CDbl(...) wegen deutscher Dezimaltrennzeichen verwendet werden.
PS: Split ist um ca. 20% langsamer als das Bestimmen der beiden x-Positionen nebst Umwandlung nach Double und benötigt zusätzlich ein VBA-Modul.
Hallo,
Zitat
es müsste explizit CDbl(...) wegen deutscher Dezimaltrennzeichen verwendet werden.
Imho nicht, die Variablen sind vom Typ Double und die Zuweisung erledigt die Typkonvertierung schon.
Den anderen Punkten stimme ich zu ... ;)
Stimmt Franz. :)