PDA

Vollständige Version anzeigen : Leerzeichen bis Buchstaben löschen


ms_office_user_0390
13.06.2012, 09:21
Hallo,

ich bin gerade dabei eine Datenbank aufzubauen, die Umsätze und Rabatte bestimmen kann. Dazu importiere ich 5 csv-Tabellen.

Nun habe ich folgendes Problem: ich möchte in einer dieser Tabellen aus der Spalte Kundennummer für jeden Datensatz genau die ersten 8 Leerzeichen löschen, da diese linksbündig angeordnet sein müssen.

Allerdings darf nur dort gelöscht werden, wo anschließend Buchstaben folgen (z.B. NL, siehe unten) Diese zwei Buchstaben können allerdings von Import zu Import variieren.

"......+ I_BD_DCM:::::A00000051:B00001428";"I_BD_DCM:::::A00000051:B00001428";"547.765"
"........NL/8194165";"W. Schuurman Elektro";"547.765"
"....+ I_BD_DCM:::::A00000053";"I_BD_DCM:::::A00000053";"6.861.037"
"......+ I_BD_DCM:::::A00000053:B00000647";"I_BD_DCM:::::A00000053:B00000647";"6.861.037"
"........NL/819

Leider werden die Leerzeichen im Forum nicht mit angezeigt, daher habe ich sie durch Punkte ersetzt.

Ich hoffe, die Problematik ist halbwegs verständlich.

Vielen Dank im Vorraus

fhentzsc
13.06.2012, 09:36
Hallo "User_0390",

>Ich hoffe, die Problematik ist halbwegs verständlich.

noch nicht ganz.

Bei ".....+" also die Leerzeichen nicht entfernen und bei ".....NL" schon?

Gruß

Frank

ms_office_user_0390
13.06.2012, 09:47
Hallo Frank,

ganz genau. Allerdings sollen die Leerzeichen nicht ausschließlich bis "NL" gelöscht werden, sondern allgemein bis zwei Großbuchstaben beginnen, also z.B. "ES" oder "IT".

Mit freundlichem Gruß
ms_office_user_0390

Maxel
13.06.2012, 09:50
Vorausgesetzt, es sind genau 8 Leerzeichen:
If ASC(MID(AlterString, 9, 1)) BETWEEN 65 AND 90 THEN
NeuerString = MID(AlterString, 9)
End If

ms_office_user_0390
13.06.2012, 09:56
Hallo Maxel,

wo füge ich diesen Code ein? (Bin ein Access-Neuling)

MfG

Maxel
13.06.2012, 10:14
Nun, Du könntest das mit einer Aktualisierungsabfrage lösen. Kommst Du da klar?

ms_office_user_0390
13.06.2012, 10:32
hab ein Bild von der Problematik gemacht. Wie kann ich dieses hier hochladen? ich soll eine die URL zu der Grafik eingeben...

Anne Berg
13.06.2012, 10:42
Hallo,

gehe über das erweiterte Antwortfenster, dort findest du die Option Dateien hochzuladen.

Was den Vorschlag von Maxel betrifft, so halte ich die Lösung angesichts der von dir geposteten Beispieldaten für gefährlich und würde hier anstelle von Mid() den Einsatz der Trim-Funktion vorziehen.

Beispiel für den SQL-Code:Update tabelle Set feld = Trim(feld) Where Left(Trim(feld), 2) Between "AA" And "ZZ"

ms_office_user_0390
13.06.2012, 10:46
zu dem Vorschlag von Maxel...

Anne Berg
13.06.2012, 10:59
Füge eine neue Spalte ein und weise dieser das Ergebnis zu, um zu prüfen, ob das überhaupt deinen Vorstellungen entspricht, ehe du dir die Kundennummer möglicherweise zerstörst.

Und dann zeige bitte den SQL-Code der Abfrage, der sagt meist mehr aus als das Bild vom Entwurfsfenster.

ms_office_user_0390
13.06.2012, 11:12
hat leider nicht wie gewünscht funktioniert.
Bin gegen 13 Uhr wieder ansprechbar.

MfG
ms_office_user_0390

ebs17
13.06.2012, 11:20
Dazu importiere ich 5 csv-Tabellen.
Wenn Du Feldinhalte für eine Kundennummer(!) wie oben gezeigt hast, hast Du wahrscheinlich schon mit einer falschen Methode importiert mit der Folge, dass du nun erhebliche Folgeprobleme lösen musst.

Hast Du die CSV-Dateien analysiert und für den Import eine passende Importspezifikation verwendet?

Anne Berg
13.06.2012, 11:57
Entweder Select oder Update, du kannst nicht zwei Abfragen in eine packen.

ms_office_user_0390
13.06.2012, 14:37
Vielen Dank für die zahlreichen Antworten. Es ist super, wie schnell man hier eine Lösung für sein Problem vorgeschlagen bekommt. Für einige Lösungsvorschläge jedoch, braucht man die Routine und Erfahrung mit Access umzugehen. Ich bin aber mir sicher, dass ich noch eine einfache Problemlösung finden werde.

Nochmals Danke an alle. ms_office_user_0390

Anne Berg
14.06.2012, 08:49
Einfacher als mit der von mir vorgeschlagenen Aktualisierungsabfrage wird es wohl nicht gehen, wenn du die Daten in der Tabelle tatsächlich ändern willst.

ebs17
14.06.2012, 09:29
Ich wiederhole:
"......+ I_BD_DCM:::::A00000051:B00001428";"I_BD_DCM:::::A00000051:B00001428";"547.765"
"........NL/8194165";"W. Schuurman Elektro";"547.765"
"....+ I_BD_DCM:::::A00000053";"I_BD_DCM:::::A00000053";"6.861.037"
"......+ I_BD_DCM:::::A00000053:B00000647";"I_BD_DCM:::::A00000053:B00000647";"6.861.037"
"........NL/819
Wenn das Gezeigte Inhalt eines Feldes nach Import ist, ist bereits der Import falsch gelaufen. Das "Einfachste" wäre also aus meiner Sicht, gleich richtig zu importieren, also passende Inhalte in passende Felder.

Der Glaube, man hätte dadurch, dass man die Daten erst einmal irgendwie in die Datenbank gezogen hat, einen Fortschritt erzielt, ist zwar weit verbreitet, aber regelmäßig ein Irrtum.