Inhalte im Formular kopieren schlägt fehl

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

trasbach
Beiträge: 2
Registriert: Mo, 15.03.2010 23:51

Inhalte im Formular kopieren schlägt fehl

Beitrag von trasbach »

Hallo an alle,

ich versuche in einem Formular den Inhalt eines Textfeldes, der über Verknüpfungen in der Datenbank ermittelt wird via Makro in ein anderes Feld zu schreiben.
Dieses Feld befindet sich in einem Unterformular. Soweit klappt auch alles ganz gut nur der so in die Zelle kopierte Wert wird nicht in die Datenbank geschrieben. Auch ein

Code: Alles auswählen

bSubform.updateRow()
bSubform.reload
bringt nichts.

Außerdem wird die Gleitkommazahl aus dem ersten Feld nicht richtig kopiert. Angenommen es steht 2,54 im Feld dannn wird nur 2 übernommen. Den Teil kriege ich zwar mit einem workaround in den Griff aber vielleicht hat ja jemand hierzu einen Tipp


Hier nochmal der ganze Code

Code: Alles auswählen

Sub Preisuebernehmen
Dim Preis As Single

oDoc = ThisComponent
oDocView = oDoc.getCurrentController()
oForm = oDoc.drawpage.forms(0)
aSubform = oForm.getbyName("Formular")
aFeld = aSubform.getByName("txtPreis")
Preis = aFeld.text
bSubform = oForm.getByName("SubForm")
bFeld = bSubform.getbyName("txtEingabe")
bFeld.text = Preis

End Sub
Vielen Dank für jede Hilfe und gute Nacht, habe mich jetzt lang genug damit rumgeärgert und genehmige mir jetzt erstmal eine Mütze voll Schlaf
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Inhalte im Formular kopieren schlägt fehl

Beitrag von eBayer »

Die abgeschnittenen Dezimalstellen im Eingabefeld werden ihre Ursache in der Definition des Eingabefeldes haben.
Das Eingabefeld würde ich als Dezimal mit 2 Nachkommastellen einrichten.
Und damit die Daten des intern gefüllten Eingabefeldes auch in der Tabelle gespeichert werden, solltest Du einen commit einsetzen.
Suche hier im Forum und Du wirst einiges über den Commit finden.
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
trasbach
Beiträge: 2
Registriert: Mo, 15.03.2010 23:51

Re: Inhalte im Formular kopieren schlägt fehl

Beitrag von trasbach »

Hallo eBayer danke für deinen Tipp,

mit commit und ein paar ergänzungen funktioniert es so wie es soll. Ob das jetzt besonders schön ist weiß ich nicht. Aber ich bin schon mal einen Schritt weiter.
Für verbesserungsvorschläge bin ich immer ganz Ohr.

Code: Alles auswählen

bCtr = oDoc.CurrentController.GetControl(bFeld)
Mit dieser Methode war es mir möglich in ein als "Numerisches Feld" deklariertes Feld zu schreiben (bFeld.text = Preis) ging da nicht mehr.


Für alle die ein änliches Problem haben hier meine Lösung:

Code: Alles auswählen

Sub Preisuebernehmen

Dim Preis As String

oDoc = ThisComponent
oDocView = oDoc.getCurrentController()
oForm = oDoc.drawpage.forms(0)
aSubform = oForm.getbyName("Formular")
aFeld = aSubform.getByName("txtPreis")
Preis = aFeld.text
bSubform = oForm.getByName("SubForm")
bFeld = bSubform.getbyName("txtEingabe")
bCtr = oDoc.CurrentController.GetControl(bFeld)
bCtr.text = CSng(Preis)
bFeld.commit(true)
bSubform.updateRow()
bSubform.reload

End Sub
Antworten