PDA

Vollständige Version anzeigen : Buchstaben tauschen in einer Abfrage


Ati
07.01.2004, 16:05
Mahlzeit Leute,
ich hab mal wieder ein ziemlich komisches Problem. Und zwar folgendes:
Ich stell momentan eine Auswertung für meine Firma zusammen, wo am Ende nur noch eine Exceltabelle mit sämtlichen Informationen übrig bleiben soll. Die ganze Vorarbeit wird über Access gemacht. Ich habe also mehrere Abfragen erstellt um die benötigten Informationen zu sammeln. In der jetzt folgende Abfrage muß ein einzelnes Zeichen gegenüber der der zugrunde liegenden Abfrage geändert werden. Ein Beispiel: In der Quellabfrage lautet die Artikelbezeichnung "90V15" in der nächsten Abfrage muß daraus "90S15" werden. und das mit allen Artikeln in dieser Spalte. Unter Excel habe ich das mit dem "Replace"-Befehl geschafft. Wie kann ich das in Access automatisch machen.

Danke im voraus
Ati

jmc
07.01.2004, 16:28
Hi

wenn es immer genau das 3. Zeichen ist und immer ein "S" eingesetzt werden soll, dann mach in der Abfrage eine zusätzliche Spalte:

ArtikelNEU: =Left(ArtikelBez; 2) & "S" & Right(ArtikelBez; 2)

Ati
07.01.2004, 16:40
Tja. Es ist aber nicht immer das 3. Zeichen. So eine Artikelbezeichnung kann auch z.B. 180V25 lauten.

jmc
07.01.2004, 17:02
... oder auch mal "XYZ9876" oder mal "12345AB67"

Kannst du denn eine Regel aufstellen ? Sonst wird es relativ schwierig ...

Ati
07.01.2004, 17:22
Naja. So dramatisch ist es nun nicht. Als Regel kann ich nur sagen, daß immer "V" gegen "S" getauscht werden muss. D.h. es kommt also immer ein "v" auch vor.

jmc
07.01.2004, 17:36
Hi

komischerweise funktioniert bei mir folgendes nicht:

ArtikelNeu: Replace([ArtikelBez];"v";"S")

wenn ich es aber in einer Funtktion mache, dann geht's:

Public Function fncReplace(strText) As String
fncReplace = Replace(strText, "V", "S")
End Function

nun kannst du diese Funktion in der Abfrage verwenden:

ArtikelNeu: fncReplace([ArtikelBez])

Ati
07.01.2004, 17:44
So hab ich es noch gar nicht versucht. Deinen ersten test habe ich auch schon versucht. Sag Dir gleich bescheid ob das so geklappt hat.

Ati
07.01.2004, 17:49
Du kannst mich ja für doof halten. Aber wo muß ich die Funktion erstellen??

jmc
07.01.2004, 17:51
http://www.das-forum.ch/_various/pics/smilies/crazy/crazy13.gif ... in einem globale Modul - sind die Würfel gefallen ?

Ati
07.01.2004, 17:59
Hab ich ja gemacht. Mein Feld sieht jetzt so aus: ART: fncreplace([test]![Artikel]), und beim starten erhalte ich folgende Fehlermeldung:
Undefinierte Funktion 'fncreplace' in Ausdruck.

jmc
07.01.2004, 18:08
Hi

kann nicht sein - da musst du irgendwo einen "Muggenseggel" - wie wir in der Schweiz sagen - falsch haben ...

Mit Modul meine ich ein alleinstehendes, globales Modul

kannst du nochmals schauen und sonst lade mal die mdb rasch hoch ...
.

Oskar
07.01.2004, 18:09
Ich sehe: [test]![Artikel], wo nimmst du denn die Artikelbezeichnung her?
(Ist nicht richtig rs![Artikel] bei recordset )

jmc
07.01.2004, 18:12
Hallo Oskar - http://www.das-forum.ch/_various/pics/smilies/muede/muede20.gif

wir sprechen die ganze Zeit von ABFRAGE nicht von Recordset ...

[Test]![Artikel] wohl deshalb, weil es möglicherweise das Feld Artikel noch aus einer anderen Tabelle in der Abfrage hat ... (sonst wär die Nennung der Tabelle überflüssig)

Ati
07.01.2004, 18:17
Ich befürchte das kann nur ein "Schwachsinnsfehler von mir sein. Nitte überzeug Dich selbst.

jmc
07.01.2004, 18:23
Hi

nenn das Module irgendwie - aber nicht gleich wie die Funktion !! http://www.das-forum.ch/_various/pics/smilies/schuechtern/schuechtern17.gif

Ati
07.01.2004, 18:29
Das glaub ich einfach nicht daß das mein Fehler war. Mein Gott bin ich blöd.
Vielen Dank für Deine Hilfe.

Oskar
07.01.2004, 18:30
Hallo jmc,

habe deine Function in eine Abfrage eingebaut und bei mir funktionierts.
Scheint doch eijn Muggenseggel zu sein