ich habe mir anhand des Handbuchs ein Makro gebaut, das einen Wert aus einer Tabelle "Client Data" ausliest und diesen in eine Tabelle "Basic Data" schreiben soll, wenn der "Client", welcher in einem Listenfeld verknüpft ist, verändert wird. Das Makro ist an das Listenfeld gebunden und wird mit dem Ereignis "Nach dem Aktualisieren" ausgeführt.
Code: Alles auswählen
SUB Update_Client_Charge
DIM oDoc, oDrawpage, oForm, oFeld, oClient, oResult, oDatenquelle, oVerbindung, oSQL_Anweisung AS OBJECT
DIM stSQL AS STRING
DIM charge AS Double
oDoc = thisComponent
oDrawpage = oDoc.Drawpage
oForm = oDrawpage.Forms.getByName("Filter").getByName("Basic_Data")
oFeld = oForm.getByName("fmtID")
oClient = oForm.getByName("Selected by")
oDatenquelle = ThisComponent.Parent.CurrentController
If NOT (oDatenquelle.isConnected()) THEN
oDatenquelle.connect()
END IF
oVerbindung = oDatenquelle.ActiveConnection()
oSQL_Anweisung = oVerbindung.createStatement()
' Read Client Fee from Client Data if a client is selected (List field!)
stSql = "SELECT ""ClientFee"" FROM ""Client Data"" WHERE ""ID_Client"" = '"+oClient.GetCurrentValue()+"' "
oResult = oSQL_Anweisung.executeQuery(stSql)
charge = oResult.getdouble()
oForm.updateFloat(oForm.findcolumn("Client Charge"),charge) ' Insert Client Charge in Basic Data
IF oForm.isNew THEN
oForm.insertRow()
ELSE
oForm.updateRow()
END IF
END SUB
Ich habe auch schon versucht, das Zellenupdate mit dem SQL-Befehl "update" durchzuführen. Leider ohne Erfolg.
Wie kann ich diesen Typenkonflikt umgehen?
Gruß
Marko
Moderation,4: verschoben in BASIC-Unterbereich, wo alle Makro-Fragen hin gehören; Betreff angepasst