Gelöst :Datensatz an eine Tabelle über Basic-Makro anhängen?
Verfasst: So 20. Nov 2011, 17:39
Hallo zusammen,
ich stehe momentan vor folgendem Problem:
Ich habe Daten aus einer Abfrage, die einem Formular dargestellt werden. In diesem Formular, kann dann ein Datensatz ausgewählt werden, der dann über ein Makro in eine andere Tabelle der Datenbank eingefügt werden soll. Ich möchte das Ganze über SDBC machen, da eine SQL-Anfügeabfrage sehr aufwendig wäre. Folgenden Code habe ich versucht.
Leider bricht das Makro bei der Zeile " oTLadebuch.moveToInsertRow()" da das RecordSet angeblich "Read only" ist. Was mache ich falsch?
ich stehe momentan vor folgendem Problem:
Ich habe Daten aus einer Abfrage, die einem Formular dargestellt werden. In diesem Formular, kann dann ein Datensatz ausgewählt werden, der dann über ein Makro in eine andere Tabelle der Datenbank eingefügt werden soll. Ich möchte das Ganze über SDBC machen, da eine SQL-Anfügeabfrage sehr aufwendig wäre. Folgenden Code habe ich versucht.
Code: Alles auswählen
oForm = ThisDatabaseDocument.FormDocuments.GetByName("LadebuchEingabe").component.drawpage.Forms.getByName("MainForm")
'' Schreiben der Daten
iDatum = oForm.getByName("eDatum").date
sDatum = Str(iDatum\10000)+"-" + Str((idatum-((iDatum\10000)*10000))\100)+"-"+Str(idatum-((idatum-((iDatum\10000)*10000))\100)*100-(iDatum\10000)*10000)
sAnzahl = str(oForm.getByName("eMenge").value)
sBemerkungen = oForm.getByName("eBemerkungen").Text
oStatement = oForm.ActiveConnection.createStatement()
sSQL = "SELECT * FROM ""Ladebuch"""
oStatement.ResultSetConcurrency = com.sun.star.sdbc.ResultSetConcurrency.UPDATABLE
oStatement.ResultSetType = com.sun.star.sdbc.ResultSetType.SCROLL_SENSITIVE
oTLadebuch = oStatement.executeQuery(sSQL)
oTLadebuch.moveToInsertRow()
oTLadebuch.updateString(1,sDatum)
oTLadebuch.updateString(2,oForm.getString(2))
oTLadebuch.updateString(3,oForm.getString(3))
oTLadebuch.updateString(4,oForm.getString(4))
oTLadebuch.updateString(5,oForm.getString(5))
oTLadebuch.updateString(6,oForm.getString(6))
oTLadebuch.updateString(7,oForm.getString(7))
oTLadebuch.updateString(1,sAnzahl)
oTLadebuch.updateString(1,sBemerkungen)
oTLadebuch.insertRow()
''Ende des Schreibens