[gelöst] Automation Base Daten in Calc importieren
Moderator: Moderatoren
[gelöst] Automation Base Daten in Calc importieren
Hallo zusammen!
Ich dreh gleich am Rad!
Seit zwei Tagen recherchiere ich im Netz und probiere mein Anliegen zu lösen:
Ich habe ne neue Stelle angefangen und die haben da geschätzte 100 Listen mit Kunden, weil jeder Verkäufer seine eigene Kundenliste führte...
Nun habe ich alle Listen zusammen getragen, in Calc eingepflegt und in Base importiert, aufbereitet und ein Formular gestaltet, damit neue Kunden schön übersichtlich eingepflegt sind.
Nun habe ich für Kundentermine eine Traktandenliste in Calc gestaltet (Tabelle1), welche mit SVERWEIS die Daten mittels Kundennummer in das Formular einfügt.
Die Datenbank und die Tabelle2 in der Traktandenliste sind identisch gegliedert, dass ich (eigentlich) nur die Datenabfrage in Calc kopieren kann...
Nun mein Anliegen:
Ich möchte, dass sich die Tabelle aus der Datenbank beim Öffnen der Traktandenliste automatisch in Tabelle2 aktualisiert, bzw. neue Einträge nach führt.
Mit dem Makrorecorder habe ich bis jetzt nur geschafft, dass sich der Navigator öffnet und sich die Daten aus der Abfrage markieren. Jedoch nicht, dass sie selbstständig in die Tabelle2 importiert werden.
Das heisst, ich muss jedes Mal alle Daten markieren und dann per Drag&Drop in Tabelle2 ziehen...
Geht das nicht einfacher? Vor allem, sollen andere auch mit der Traktandenliste arbeiten können, und mein Verständnis ist schon sehr beschränkt, die andern verstehen aber grad gar nichts davon...
Für die Datenaktualisierung hab ich extra eine Schaltfläche gezaubert, da wärs doch schade wenn die nur Platz raubt. Es sei denn, sie wird gar nicht mehr gebraucht...
Besten Dank schonmal für eure Hilfe!
Ich dreh gleich am Rad!
Seit zwei Tagen recherchiere ich im Netz und probiere mein Anliegen zu lösen:
Ich habe ne neue Stelle angefangen und die haben da geschätzte 100 Listen mit Kunden, weil jeder Verkäufer seine eigene Kundenliste führte...
Nun habe ich alle Listen zusammen getragen, in Calc eingepflegt und in Base importiert, aufbereitet und ein Formular gestaltet, damit neue Kunden schön übersichtlich eingepflegt sind.
Nun habe ich für Kundentermine eine Traktandenliste in Calc gestaltet (Tabelle1), welche mit SVERWEIS die Daten mittels Kundennummer in das Formular einfügt.
Die Datenbank und die Tabelle2 in der Traktandenliste sind identisch gegliedert, dass ich (eigentlich) nur die Datenabfrage in Calc kopieren kann...
Nun mein Anliegen:
Ich möchte, dass sich die Tabelle aus der Datenbank beim Öffnen der Traktandenliste automatisch in Tabelle2 aktualisiert, bzw. neue Einträge nach führt.
Mit dem Makrorecorder habe ich bis jetzt nur geschafft, dass sich der Navigator öffnet und sich die Daten aus der Abfrage markieren. Jedoch nicht, dass sie selbstständig in die Tabelle2 importiert werden.
Das heisst, ich muss jedes Mal alle Daten markieren und dann per Drag&Drop in Tabelle2 ziehen...
Geht das nicht einfacher? Vor allem, sollen andere auch mit der Traktandenliste arbeiten können, und mein Verständnis ist schon sehr beschränkt, die andern verstehen aber grad gar nichts davon...
Für die Datenaktualisierung hab ich extra eine Schaltfläche gezaubert, da wärs doch schade wenn die nur Platz raubt. Es sei denn, sie wird gar nicht mehr gebraucht...
Besten Dank schonmal für eure Hilfe!
Re: Automation Base Daten in Calc importieren
Hallo? Echo? Cho? Ho? O?
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: AW: Automation Base Daten in Calc importieren
Hallo!
Hier ist ein privat betriebenes Hilfe forum, und keine kostenpflichtige Hotline, die dir innerhalb von Stunden eine komplette Antwort gibt.
Zu deiner Frage :
Das ist relativ einfach mit database range zu machen, aber nicht mit dem recorder.
Habe zu hause ein beispiel, bin jetzt aber essen und danach zu einem Pool turnier.
Auf meine Antwort wirst also warten müssen
Hier ist ein privat betriebenes Hilfe forum, und keine kostenpflichtige Hotline, die dir innerhalb von Stunden eine komplette Antwort gibt.
Zu deiner Frage :
Das ist relativ einfach mit database range zu machen, aber nicht mit dem recorder.
Habe zu hause ein beispiel, bin jetzt aber essen und danach zu einem Pool turnier.
Auf meine Antwort wirst also warten müssen
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: AW: Automation Base Daten in Calc importieren
Habe den Thread dann auch mal ins richtige unterforum verschoben
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Automation Base Daten in Calc importieren
aus dem englischen Forum
Kommst Du damit schon zurecht?
Code: Alles auswählen
Sub importRowSet(oDBRange, dbSourceName$, srcType%, src$ )
Dim oDesc(),i%,oPrp
'on error goto exitErr:
oDesc() = oDBRange.getImportDescriptor() 'array of com.sun.star.beans.PropertyValues
For i = 0 to ubound(oDesc())
oPrp = oDesc(i)
If oPrp.Name = "DatabaseName" then
oPrp.Value = dbSourceName
elseIf oPrp.Name = "SourceType" then
oPrp.Value = srcType
elseIf oPrp.Name = "SourceObject" then
oPrp.Value = src
Endif
oDesc(i) = oPrp
Next
oDBRange.getReferredCells.doImport(oDesc())
exit sub
exitErr:
'raise API-error
error err
End Sub
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Automation Base Daten in Calc importieren

