Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Frage zum SUCHEN und ERSETZEN

Begonnen von accessy, Juni 25, 2014, 20:16:50

⏪ vorheriges - nächstes ⏩

accessy

Ich bin ein wenig irritiert was das SUCHEN und ERSETZEN betrifft.

Ich habe ein Datenbankfeld gefiltert und 77 Treffer bekommen.
In diesen gefilterten DS steht irgendwo der Wert, oder String "Falsch".
Jetzt möchte ich gern in allen gefunden DS das "Falsch" gegen den String "Richtig" ersetzen.

Das funktioniert aber nicht, oder ich mache was falsch.

Und sollte es keine Möglichkeit geben alle 77 Werte auf einmal zu suchen und zu ersetzen, dann frage ich mich wo der Sinn dieser Funktion liegt, wenn die Datenfeldlänge sowieso nur 255 Zeichen lang ist.

Kann mir da jemand auf die Sprünge helfen?

Gruß Achim

ebs17

ZitatDas funktioniert aber nicht
Wärst Du in der Lage, so hoch zu springen, dass Dein diesbezüglicher Versuch auch sichtbar würde?

Ansonsten: Ersetzungen in Feldern würde man mit einer Aktualisierungsabfrage erledigen. Hast Du so etwas schon mal gesehen? Wenn nicht, wäre ich irritiert.
Mit freundlichem Glück Auf!

Eberhard

MaggieMay

Hallo Achim,

ZitatDas funktioniert aber nicht, oder ich mache was falsch.
nehmen wir einmal an, letzteres wäre der Fall, dann stellt sich doch zwangsläufig die Frage, wie du da wohl vorgehst - oder?

Die nächste Frage wäre, wie sich das "Nichtfunktionieren" darstellt.
Freundliche Grüße
MaggieMay

accessy

Okay,
ich mach denn mal eine Aktualisierungsabfrage.
Danke für die Hinweise

accessy

Okay, zu früh gefreut. Ich dachte, man kann das mit dem SUCHEN & ERSETZEN ähnlich betrachten wie in Excel.
Aber das war ein gründlicher Irrtum.

Ich habe eine Tabelle mit Namen Besuchsberichte.
In dieser Tabelle gibt es das Feld Resultat.

So, ich habe nun diese Tabelle Besuchsberichte in einer Abfrage geöffnet.
Tja, und nu?
In der Abfrage gibt es gar keine Menüpunkte SUCHEN & ERSETZEN.

Wie, bzw. wo muss ich denn die beiden Paramater in meinem Access 2003 hinschreiben, dann auf Aktualisierungsabfrage klicken damit die gesuchten Werte gegen die zu ersetzenden getauscht werden?

Kann mir mal jemand ein Beispiel schicken, oder es genauer beschreiben wie man das hinbekommt?
Vielen Dank
LG Achim

MzKlMu

Hallo,
was steht dann beispielsweise im Feld Resultat und was willst Du ersetzen?
Willst Du nur Teile eines Feldeintrags ersetzen, oder immer nur den ganzen Eintrag.

Vergiss Suchen und Ersetzen, das ist eine Spielerei, die man in einer (SQL) Datenbank nicht benötigt.
Gruß Klaus

accessy

Also,
im Feld Resultat steht z.B. dieser Text drin.

"Hallo,
was steht dann beispielsweise im Feld Resultat und was willst Du ersetzen?
Willst Du nur Teile eines Feldeintrags ersetzen, oder immer nur den ganzen Eintrag"

Und diesen Textteil oder String "Feld" steht nach meiner Filterung in 77 DS drin.
Jetzt wollte ich in diesen 77 DS den Textteil "Feld" gegen den Textteil "Datenfeld" ersetzen.

Ich hoffe, dass es jetzt klarer rüberkommt.
LG Achim

MzKlMu

Hallo,
sorry, ich verstehe nur Bahnhof. Ich habe immer noch nicht begriffen, ob Du den ganzen Feldinhalt ersetzen willst oder nur Teile davon.

Zeige mal den SQL Text der Filterabfrage.

Gruß Klaus

accessy

Ich fang mal von ganz vorn an.
In Excel markiere ich die Spalte und sage "Suchen & Ersetzen" gebe die beiden Begriffe ein und schwupp die wupp kommt die Lösung "Es wurden 1245 Werte ersetzt". Aber die Excel-Lösung ist hier nicht übertragbar.

Ich habe ein Formular, das beinhaltet als Datenherkunft die Tabelle Besuchsberichte.
In diesem Formular habe ich eine unabhängige TextBox. Diese TextBox ist für mich eine Art Schnellfilter.
Und sie funktioniert über VBA so:

Private Sub Search_Result_Change()
On Error Resume Next
  Filter = "Resultat & Kunde & KNR like '*" & Search_Result.Text & "*'"
  FilterOn = True
End Sub

Ich gebe einfach mal das Wort "Test" ein und schon werden alle DS gefiltert, die im Datenbankfeld mit Namen Resultat dieses Wort, bzw. diesen String beinhalten.
Beispiel:
Im Datenbankfeld Resultat des DS Nummer 2654 steht drin "Der Test mit dem Werkzeug war sehr zufriedenstellend".
Und da hier das Wort TEST vorkommt, wird der DS Nummer 2654 gefiltert.

So, nun könnte ich alle 77 DS einzeln durchgehen und an allen Stellen das Wort TEST gegen den Begriff TESTERGEBNIS manuell austauschen.

Jetzt kam von einem anderen User der Vorschlag der Aktualisierungsanfrage.
Und da komme ich gar nicht weiter, weil ich es nicht verstehe.

Also mein Formular und der Schnellfilter haben mit der eigentlichen Frage SUCHEN & ERSETZEN natürlich nichts zu tun.
Wie muss ich denn nun vorgehen mit dieser Aktualisierungsabfrage?
Abfrage öffnen
Entwurfsansicht
Tabelle Besuchsberichte einsetzen
Tja, und dann?

Du sagst, "Vergiss das Suchen & Ersetzen".
Aber wie macht man das denn sonst?
LG Achim

MzKlMu

Hallo,
das ist eine einfache Aktualisierungsabfrage:
UPDATE TabellenName SET Feldname = Replace([Feldname],"Test","Testergebnis")Hier muss noch eine Where Klausel dazu, die die die richtigen Datensatz raussucht.
Und da beginnt das Problem, Du suchst ja mit dem Filter in 3 Feldern (Resultat & Kunde & KNR) nach dem Text,das macht doch keinen Sinn.

Überhaupt möchte ich das ganze Vorhaben anzweifeln. Für die Resultate eines Besuchsberichts ist eine eigene Tabelle notwendig, in die die neuen Einträge als neuer Datensatz erfasst werden und nicht als Änderung in einem Feld.
Gruß Klaus

ebs17

ZitatSo, nun könnte ich alle 77 DS einzeln durchgehen und an allen Stellen das Wort TEST gegen den Begriff TESTERGEBNIS manuell austauschen.

Das kann man nun mit einer (Aktualisierungs)Abfrage nicht. Abfragen sind Massendatenverarbeitung und kein Einzel-Machmal-Trallala.
In einer Datenbank, wo potentiell sehr viele Daten vorkommen, käme man aber auch kaum auf die Idee, alles einzeln zu machen.
Mit freundlichem Glück Auf!

Eberhard

accessy

Bevor ich meine Tabelle kaputt mache, werde ich mein Vorhaben aufgeben und die 77 DS manuell ändern.
Ich danke euch für die Aufklärung zu diesem Vorhaben.

Gruß Achim