Base-Abfrage in Calc ausgeben

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Base-Abfrage in Calc ausgeben

Re: Base-Abfrage in Calc ausgeben

von bst » Mo, 23.08.2010 16:06

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

Re: Base-Abfrage in Calc ausgeben

von komma4 » Mo, 23.08.2010 12:23

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: Abfrage anzeigen lassen

von komma4 » Mo, 23.08.2010 09:19

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.

Nach oben