Seite 1 von 1

Ersetzen von Einträgen in Datenbanktabelle

Verfasst: Mi, 24.06.2009 15:20
von ameisenbär
Hallo,
ich arbeite zum ersten Mal mit einer Datenbank und habe mir eine Tabelle erstellt, in der ich die Ergebnisse eines Fragebogens eingetragen habe. Also jede Zeile repräsentiert eine Person und die Spalten stehen für die Fragen. In jeder Zelle steht entweder A, B, C oder D als Antwort auf die Frage.

Nun möchte ich zwecks besserer Auswertung jeden Buchstaben durch eine Zahl erstezen:
A --> 2
B --> 1
C --> -1
D --> -2

Ich habe das Forum schon einmal durchsucht und ein ähnliches Thema gefunden: viewtopic.php?f=18&t=21496&p=92030&hili ... ing#p92030

Da wurde ein Makro vorgeschlagen:

Code: Alles auswählen

ReplaceDescriptor= mySheet.createReplaceDescriptor()
With ReplaceDescriptor
   .SearchString = "/"
   .ReplaceString = ""
   .SearchWords = TRUE
End With
mySheet.ReplaceAll(ReplaceDescriptor)
Ich habe nun ein neues Makro erstellt, / durch A ersetzt und "" durch "2", sowie das ganze mit Sub Main() und End Sub umschlossen (hab ich aus wikipedia). Kompilieren klappt, beim Ausführen erhalte ich die Meldung: "Basic runtime error. Object variable not set."

Ich kenne die Syntax von Visual Basic überhaupt nicht, das ganze muss die Woche fertig werden und es wäre schön wenn mir jemand weiterhilft.

Vielen Dank,
Robert.

Re: Ersetzen von Einträgen in Datenbanktabelle

Verfasst: Mi, 24.06.2009 15:32
von Barlee
Hallo ameisenbär,

wende doch REPLACE direkt auf die Tabelle an.
Unter Extras/SQL:

Code: Alles auswählen

UPDATE "Tabellenname" SET "Spaltenname" = REPLACE("Spaltenname",'A',2)
Spaltenname = die Spalte, in der Werte ersetzt werden sollen.
Teste am besten vorher mit einer Probetabelle und dann wendest Du es produktiv an. Schneller gehts nicht.

Gruß Barlee

Re: Ersetzen von Einträgen in Datenbanktabelle

Verfasst: Mi, 24.06.2009 15:59
von komma4
Der Code ist nicht zur Manipulation von Datenbeständen einer ODB geeignet.

Der ist für ein Calc-Tabellenblatt gemacht; hierzu fehlt noch die Zuweisung der Objektvariablen

Code: Alles auswählen

mySheet = ThisComponent.Sheets().getByName( "Tabelle1" )

Re: Ersetzen von Einträgen in Datenbanktabelle

Verfasst: Sa, 27.06.2009 00:30
von ameisenbär
Ich hab's mit dem SQL-Code gemacht, hat alles geklappt, danke!

Viele Grüße
Robert