Daten aus Access per VBA in Calc Tabelle übertragen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Axel Richter
****
Beiträge: 159
Registriert: So, 17.10.2010 16:54

Re: Daten aus Access per VBA in Calc Tabelle übertragen

Beitrag von Axel Richter »

Hallo,

ja, es gibt ein AxtiveX-Object für openOffice, siehe http://wiki.services.openoffice.org/wik ... ion_Bridge und http://www.kalitech.fr/clients/doc/VB_APIOOo_en.html.

Das folgende VBA-Beispiel bringt einen Teil der Nordwind-Datenbank in ein Calc-Sheet.

Code: Alles auswählen

Sub NordwindToCalc()

 Set oSM = CreateObject("com.sun.star.ServiceManager")
 Set oDesk = oSM.createInstance("com.sun.star.frame.Desktop")

 Dim arg()
 Set oCalcDoc = oDesk.loadComponentFromURL("private:factory/scalc", "_blank", 0, arg())
 Set oSheet = oCalcDoc.getSheets().getByIndex(0)

 SQL = "Select * from kunden where land = 'Deutschland'"
 Set rs = CurrentDb.OpenRecordset(SQL)
 With rs
  For i = 0 To .Fields.Count - 1
   oSheet.getCellByPosition(i, 0).String = .Fields(i).Name
  Next
  zeile = 1
  Do While Not .EOF
   For i = 0 To .Fields.Count - 1
    If IsNumeric(.Fields(i)) Then
     oSheet.getCellByPosition(i, zeile).Value = .Fields(i)
    ElseIf IsNull(.Fields(i)) Then
     oSheet.getCellByPosition(i, zeile).String = ""
    Else
     oSheet.getCellByPosition(i, zeile).String = .Fields(i)
    End If
   Next
   .MoveNext
   zeile = zeile + 1
  Loop
 End With
End Sub

viele Grüße

Axel