Office: (Office 2016) String in Abfrage zerlegen

Helfe beim Thema String in Abfrage zerlegen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo ich habe einen String der nicht immer der selbe im Aufbau ist, es können sich auch die Stellenzahl verändern. Beispiel: 74305.G02.G.HSA, oder... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Unklar01, 28. Januar 2020.

  1. String in Abfrage zerlegen


    Hallo ich habe einen String der nicht immer der selbe im Aufbau ist, es können sich auch die Stellenzahl verändern.

    Beispiel: 74305.G02.G.HSA, oder 74305.G02.A.OG05.0017

    Wenn die Stellenzahl stets die selbe wäre würde ich es mit der Art zerlegen:

    Beipiel für die Anzeige der ersten 5 Zeichen von links

    MeinTest: Links([DeinFeld];5)

    _____________________________________________________________

    Beipiel für die Anzeige der ersten 5 Zeichen von rechts

    MeinTest: rechts([DeinFeld];5)

    _____________________________________________________________

    Beipiel für die Anzeige von 6 Zeichen, ab der 2.Stelle von Links

    MeinTest: Teil([DeinFeld];2;6)

    Wie bekomme ich das so hin, das immer der Wert zwischen den Punkten, bzw. am Anfang bis zum ersten, oder bei der letzten Stelle von rechts gesehen angezeigt wird?

    :)
     
    Unklar01, 28. Januar 2020
    #1
  2. Wieder mal: Zusammensetzen ist einfacher als Trennen. Letzteres wird sichtbar weniger beherrscht. Also spricht schon das dafür, den String einmalig zu trennen (bei Import) oder gleich nach Atomarinhalten getrennt zu erfassen und das Ganze in getrennten Tabellenfeldern abzulegen.

    Dass bei einer Live-Trennung in einer Abfrage dann auch eine Indexnutzung auf solche Teilstrings und damit mögliche Performance schon systematisch entfällt, ist dann folgende "höhere Mathematik" (versteht nicht jeder).
     
  3. String in Abfrage zerlegen

    Hallo Eberhard,

    nicht immer so pessimistisch denken. *wink.gif*

    Vielleicht wird ja diese Abfrage verwendet, um solche Missstände nach einem Import wieder zu korrigieren. Der OP hat sich darüber nicht geäußert.

    Dein Hinweis mit dem Index ist natürlich berechtigt.

    Gruß Ulrich
     
    knobbi38, 31. Januar 2020
    #4
  4. Praktisches Erleben zeigt seine Spuren.

    Wer das in einer Abfrage ausführt, wird mancher das sehr schnell immer wieder statt nur einmal ausführen. Dann hätte man schon mal wiederkehrenden Aufwand gegen einmaligen Aufwand.
    Siehe Split - Text schnell in Teilstrings splitten: Wenn die gezeigte Ersatzfunktion ein Stück schneller ist als die originale in VBA, ist, zeigt das zumindest, dass diese Funktion nicht ganz so schlank ist wie bspw. ein Instr. In der oben gezeigten Umsetzung wird das Split dann aber pro auszuwertendem Feld abgefeuert. Mit der Multiplikation durch einige Datensätze könnte sich da etwas summieren. Erst der dritte Punkt wäre dann jener mit der Indexnutzung.

    Ich meine: Wer anmerkungs- und kritiklos solche Aufsplittungen löst (wenn er es kann), wird das nicht selten als normal empfinden und selber solche Datenkonglomerate (mit Stolz) erzeugen, wo dann der nächste wieder so seine Probleme hat. Und der nächste schreibt das dann wieder ab, was er so sieht.
     
  5. Hallo Eberhard,

    die Anmerkung zu Spit() kann ich so nicht kommentarlos stehen lassen. Mag sein, daß die von dir angegebene Split-Funktion schneller ist, aber diese muß totzdem in einer SQL-Abfrage mehrfach aufgerufen werden, wenn ich z.B. drei Teilstrings extrahieren möchte. Was anderes wäre die Anwendung in einer Sub/Funktion mit VBA. Da könnte man die Vorteile eventuell ausspielen. Wenn du es wirklich schnell haben möchtest, würde ich auf eine Version von hier VBspeed: Split zurückgreifen.

    Gruß Ulrich
     
    knobbi38, 31. Januar 2020
    #6
  6. Wenn es nichts zusätzlich kostet, unbedingt immer. Laufzeibverlängerungen kann ich mir bei Bedarf auch selber reinlegen.

    Allerdings auch: Wenn ich nur einmalig bei Import trenne und da unterstelle, dass die Anzahl bei Import deutlich kleiner als die Anzahl über die ganze Tabelle ist, ist die Methode des Trennens weniger relevant.
     
  7. String in Abfrage zerlegen

    Hallo, ich sehe das ist ein kontroverses Thema.
    Ich habe mir das nicht ausgesucht und bin auch nicht für den Datenmüll verantwortlich, darfs nur wieder gerade ziehen. Da fragt keiner von denen die es verzapft haben wie kann ich dir helfen....
    Blöd nur wenn man selber auf solch ein Verhalten schon hingewiesen hat, das genau so etwas später dabei heraus kommt. *mad.gif*

    Habe das erst mal nach hinten gestellt, denn ein neues Thema hat mich gerade erreicht. Werde mich aber wieder damit beschäftigen.
    Danke aber schon mal.
     
    Unklar01, 2. Februar 2020
    #8
  8. In VBA Sicher nicht.
    Bei den Beispielen gehen die von Binärcode aus.
    Den kann man aber nur mit VB5/VB6 erstellen.
    Bei VBA gelten die Performance Angaben allesamt nicht.

    Aber wenn man genau hinschaut, sieht man dass jeder String 3 mal erzeugt wird und dadurch auch 2 mal unnützerweise freigegeben werden muss.
    Da wäre also noch viel Luft. *wink.gif*
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    markusxy, 2. Februar 2020
    #9
