Re: [de-users] Kann man Calc von MSAccess fernsteuern ?
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: users-unsubscr...@de.openoffice.org For additional commands, e-mail: users-h...@de.openoffice.org
Re: [de-users] Kann man Calc von MSAccess fernsteuern ?
Hallo Andreas, Am 03.07.2010 11:40, schrieb Andreas: Weißt noch was konkret zu Datenaustausch mit Calc. Ich muß zT große Datendumps als Spreadsheet erzeugen. Excel kennt da eine Funktion, der man ein Recordset übergeben kann und die zieht dann die Daten weit schneller, als wenn man es Zelle für Zelle schreibt. Hm. Da fürchte ich, wirst Du schon die Zellen durchlaufen müssen und die Werte dort einzeln reinschreiben müssen. Oder Du untersuchst einen anderen genialen Ansatz, der durch ODF möglich wird und auf den man nicht so ohne weiteres kommt, wenn man einen XLS-geprägten Kopf hat. ;-) Dieser Ansatz wäre, dass man die Daten nicht per Objektprogrammierung an Calc übergibt, sondern dass man die Werte direkt in ein Calc-Dokument hineinschreibt. Eine ODT-Datei ist ja nichts Anderes, als ein ZIP-Archiv mit XML-Dateien. Speichere mal eine Calc-Datei, in der Du in Zelle A1 HALLO hinein geschrieben hast. Entpacke die Calc-Datei mit einem ZIP-Programm und schau in die content.xml. Dort findest Du im Klartext das Wort HALLO wieder. Du könntest mit Deinem Access-Makro die XML-Datei mit Deinen Daten füllen und das Paket wieder einpacken und so Deinen Export von Access nach Calc machen. Das dürfte der performantere Weg sein. Das erfordert auch nicht, dass man sich mit UNO-Objekten vertraut machen und mit diesen hantieren muss. Gruß Stefan -- www.datenpilot.org - To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org For additional commands, e-mail: users-h...@de.openoffice.org
Re: [de-users] Kann man Calc von MSAccess fernsteuern ?
Hallo Andreas, Zelle für Zelle schreiben, dauert bei OOo wirklich sehr lange. Besser kommst du da wenn du die Sache in einem Array abhandelts und dann dieses Array in die Calctabelle schreibst. Das Array hat aber bestimmte Anforderungen. Es ist Beispielsweise ein Array von Arrays. Das erste Array enthält glaube ich die Zeilen und darin liegt dann ein Array welches die einzelnen Zellen der Zeile hat. Diese Struktur ist aus meiner Sicht etwas unglücklich gewählt, aber leider nunmal so implementiert. Viele Grüße Jan Am 03.07.2010 11:40, schrieb Andreas: > Am 03.07.2010 11:22, schrieb Stefan Weigel: >> Am 03.07.2010 10:10, schrieb Andreas: >>> kann man Calc und Writer von MSAccess fernsteuern ? >> >> Ja. Du willst OOo mit VBA steuern. >> >> Ein Beispiel der Automation von OOo Writer mit VBA findest du hier. >> Dort sind auch Links angegeben mit weiteren Informationen zum Thema: >> >> http://wiki.services.openoffice.org/wiki/User:Stefanw/Tipps/Allgemein/OOo_mit_VBA_steuern >> >> >> Für Menschen, die bislang MS Office automatisiert haben, dürfte das >> größte Problem der gesitige Umstieg auf das Objektmodell von OOo sein, >> das generell eine andere Logik und und ungewohnte Strukturen aufweist. >> >> Bei Michael Dannenhöfer findest Du Beispiele und Tipps, wie man OOo >> mit StarBasic bzw. OOo Basic steuert. Die so vorgeführten Objekte, >> Eigenschaften und Methoden kannst Du auch mit VBA nutzen. > > Hi Stefan, > das ist immerhin ein Anfang :) > Hoffentlich hält das niemand davon ab, weitere Hinweise zu geben. ;) > > Weißt noch was konkret zu Datenaustausch mit Calc. > Ich muß zT große Datendumps als Spreadsheet erzeugen. Excel kennt da > eine Funktion, der man ein Recordset übergeben kann und die zieht dann > die Daten weit schneller, als wenn man es Zelle für Zelle schreibt. > > Gruß > :) > > - > To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org > For additional commands, e-mail: users-h...@de.openoffice.org > > > - To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org For additional commands, e-mail: users-h...@de.openoffice.org
Re: [de-users] Kann man Calc von MSAccess fernsteuern ?
Am 03.07.2010 11:22, schrieb Stefan Weigel: Am 03.07.2010 10:10, schrieb Andreas: kann man Calc und Writer von MSAccess fernsteuern ? Ja. Du willst OOo mit VBA steuern. Ein Beispiel der Automation von OOo Writer mit VBA findest du hier. Dort sind auch Links angegeben mit weiteren Informationen zum Thema: http://wiki.services.openoffice.org/wiki/User:Stefanw/Tipps/Allgemein/OOo_mit_VBA_steuern Für Menschen, die bislang MS Office automatisiert haben, dürfte das größte Problem der gesitige Umstieg auf das Objektmodell von OOo sein, das generell eine andere Logik und und ungewohnte Strukturen aufweist. Bei Michael Dannenhöfer findest Du Beispiele und Tipps, wie man OOo mit StarBasic bzw. OOo Basic steuert. Die so vorgeführten Objekte, Eigenschaften und Methoden kannst Du auch mit VBA nutzen. Hi Stefan, das ist immerhin ein Anfang :) Hoffentlich hält das niemand davon ab, weitere Hinweise zu geben. ;) Weißt noch was konkret zu Datenaustausch mit Calc. Ich muß zT große Datendumps als Spreadsheet erzeugen. Excel kennt da eine Funktion, der man ein Recordset übergeben kann und die zieht dann die Daten weit schneller, als wenn man es Zelle für Zelle schreibt. Gruß :) - To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org For additional commands, e-mail: users-h...@de.openoffice.org
Re: [de-users] Kann man Calc von MSAccess fernsteuern ?
Hallo Andreas, Am 03.07.2010 11:24, schrieb Andreas: Das Ziel ist jetzt, MSOffice weitgehend zu ersetzen und mittelfristig ganz davon abzunabeln. Hierzu ist einstweilen nötig, dass die Anwender nur die Access Runtime Version verwenden und kein MS-Office. Die Runtime beherrscht wirklich nur die Access Funktionalität und sonst nichts. Ganz hervorragend wäre jetzt, wenn ich Word und Excel durch OOo ersetzen könnte soweit das die Dokumenterstellung betrifft. Das sollte klappen. Wie gesagt, für Excel kann man in Access Objekte erzeugen, die dann nahezu alles als Methode bereit stellen, was man auch in Makros direkt in Excel machen kann. Wenn OOo instaliert ist, kannst Du mit VBA über die CreateObject-Funktion die erforderlichen UNO-Objekte erzeugen... Set someUnoObject = CreateObject("com.sun.star.BlaBlaBla") ...die dann Eigenschaften und Methoden bereitstellen. Die eigentliche Access-Anwendung kann ich wegen des hohen Zeitaufwandes noch nicht auf OOo migrieren. ...womit Du auch an Grenzen stoßen könntest, je nachdem, welche Funktionalitäten von MS Access Du in der bisherigen Anwendung benutzt. Gruß Stefan -- www.datenpilot.org - To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org For additional commands, e-mail: users-h...@de.openoffice.org
Re: [de-users] Kann man Calc von MSAccess fernsteuern ?
Am 03.07.2010 10:34, schrieb Jan: dann wäre auch ein Makro in Access denkbar, welches diese Aufgabe übernimmt. Hi Jan, genau darum gehts. Am 03.07.2010 10:10, schrieb Andreas: Hi, 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. Ich möchte gern aus Access Daten an Calc übertragen, also einerseits direkt Zellen einzeln füllen und andererseits auch ganze Recordsets überschaufeln für Reports. - To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org For additional commands, e-mail: users-h...@de.openoffice.org
Re: [de-users] Kann man Calc von MSAccess fernsteuern ?
Am 03.07.2010 10:49, schrieb Regina Henschel: Also so wie das mit Access und Excel geht, wenn das ganze MS-Office zu Verfügung steht. Ich möchte gern aus Access Daten an Calc übertragen, also einerseits direkt Zellen einzeln füllen und andererseits auch ganze Recordsets überschaufeln für Reports. kann man Calc und Writer von MSAccess fernsteuern ? Mir ist die Situation nicht ganz klar. Unter welchem Betriebssystem arbeitest du? Ist MS-Office installiert? Oder hast du nur die von MS Access erzeugte Datenbank, wenn ja in welchem Format? Oder benutzt du Excel-Tabellen als "Datenbank"? Möchtest du von Calc aus die Tabellen nur lesen oder auch Daten zurückschreiben? Hallo Regina, ich habe eine Anwendung mit Access auf Windows geschrieben, die zT auf Excel und Word zurück greift. Bei mir ist MSOffice 2000 installiert. Die Anwender sollen das aber nicht benötigen. Das Ziel ist jetzt, MSOffice weitgehend zu ersetzen und mittelfristig ganz davon abzunabeln. Hierzu ist einstweilen nötig, dass die Anwender nur die Access Runtime Version verwenden und kein MS-Office. Die Runtime beherrscht wirklich nur die Access Funktionalität und sonst nichts. Ganz hervorragend wäre jetzt, wenn ich Word und Excel durch OOo ersetzen könnte soweit das die Dokumenterstellung betrifft. Wie gesagt, für Excel kann man in Access Objekte erzeugen, die dann nahezu alles als Methode bereit stellen, was man auch in Makros direkt in Excel machen kann. Die Daten liegen in einer PostgreSQL-DB und Access liefert nur das Frontend. Ich möchte also nicht von OOo auf Access zugreifen sondern umgekehrt und voll makrogesteuert. Die eigentliche Access-Anwendung kann ich wegen des hohen Zeitaufwandes noch nicht auf OOo migrieren. - To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org For additional commands, e-mail: users-h...@de.openoffice.org
Re: [de-users] Kann man Calc von MSAccess fernsteuern ?
Hallo Andreas, Am 03.07.2010 10:10, schrieb Andreas: kann man Calc und Writer von MSAccess fernsteuern ? Ja. Du willst OOo mit VBA steuern. Ein Beispiel der Automation von OOo Writer mit VBA findest du hier. Dort sind auch Links angegeben mit weiteren Informationen zum Thema: http://wiki.services.openoffice.org/wiki/User:Stefanw/Tipps/Allgemein/OOo_mit_VBA_steuern Für Menschen, die bislang MS Office automatisiert haben, dürfte das größte Problem der gesitige Umstieg auf das Objektmodell von OOo sein, das generell eine andere Logik und und ungewohnte Strukturen aufweist. Bei Michael Dannenhöfer findest Du Beispiele und Tipps, wie man OOo mit StarBasic bzw. OOo Basic steuert. Die so vorgeführten Objekte, Eigenschaften und Methoden kannst Du auch mit VBA nutzen. Gruß Stefan -- www.datenpilot.org - To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org For additional commands, e-mail: users-h...@de.openoffice.org
Re: [de-users] Kann man Calc von MSAccess fernsteuern ?
Hallo Andreas, Andreas schrieb: Hi, 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. Ich möchte gern aus Access Daten an Calc übertragen, also einerseits direkt Zellen einzeln füllen und andererseits auch ganze Recordsets überschaufeln für Reports. Mir ist die Situation nicht ganz klar. Unter welchem Betriebssystem arbeitest du? Ist MS-Office installiert? Oder hast du nur die von MS Access erzeugte Datenbank, wenn ja in welchem Format? Oder benutzt du Excel-Tabellen als "Datenbank"? Möchtest du von Calc aus die Tabellen nur lesen oder auch Daten zurückschreiben? mfG Regina - To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org For additional commands, e-mail: users-h...@de.openoffice.org
Re: [de-users] Kann man Calc von MSAccess fernsteuern ?
Hallo, natürlich kann man dies machen. Die Frage ist lediglich wie aufwendig das ganze wird. Ein möglicher Weg wären Makros. Wahrscheinlich aber in Java oder Phyton geschrieben. Hierfür bietet OOo ganze Bibliotheken an, mit denen man die Dokumente manipulieren kann. Etwas leichter ist es sicher wenn man es in Starbasic macht. dies erfordert aber, das die Access Datenbank in OOo angemeldet wird und die Steuerung erfolgt dann aus OOo heraus und nicht wie angesprochen aus Access. Möglich ist auch dass bereits mit VBA die UNO Modelle ansprechbar sind, dann wäre auch ein Makro in Access denkbar, welches diese Aufgabe übernimmt. Welcher Weg für dich der Beste ist, weiß ich nicht. Viele Grüße Jan Am 03.07.2010 10:10, schrieb Andreas: > Hi, > > 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. > > Ich möchte gern aus Access Daten an Calc übertragen, also einerseits > direkt Zellen einzeln füllen und andererseits auch ganze Recordsets > überschaufeln für Reports. > > > > - > To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org > For additional commands, e-mail: users-h...@de.openoffice.org > > > - To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org For additional commands, e-mail: users-h...@de.openoffice.org