Überhaupt nicht!

- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Automation Base Daten in Calc importieren
Du hast "mit dem Makroeditor" eine Lösung versucht - also möchtest Du Dich doch mit BASIC beschäftigen, oder?
Hast Du den Thread im englischen Forum gelesen? Was verstehst Du nicht?
Der Code ist eine Routine um den Import (die Aktualisierung der Daten!) von einer registrierten Datenquelle nach CALC zu automatisieren.
Dazu werden an diese Routine die vier benötigten Parameter übergeben.
Der Aufruf mit Parametern kann dann in einem Modul stehen, welches über den Datei öffnen Ereignis aufgerufen werden kann.
"mysql_jdbc" ist der Name meiner registrierte Datenquelle
"resolutions.Tabelle1" catalogue* und der Tabellenname der zu importierenden Tabelle
[* MySQL spezifische Eigenschaft; bei Dir fehlt bei der Frage ziemlich alles: OOo Version, Betriebssystem, DBMS]
Wurde es damit heller bei Dir?
Hast Du den Thread im englischen Forum gelesen? Was verstehst Du nicht?
Der Code ist eine Routine um den Import (die Aktualisierung der Daten!) von einer registrierten Datenquelle nach CALC zu automatisieren.
Dazu werden an diese Routine die vier benötigten Parameter übergeben.
Der Aufruf mit Parametern kann dann in einem Modul stehen, welches über den Datei öffnen Ereignis aufgerufen werden kann.
Code: Alles auswählen
Sub de57964
' 2012-11-17
'
oDatabaseRanges = ThisComponent.DatabaseRanges
oDataBaseRange = oDatabaseRanges.getByName( "Import1" )
' automatischer Import DB-Daten
importRowSet( oDataBaseRange , "mysql_jdbc" , com.sun.star.sheet.DataImportMode.TABLE , "resolutions.Tabelle1" )
End Sub
"resolutions.Tabelle1" catalogue* und der Tabellenname der zu importierenden Tabelle
[* MySQL spezifische Eigenschaft; bei Dir fehlt bei der Frage ziemlich alles: OOo Version, Betriebssystem, DBMS]
Wurde es damit heller bei Dir?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Automation Base Daten in Calc importieren
Vielen Dank schonmal!
Das ist alles ziemlich verwirrend für mich... Leider verstehe ich kein Englisch, weshalb ich aus dem englischen Forum nicht schlauer wurde...
Was mach ich denn jetzt mit diesen Codes?
Übrigens:
oO. 3.4.1
Windows 7
Was ist DBMS?
Das ist alles ziemlich verwirrend für mich... Leider verstehe ich kein Englisch, weshalb ich aus dem englischen Forum nicht schlauer wurde...
Was mach ich denn jetzt mit diesen Codes?
Übrigens:
oO. 3.4.1
Windows 7
Was ist DBMS?
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Automation Base Daten in Calc importieren
Wiki kennst Du? DBMS
1. Schritt:
Du öffnest Deine CALC-Tabelle, Seite 2 ("Tabelle2")
2. Schritt:
F4 öffnet Dir den Datenbankbrowser, Du ziehst Deine Datentabelle in A1 von Tabelle2 und lässt sie fallen.
Damit hast Du einen Datenimport definiert.
3. Schritt:
kopiere die beiden Codeschnippsel in Modul Standard Deiner CALC-Tabelle
http://www.ooowiki.de/MakrosInstallieren
4. Schritt:
passe in der Routine de57964 die Namen an (letztes Posting von mir, blau gekennzeichnet)
5. Schritt:
In der CALC weist Du unter Extras>Anpassen...>Ereignisse>Laden des Dokuments beendet diesem Ereignis das Makro de57964 zu
Kommst Du damit zurecht?
1. Schritt:
Du öffnest Deine CALC-Tabelle, Seite 2 ("Tabelle2")
2. Schritt:
F4 öffnet Dir den Datenbankbrowser, Du ziehst Deine Datentabelle in A1 von Tabelle2 und lässt sie fallen.
Damit hast Du einen Datenimport definiert.
3. Schritt:
kopiere die beiden Codeschnippsel in Modul Standard Deiner CALC-Tabelle
http://www.ooowiki.de/MakrosInstallieren
4. Schritt:
passe in der Routine de57964 die Namen an (letztes Posting von mir, blau gekennzeichnet)
5. Schritt:
In der CALC weist Du unter Extras>Anpassen...>Ereignisse>Laden des Dokuments beendet diesem Ereignis das Makro de57964 zu
Kommst Du damit zurecht?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Automation Base Daten in Calc importieren
Also, ich hab das jetzt versucht mit der Anleitung und deinen Codes, aber es kommen laufend Fehlermeldungen:
zB. BASIC-Laufzeitfehler.
Argument ist nicht optional
und markiert mir dann folgende Zeile:
oDesc() = oDBRange.getImportDescriptor() 'array of com.sun.star.beans.PropertyValues
zB. BASIC-Laufzeitfehler.
Argument ist nicht optional
und markiert mir dann folgende Zeile:
oDesc() = oDBRange.getImportDescriptor() 'array of com.sun.star.beans.PropertyValues
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Automation Base Daten in Calc importieren
Du hast eine DBRange, wie in Schritt 2 angegeben, eingerichtet?
Du hast die Namen der Datenquelle und den DB-Tabellennamen angepasst?
Du startest Makro de57964 - nicht die Arbeitsroutine importRowSet?
Falls das alles passiert ist/ stimmt, dann:
* Zeige Deinen angepassten Code!
* stelle Beispieldokumente (mit anonymisierten Daten) im Anhang zur Verfügung
Du hast die Namen der Datenquelle und den DB-Tabellennamen angepasst?
Du startest Makro de57964 - nicht die Arbeitsroutine importRowSet?
Falls das alles passiert ist/ stimmt, dann:
* Zeige Deinen angepassten Code!
* stelle Beispieldokumente (mit anonymisierten Daten) im Anhang zur Verfügung
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Automation Base Daten in Calc importieren
Hy! Ja, hab ich gemacht. Danach kommt jeweils die Frage, ob ich die Daten in "Import1" ersetzen möchte...
Was ich noch nicht verstehe ist, ob ich im Code auch die Zeilen wo
bla bla bla "Datenbank"
bla bla bla "SourceObject" und "SourceType" auch ändern muss? Und "Import1"...
Oder wirklich nur die von Dir blau markierten Texte...
Was ich noch nicht verstehe ist, ob ich im Code auch die Zeilen wo
bla bla bla "Datenbank"
bla bla bla "SourceObject" und "SourceType" auch ändern muss? Und "Import1"...
Oder wirklich nur die von Dir blau markierten Texte...
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Automation Base Daten in Calc importieren
Bei mir kommt (teste mit "Dokument öffnen"-Ereignis) mal keine Nachfrage...
Ändern musst Du -ausser den zwei Angaben reg.Datenbankname und DB-Tabelle- nichts mehr
Zeige Deinen Code!
Ändern musst Du -ausser den zwei Angaben reg.Datenbankname und DB-Tabelle- nichts mehr
Zeige Deinen Code!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Automation Base Daten in Calc importieren
Hab ich. Oder?
- Dateianhänge
-
- Unbenannt3.PNG (90.98 KiB) 2546 mal betrachtet
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Automation Base Daten in Calc importieren
Nein, hast Du nicht!
Du übergibst zwei (leere) Variablen Kundendatenbank und Kunden
Du solltest zwei Zeichenketten übergeben:
Klappt das jetzt?
Du übergibst zwei (leere) Variablen Kundendatenbank und Kunden
Du solltest zwei Zeichenketten übergeben:
Code: Alles auswählen
importRowSet( oDataBaseRange , "Kundendatenbank" , com.sun.star.sheet.DataImportMode.TABLE , "Kunden" )
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)