Hallo,

Andreas schrieb:
> kann man Calc und Writer von MSAccess fernsteuern ?
> Also so wie das mit Access und Excel geht, wenn das ganze 
> MS-Office zu 
> Verfügung steht.

ja, ist alles problemlos mit VBA möglich.

Einige Links für die (Makro-)Programmierung von OOo:
http://www.calc-info.de/links.htm#makroprogrammierung

> Ich möchte gern aus Access Daten an Calc übertragen, also einerseits 
> direkt Zellen einzeln füllen 

z.B.:

'Achtung VBA
Private Sub CommandButton1_Click()
 Call wert_nach_Calc(1.234)
End Sub

Sub wert_nach_Calc(Wert)
 Set oServiceManager = CreateObject("com.sun.star.ServiceManager")
 Set oDesktop = oServiceManager.createInstance("com.sun.star.frame.Desktop")
 Dim aNoArgs()
 URL = "private:factory/scalc"
 Set Doc = oDesktop.loadComponentFromURL(URL, "_blank", 0, aNoArgs())
 Doc.Sheets().getByName("Tabelle1").getCellRangeByName("A1").Value = Wert
End Sub


> und andererseits auch ganze Recordsets 
> überschaufeln für Reports.

Ist genau das Gleiche, nur das man vorzugsweise die Daten in ein Array packt 
und dieses mit SetDataArray():
http://api.openoffice.org/docs/common/ref/com/sun/star/sheet/XCellRangeData.html#setDataArray

schreibt, damit es schneller geht.
Das Array muß dabei einen speziellen Aufbau haben, denn man wohl am Leichtesten 
durch ein Beispiel mit getDataArray() versteht:

'...
x = oSheet.getCellRangeByName("B14:E20")

'Daten aus Bereich x in Array:
xDataArray() = x.getDataArray()

'Daten aus erster Spalte (B14 bis B20) in Array:
Redim Preserve xSource(UBound(xDataArray()))
For i = LBound(xSource()) To UBound(xSource())
 xRow() = x(i)
 xSource(i) = xRow(0)
Next I

'xSource() enthält nun die Werte aus B14:B20

abgeleitet von:
http://prdownloads.sourceforge.net/ooodocs/ComboBox_in_a_Sheet_En.sxc

(Link nicht mehr erreichbar)



Gruß
Jörg


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Antwort per Email an