Thema:

String in Abfrage zerlegen

Die Seite wird geladen...
  1. String in Abfrage zerlegen - Similar Threads - String Abfrage zerlegen

  2. Leerzeichen abschließend im String

    in Microsoft Access Hilfe
    Leerzeichen abschließend im String: Hallo, ich habe hier eine DB, in der sich viele Leute textlich verwirklichen können. Teilweise mit unangenehmen Flüchtigkeitsfehlern (Montuer statt Monteur z.B.). Nun möchte ich, dass die...
  3. If-Then-Else...Verständnisfrage zu Kriterium String > Zahl

    in Microsoft Access Hilfe
    If-Then-Else...Verständnisfrage zu Kriterium String > Zahl: Hallo, ich habe eine Funktion erstellt. Diese wird mit Werten gefüttert, generell Zahlen als String und "echte" Strings. Damit ich mit den Zahlen Vergleiche anstellen kann wandele ich diese mit...
  4. Erlaubte Zeichen an bestimmten Stellen von Strings

    in Microsoft Excel Tutorials
    Erlaubte Zeichen an bestimmten Stellen von Strings: MATCH.CHAR benenne folgende Funktion: =LAMBDA(Bereich;z;[von];[Stellen];LET( v;1-WURDEAUSGELASSEN(von); s;WENN(WURDEAUSGELASSEN(Stellen);1;Stellen);...
  5. Alle Spalten einer Abfrage nach einem String filtern

    in Microsoft Access Hilfe
    Alle Spalten einer Abfrage nach einem String filtern: Hallo, Ich möchte in der Abfrage einen Filter mit LIKE '*Männlich*' setzen. Auf die GESAMTE Abfrage, nicht nur auf eine Spalte! Meine aktuell Lösung ist manuell die ganzen Spalten separat...
  6. Integer-Zahl in String (Abfrage) umwandeln

    in Microsoft Access Hilfe
    Integer-Zahl in String (Abfrage) umwandeln: Hallo Zusammen, könnte mir bitte jemand einen Tip geben, wie ich innerhalb einer Abfrage den Datentyp Zahl in einen String umwandeln kann. Code: SELECT [Fehlende Melder F9].Zentrale, [Fehlende...
  7. Anführungszeichen als String in Abfrage

    in Microsoft Access Hilfe
    Anführungszeichen als String in Abfrage: Hallo zusammen wie kann ich das anführungszeichen in einer Abfrage verwenden? Dieses hier: " Ich muss darstellen können Sony MultiscanG200 17" Röhrenmonitor Code: [hersteller] & " " & [name] &...
  8. In Abfrage Uhrzeitzeit als Zeit,24h - nicht als STRING ausge

    in Microsoft Access Hilfe
    In Abfrage Uhrzeitzeit als Zeit,24h - nicht als STRING ausge: Hello! Ich möchte eine Uhrzeit im Format 24h, kurz in einer Tabellenerstellungs - Abfrage ausgeben. Dies mache ich zur Zeit mit Format()... Doch die Ausgabe erfolgt als String und nicht als...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden