Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: SG05 am Juni 26, 2017, 20:20:48

Titel: In Abfrage Teil eines String auslesen
Beitrag von: SG05 am Juni 26, 2017, 20:20:48
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
Titel: Re: In Abfrage Teil eines String auslesen
Beitrag von: DF6GL am Juni 26, 2017, 21:19:01
Hallo,

die Split-Funktion sollte weiterhelfen...
Titel: Re: In Abfrage Teil eines String auslesen
Beitrag von: Lachtaube am Juni 26, 2017, 23:37:04
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)
Titel: Re: In Abfrage Teil eines String auslesen
Beitrag von: DF6GL am Juni 27, 2017, 09:29:25
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)
Titel: Re: In Abfrage Teil eines String auslesen
Beitrag von: Lachtaube am Juni 27, 2017, 12:31:45
@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.
Titel: Re: In Abfrage Teil eines String auslesen
Beitrag von: DF6GL am Juni 27, 2017, 14:18:16
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 ...  ;)
Titel: Re: In Abfrage Teil eines String auslesen
Beitrag von: Lachtaube am Juni 27, 2017, 14:46:07
Stimmt Franz. :)