Ersetzen von Einträgen in Datenbanktabelle

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

ameisenbär
Beiträge: 2
Registriert: Mi, 24.06.2009 14:28

Ersetzen von Einträgen in Datenbanktabelle

Beitrag 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.
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Ersetzen von Einträgen in Datenbanktabelle

Beitrag 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
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Ersetzen von Einträgen in Datenbanktabelle

Beitrag 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" )
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
ameisenbär
Beiträge: 2
Registriert: Mi, 24.06.2009 14:28

Re: Ersetzen von Einträgen in Datenbanktabelle

Beitrag von ameisenbär »

Ich hab's mit dem SQL-Code gemacht, hat alles geklappt, danke!

Viele Grüße
Robert
Antworten