Office: (Office 2013) Abfragen: Ersetzen-Befehl entfernt den ganzen Datensatz

Helfe beim Thema Abfragen: Ersetzen-Befehl entfernt den ganzen Datensatz in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, ich habe ein Problem mit einer Access-Abfrage, für das ich einfach keine Lösung finde und deshalb nachfragen muss. Ich habe 2 Spalten... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Jenny0815, 9. September 2019.

  1. Jenny0815 Neuer User

    Abfragen: Ersetzen-Befehl entfernt den ganzen Datensatz


    Hallo, ich habe ein Problem mit einer Access-Abfrage, für das ich einfach keine Lösung finde und deshalb nachfragen muss.

    Ich habe 2 Spalten zusammengeführt und die beiden Einträge mit Komma und Leerzeichen voneinander getrennt bzw. in einem anderen Fall in Klammern gesetzt. Das sieht dann im Idealfall so aus: "Eintrag 1 (Eintrag 2)" bzw. "Eintrag 1, Eintrag 2". Weil aber nicht jeder Datensatz einen Eintrag hat, sieht es eben auch manchmal z.B. so aus: "Datensatz 1 ()". Mit dem Ersetzen-Befehl wollte ich diese Doppelklammer entfernen: (Ersetzen([Spaltenname];"()";"").

    Das Problem: Access entfernt nicht die Klammern, sondern alle Datensätze mit "()" in dieser Spalte aus der Abfrage.

    Kann mir jemand bitte sagen, woran das liegt und wie der Befehl korrekt aussieht? Oder wie ich sonst zwei Spalten elegant zusammenführen kann, ohne dass die einzelnen Einträge aneinanderkleben?


    Vielen Dank schon mal!
     
    Jenny0815, 9. September 2019
    #1
  2. Exl121150 Erfahrener User
    Hallo,

    angenommen, du hast eine Tabelle namens "Tabelle1", welche 3 Felder (=Spalten) besitze:
    1) Feld namens "ID" (Felddatentyp: Autowert) enthalte eine eindeutige Zahl
    2) Feld namens "Feld1" (Felddatentyp: Kurzer Text) enthalte eine Zeichenkette, wie zB. "Eintrag 1" oder "Datensatz 1" oder "", etc.
    3) Feld namens "Feld2" (Felddatentyp: Kurzer Text) enthalte eine Zeichenkette, wie zB. "Eintrag 2" oder "", etc.

    Mit folgender SQL-Abfrage kannst du deine gewünschte Abfrage erstellen:
    SELECT ID, Trim(Replace([Feld1] & "(" & [Feld2] & ")","()","")) AS Feld1Feld2
    FROM Tabelle1;

    wobei diese Abfrage 2 Felder produziert:
    1) Feld namens "ID", identisch mit dem Tabellenfeld "ID"
    2) Feld namens "Feld1Feld2", enthält die Verkettung der Tabellenfelder "Feld1" und "Feld2", wobei der Inhalt von Feld2 in runde Klammern eingeschlossen wird.
    3) Ist jedoch Feld2 leer, werden die runden Klammern im Feld "Feld1Feld2" entfernt (Funktion "Replace")
    4) Enthält "Feld1Feld2" am Anfang oder am Ende Leerzeichen, werden auch diese entfernt (Funktion "Trim").

    Einen gleichen Effekt könnte man mit folgender SQL-Abfrage erzielen:
    SELECT ID, Trim([Feld1] & IIf(IsNull([Feld2]),"","(" & [Feld2] & ")")) AS Feld1Feld2
    FROM Tabelle1;


    Anmerkung: Die vorgenannten SQL-Abfragen erscheinen bzw. können eingegeben werden (auch mit Copy+Paste), wenn du statt der Abfrage-Entwurfsansicht die Abfrage-SQL-Ansicht verwendest.
     
    Exl121150, 11. September 2019
    #2
  3. Jenny0815 Neuer User
    Vielen Dank Anton! Ich kenne mich mit SQL leider nicht gut genug aus, um dein Beispiel korrekt in meine Abfrage zu übertragen (es hat leider keine versuchte Variante funktioniert), deswegen hier meine konkrete Anwendung:

    In meiner Abfrage generiere ich das Feld/die Spalte "Herkunft: [Händler] & ", " & [Herkunftsland] & ", " & [Datum]". Es werden also 3 Spalten vom Felddatentyp Kurzer Text in eine namens "Herkunft" zusammengeführt, getrennt durch ", " (in einer anderen Abfrage gibt es noch den Fall mit den Klammern). Da einige Felder in den Spalten leer sind, entstehen so hässliche Zeichenfolgen wie ", , ". Mit dem richtigen Ausdruck würde ich die gerne löschen, ohne dass die Abfrage gleich den ganzen Datensatz entfernt.

    Ich hatte auch versucht, mit einer zweiten Abfrage diese Zeichenfolgen zu entfernen. Sie basierte auf der Abfrage, mit der ich die Felder in "Herkunft" zusammengeführt hatte. Der Ausdruck betrifft also das Feld "Herkunft" und enthält durch die Zusammenführung von 3 teilweise leeren Feldern Einträge wie ", , ", ", , 1985 " oder "Likörfabrikation, , '58".

    Ich würde mich sehr freuen, wenn du mir dafür den passenden Befehl (ob SQL-Abfrage oder Ausdruck in der Entwurfsansicht) konstruieren könntest. Notfalls muss ich die Abfrage in eine Tabelle exportieren und das über Suchen/Ersetzen regeln, aber es muss doch auch über die Abfrage funktionieren.
     
    Zuletzt bearbeitet: 11. September 2019
    Jenny0815, 11. September 2019
    #3
  4. Exl121150 Erfahrener User

    Abfragen: Ersetzen-Befehl entfernt den ganzen Datensatz

    Hallo,

    ich habe aufgrund deiner Angaben eine Demo-Tabelle "Tabelle1" angelegt, die folgende Felder (=Spalten) bzw. Sätze (=Zeilen) besitzt.
    Diese Tabelle enthält 8 Sätze, um mit ihnen alle Leerfeld-Kombinationen zeigen zu können.
    Abfragen: Ersetzen-Befehl entfernt den ganzen Datensatz Jenny0815_Tabelle1.jpg
    Ferner habe ich eine Abfrage namens "Abfrage1" erstellt, die auf die Felder/Sätze der Tabelle "Tabelle1" zugreift. Die Datenblattansicht dieser Abfrage gestaltet sich wie folgt:
    Abfragen: Ersetzen-Befehl entfernt den ganzen Datensatz Jenny0815_Abfrage1.jpg
    • In den ersten 4 Feldern (ID, Händler, Herkunftsland, Datum) habe ich einfach die Felder der Tabelle wiederholt, um eine schnelle Vergleichbarkeit zu ermöglichen.
    • Im Feld "Herkunft" sind die Felder "Händler","Herkunftsland","Datum" enthalten, wenn man sie einfach mit &", "& verknüpft mit den unschönen Kommas.
    • Im Feld "Herkunft_korrigiert" sind die Felder "Händler","Herkunftsland","Datum" mittels Komma+Leerzeichen verkettet, ohne dass überflüssige Kommas/Leerzeichen aufscheinen.
    Um dieses Resultat zu erzielen, ist in der Abfrage-Entwurfsansicht Folgendes zu veranlassen:
    1. Die Abfrage ist mit der Tabelle "Tabelle1" zu verknüpfen (mittels "Tabelle anzeigen").
    2. In den Abfragespalten ist in Spalte 1 (Zeile Feld: "ID"/ Zeile Tabelle: "Tabelle1") einzugeben.
    3. In den Abfragespalten ist in Spalte 2 (Zeile Feld: "Händler" / Zeile Tabelle: "Tabelle1") einzugeben.
    4. In den Abfragespalten ist in Spalte 3 (Zeile Feld: "Herkunftsland" / Zeile Tabelle: "Tabelle1") einzugeben.
    5. In den Abfragespalten ist in Spalte 4 (Zeile Feld: "Datum" / Zeile Tabelle: "Tabelle1") einzugeben.
    6. In den Abfragespalten ist in Spalte 5 (Zeile Feld: "Herkunft: [Händler] & ", " & [Herkunftsland] & ", " & [Datum]") einzugeben.
    7. In den Abfragespalten ist in Spalte 6 (Zeile Feld: "Herkunft_korrigiert: Teil(Wenn(IstNull([Händler]);"";", " & [Händler]) & Wenn(IstNull([Herkunftsland]);"";", " & [Herkunftsland]) & Wenn(IstNull([Datum]);"";", " & [Datum]);3)") einzugeben.
    Wenn du über das Kontextmenü der rechten Maustaste die SQL-Ansicht der Abfrage auswählst, müsste Folgendes angezeigt werden:
    Code:
    SELECT 
       ID, 
       Händler, 
       Herkunftsland, 
       Datum, 
       [Händler] & ", " & [Herkunftsland] & ", " & [Datum] AS Herkunft, 
       Mid(IIf(IsNull([Händler]),"",", " & [Händler]) & IIf(IsNull([Herkunftsland]),"",", " & [Herkunftsland]) & IIf(IsNull([Datum]),"",", " & [Datum]),3) AS Herkunft_korrigiert
    FROM Tabelle1;
    
    Im Prinzip wird dabei für jedes der 3 infrage kommenden Felder überprüft, ob das Feld leer (=NULL) ist:
    • Falls ja: Es wird nur eine leere Zeichenkette "" zurückgegeben;
    • Falls nein: Es wird der Zeichenkettenausdruck ", "&[Feld] zurückgegeben.
    Diese so erzeugten Zeichenketten für jedes der 3 Felder werden miteinander verkettet und die ersten beiden Zeichen (Funktion Mid(Verkettung, 3)) entfernt.
     
    Exl121150, 12. September 2019
    #4
  5. Jenny0815 Neuer User
    Hallo Anton, wow, vielen Dank für deine Hilfe! Es klappte zunächst nicht, als ich die Feldbezeichnung unter Punkt 7 in die bestehenden Abfrage übertragen hatte, ich musste erst die letzten beiden Zeichen )" entfernen. Dann ging es. Ich hatte auch eine neue Abfrage in der SQL-Ansicht mit deinen Angaben per Copy&Paste erstellt, das funktionierte auch.

    Ich bin sehr froh, ganz herzlichen Dank!
     
    Jenny0815, 13. September 2019
    #5
