Seite 1 von 1

Re: Abfrage anzeigen lassen

Verfasst: Mo, 23.08.2010 09:19
von komma4
Moin Hein,

JEIN - Du brauchst schon die Schleife, da Du immer nur eine Zeile des ResultSets bekommst.
Was Deinen Code langsam macht (bei mehr als ein Paar Werten) ist das Setzen der einzelnen Werte pro Zelle.

Fülle erst ein Array und nehme dann .setDataArray um alles auf einmal in einen Bereich zu schreiben.

Beispiele für die Array-Bearbeitung mit der Forensuche und in meiner Extension OOoDIL - DoumentInfoListe

Noch ein Tipp: erzeuge das Calc-Doument im Hintergrund (Suchbegriff: HIDDEN) und zeige es erst nach Ende des Füllvorgangs an (auch in OOoDIL).

Hilft das weiter?


Was meinst Du mit "Ausgabe in Base"?
Du kannst auch eine Abfrage definieren und die aufrufen... hab' ich aber noch nicht probiert.

Re: Base-Abfrage in Calc ausgeben

Verfasst: Mo, 23.08.2010 12:23
von komma4
Lade Dir OOoDIL und schau den Code an.

Beide Antworten sind da drinn:

HIDDEN bei den DateiEigenschaften des Öffnens FileProperties

Code: Alles auswählen

myCell.setDataArray( Datenarray )

Leider keine Zeit mir das näher anzuschauen... kommst Du so schon weiter?

Re: Base-Abfrage in Calc ausgeben

Verfasst: Mo, 23.08.2010 16:06
von bst
Auch Hallo,

Dein Array ist M.E. falsch dimensioniert. Am einfachsten, M.E., nimm zuvor ein:

Code: Alles auswählen

Datenarray = myCell.getDataArray 
dann hast Du ein Array mit der richtigen Dimensionierung. Alternativ scheint auch dieses zu funktionieren.

Beachte dass hier der ReDim innerhalb der Schleife steht!! Wenn ich das hier nicht mache bekommen alle Zellen einer Spalte den gleichen Inhalt?

cu, Bernd
--

Code: Alles auswählen

Sub Main
   Dim Datenarray(1 To 66) As Variant
   
   for i = 1 to 66
      redim arHilf(1 to 128)
      for j = 1 to 128
         arHilf(j) = 100*j+i
      next
      Datenarray(i) = arHilf
   next
   Dim mArgs()
   oDocument = StarDesktop.loadComponentFromURL ("private:factory/scalc","_blank", 0, mArgs())
   mySheet = oDocument.sheets(0)
   myCell = mySheet.getCellRangeByPosition(1,1,128,66)
   myCell.setDataArray Datenarray
End Sub