waldbauer.com

waldbauer.com (http://www.waldbauer.com/vb/index.php)
-   SPI OA4 Open Access II/III/IV (2,3,4) Anwender Forum (http://www.waldbauer.com/vb/forumdisplay.php?f=57)
-   -   Suchen - Ersetzen mit OA (http://www.waldbauer.com/vb/showthread.php?t=1841)

Suchen - Ersetzen mit OA
 
Hallo,
ich sollte eine Datenbank neu organisieren und suche nun nach einer Möglichkeit,
in mehrer ausgewählten Datensätze gewisse Buchstaben durch andere zu ersetzen.
Welche Möglichkeiten gibt es da?

Vielen Dank für die Hilfe.

Klaus

Im Grunde brauchst du dazu ein kleines Programm welches gemäß deinem Suchmuster Datensatz für Datensatz durchgeht und die entsprechenden Dinge ändert.

Wie gross ist denn die Datenbank ?
Welche Daten (Zeichen) müssen ersetzt werden ?

Suchen - Ersetzen
 
Danke für die schnelle Antwort.

Es müssen ca. 500 bis 800 Datensätze geändert werden.

Es muss beispielweise E-Q050-A301.140 ersetzt werden durch E-Fiesta-A301.140
G-Q050-C460.155 ersetzt werden durch G-Fiesta-C460.155

Also nur ein Teil des Feldinhaltes darf ersetzt werden.

Ich hoffe für dieses Problem gibt es eine einfache Möglichkeit wie es auch bei Access
möglich ist.

Danke für Ihre Nachricht.

mfg.
K. Barthel

Ich hab den Code nicht getestet aber im Grunde genommen müsste er funktionieren:

Code:

local view daten=from deinedatenbank
use daten
while recno(daten) > 0
local str zeile = extract(daten.wert, 1, 2)&"Fiesta"&extract(daten.wert, 3, length(daten.wert))
daten.wert = zeile
replace daten
find daten next
end while
use daten end


Suchen - Ersetzen
 
Vielen Dank für die schnelle Antwort.

Leider kann ich mit diesen zeilen nichts anfangen, da ich mich im Teil "Programierung"
nicht auskenne.
Gibt es keine Möglichkeit über Abfrage und Aktualisieren?

Vielen Dank für die Hilfe.

K. Barthel

Ich denke nicht, dass man das über die Abfrage lösen kann zumindest konnte ich nichts im datenbankhandbuch finden ob man mit Stringvariablen arbeiten kann. Wenn ich weiss wie die Datenbank und das Feld heisst, kann ich dir das Programm aber exakt anpassen somit musst du nur den Teil in den Programmierer laden und 1 x ausführen.

Die Datenbank heißt: "ART1" das Feld heißt "ARTNL1" anschließend müsste noch
in ener anderen Datenbank "AT1" im Feld "AN3" diese Änderungen ebenfalls vorgenommen werden.

Es müsste die Bezeichnung "Q050" durch "Fiesta" ersetzt werden.

Danke dür deine Bemühungen.

Dieses Programm macht folgendes:
E-Q050-A301.140 wird E-Fiesta-A301.140
G-Q050-C460.155 wird G-Fiesta-C460.155
oder auch
E-Q050-A301.140.XXXX wird E-Fiesta-A301.140.XXXX

1) Sichere deine Datenbank IF,DF und MF

2) Du startest einfach den Programmierer und fügst den Code unten ein, danach drückst du auf ALT+F10, das wars, habs mit 3 Daten probiert, geht einwandfrei.

Wichtig: nur 1 x mit ALT+F10 durchlaufen lassen !
Wichtig: die Feldlänge darf sich in diesem Fall natürlich nicht ändern !
E-Q050- und dann wieder G-A0501... (also keine unterschiedliche Längen zwischen den Bindestrichen) !

Code:

local view daten=from ART1
use daten
while recno(daten) > 0
local str zeile = extract(daten.ARTNL1, 1, 2)&"Fiesta"&extract(daten.ARTNL1, 7, length(daten.ARTNL1))
daten.ARTNL1 = zeile
replace daten
find daten next
end while
use daten end


Was noch geht - über PHP auf die Daten zugreifen: Schon probiert ?
Ich habe die Datenbank einfach einmal mit 3 Datensätzen angelegt und hochgeladen.

http://www.waldbauer.com/tmp/showdb.php?dbselect=art1

Wenn du Interesse hast kannst du auch einmal deine Datenbank (natürlich mit einem anderen Namen) hochladen und direkt darauf zugreifen.

Guten Morgen.

PHP habe ich noch nicht gehört und noch nicht probiert?

Wenn ich deinen Code richtig lese, werden aber alle Daten durch Fiesta ersetzt. Es sollen aber nur die Datensätze geändert werden, die an dieser Stelle "Q050" enthalten.
Was muss ich ändern, wenn ich andere Daten ersetzen möchte. Wie kann ich die entsprechende Stelle und Länge angeben.

Wäre es auch möglich, die Datei in DBF umzuwandel und in Excel zu exportieren, dort
die Änderungen vorzunehmen und dann wieder importieren. Allerdings enthält eine dieser
Datei insgesamt ca. 25 tsd. Datensätze.

Vielen Dank für Deine vielen Bemühungen.

Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 Uhr.

Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.