Thema:

Abfragen: Ersetzen-Befehl entfernt den ganzen Datensatz

Die Seite wird geladen...
  1. Abfragen: Ersetzen-Befehl entfernt den ganzen Datensatz - Similar Threads - Abfragen Ersetzen Befehl

  2. Abfrage: Anzahl von Kriterium >0

    in Microsoft Access Hilfe
    Abfrage: Anzahl von Kriterium >0: Hallo, [ATTACH] Ich versuche gerade, die Anzahl der belegten Plätze auf einem LKW per Abfrage zu ermitteln. Dabei wäre dann FSPal > 0. Leider zeigt er mir die Anzahl der Plätze an. [ATTACH]...
  3. Teil des Zellinhaltes abfragen in VBA

    in Microsoft Excel Hilfe
    Teil des Zellinhaltes abfragen in VBA: Guten Tag, ich möchte in Zelle E1 den linken 4-stelligen Teil in Zelle A3 abfragen. Habs versucht mit IF (LEFT(R[2]C[-3],4) = "8396") then ... Else ... End If Wer kann...
  4. Verliert irgendwann die Selektive Abfrage von UFO

    in Microsoft Access Hilfe
    Verliert irgendwann die Selektive Abfrage von UFO: Guten Tag Ich habe ein HF mit darin befindlichem UF. Die Abfrage der Teilnehmer im Uf bezieht sich immer auf den Kurs-Typ im HF Solang ich das Formular neu erstelle, funktioniert das...
  5. automatische Abfrage URL via Artikelnummer

    in Microsoft Access Hilfe
    automatische Abfrage URL via Artikelnummer: Guten Tag Bei der Aktualisierung der Homepage und aufgrund eines Plugin-Wechsels des Üebersetzungstools hat wordpress alle Permalinks der Produkte verändert. Unserem Webmaster war nicht bekannt,...
  6. Vorkommen von Kunden in mehreren Tabellen per Abfrage filtern

    in Microsoft Access Hilfe
    Vorkommen von Kunden in mehreren Tabellen per Abfrage filtern: Hallo Community, ich habe folgendes Problem beim Nutzen einer Access-Datenbank. Zunächst die Datenstruktur: [ATTACH] Dies sind die Tabellen meiner Datenbank. In der Tabelle "Adressliste"...
  7. Umlaute in Tabelle/Abfrage ersetzen

    in Microsoft Access Hilfe
    Umlaute in Tabelle/Abfrage ersetzen: Ich möchte gerne für eine MySQL-Datenbank einige Tabellen aus Access exportieren. Dabei ist es erforderlich Umlaute (ö, ä, ü, ß) in oe, ue, ae, ss umzuwandeln. Hab ihr einen Tip für mich wie ich...
  8. Komma durch Punkt ersetzen in Abfrage

    in Microsoft Access Hilfe
    Komma durch Punkt ersetzen in Abfrage: Hallo, ich habe eine Abfrage in der zwei Felder Zahl (Double) sind in der Ursprungstabelle. Da es sich um Dezimalzahlen handelt sind diese bei mir mit Komma getrennt. Ich möchte nun aber einen...
Schlagworte:
  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