Re: [de-users] Base, Formulardaten mit Makro ändern

2006-09-21 Diskussionsfäden Thomas Krumbein
Hey Ulrich,

Ulrich Moehrke schrieb:
[..]
 Leider wird die Änderung aber nicht in die Datenbank geschrieben. Nach
 Blättern auf einen anderen Datensatz und zurückkommen ist der alte Text
 wieder da. 

Klar. Du musst deine Änderungen auch speichern. [EMAIL PROTECTED]
es einmal mit der Anweisung

oForm.upDateRow()

Das bewirkt das Speichern (zurückschreiben des aktuellen Datensatzes in
dei Datenbank) und anschliessend

oForm.reload()

Das liest die Daten aus der Datenbank wieder aus und erzeugt den
Resultset neu. Dann sollten die neune Daten auch da sein.

[..]
 Auch
 oform.setstring(2,blabla)

Das sollte allerdings auch gehen, aber auch dann musst du die
Datenreihen zurückspeichern! Hier änderst du ja nur den Resultset, der
ist ein Abbild der Datenbank, hat aber direkt dorthin keine Beziehung mehr!

[..]Hat jemand einen Tipp für mich bzw. welche
 Doku hätte ich finden müssen, die mir bei der Lösung hilft.

API, dort die IDL Referenz ? OK, schwer zu lesen.
Ein gutes Buch? z.B. das:
http://www.ooodev.org/index.php?option=com_contenttask=viewid=41Itemid=93#base_2
(Kann ich nur wärmstens empfehlen ;-) )

Gruss
Thomas



-- 
## Marketing deutschsprachiges Projekt
## http://de.openoffice.org  - www.openoffice.org
## Vorstand OpenOffice.org Deutschland e.V.
## Mitglieder willkommen: www.OOoDeV.org

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[de-users] Base, Formulardaten mit Makro ändern

2006-09-20 Diskussionsfäden Ulrich Moehrke
Hallo,

ich verwende OpenOffice 2.0.3 Base mit interner Datenbank HSQLDB (für
Tests).

Vorrede:
Ich möchte Dateinamen in einer Datenbankspalte speichern und diese
komfortabel auf einem Formular bearbeiten können. Ein Dateiauswahlfeld kann
man leider nicht direkt mit dem Datenfeld verbinden. Möglicherweise wäre
das für mich auch nicht geeignet, da ich den Namen noch nach meinem
Geschmack bearbeiten möchte.

Problem:
Ich habe auf einem Formular (einzelner Datensatz, nicht Tabelle) ein
Textfeld txtfilename, dass mit dem Datenfeld filename verbunden ist.
Außerdem gibt es daneben eine Schaltfläche. Beim Drücken der Schaltfläche
soll der Text im Feld txtfilename verändern werden, so dass die Änderung
beim Wechsel auf einen anderen Datensatz auch in der Datenbank gespeichert
wird. Das Ändern des Textes mit Makro habe ich geschafft:
odoc = ThisComponent
oform = odoc.drawpage.forms.getbyindex(0)
oTextFeld = oform.getbyname(txtfilename)
oTextFeld.text = blabla
Leider wird die Änderung aber nicht in die Datenbank geschrieben. Nach
Blättern auf einen anderen Datensatz und zurückkommen ist der alte Text
wieder da. Ich habe auch zusätzlich
oform.ismodified = true
versucht. Dann bekomme ich beim Wechsel zu einem anderen Datensatz (d.h.
beim Speichern?) einen Fehler:
SQL-Status: HY
Fehler-Code: 1000

Es wurden keine Werte verändert.

Auch
oform.setstring(2,blabla)
war nicht mit Erfolg verbunden. (Die Tabelle hat zwei Spalten, index
und filename.)

Wie bekomme ich es hin, dass sich das Makro so verhält, als würde ich in das
Textfeld blabla schreiben? Hat jemand einen Tipp für mich bzw. welche
Doku hätte ich finden müssen, die mir bei der Lösung hilft.

Vielen Dank,
Ulli


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]