macro : datenbank auswählen

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: macro : datenbank auswählen

von swerflash » Di, 28.03.2006 15:27

Danke dir.

Schade dass Macro nicht alles aufzeichnet, z.B. wohin ich mit der Maus klicke und was ich auswähle.

Kann man nichts machen.

von pmoegenb » Di, 28.03.2006 11:37

Hallo,
Hmm, das ist nicht so gut, das möchte ich vermeiden, dass er das machen muss. Meine Idee war folgende: ich gebe ihm mein Dokument, er öffnet es und fertig. Datenquelle ist automatisch ausgewählt und gedrückt wird auch automatisch. Das wollte ich mit hilfe von einem Macro lösen.
Dass das nicht geht, hast Du selbst bereits festgestellt.
ich habe gerade meine Datenbank gelöscht aus
Extras/Optionen.../OpenOffice.org Base/Datenbanken
und wollte testen wenn ich mein Dokumet öffne, ob er automatisch Verbindung zu meiner Datenquelle herstellt, hat er nicht gemacht, aber als ich trotzdem druckte, hat er in die Felder richtige Daten reingeschrieben. Also er hat nicht das Feld Name gedrückt, sondern hat da rein z.B. Sofia reingeschrieben, obwohl ich keine Verbindung zu meiner Datenbank hatte bei: Extras/Optionen.../OpenOffice.org Base/Datenbanken. Warum hat das funktioniert? Warum hat er die Felder mit richtigen Daten befüllt?
Das hat deswegen funktioniert, weil das Seriendokument beim letzten speichern, nach einem Druckvorgang, noch mit Daten gefüllt war.

Das Macro kann nur für den Druck von Einzeldokumenten verwendet werden. Für einen Seriendruck ist es nicht geeignet. Für den Seriendruck ohne Assistenten kannst Du Deine Standard-Symbolleiste wie folgt anpassen:
  • - Extras/Anpassen... aufrufen.
    - zum TAB Symbolleisten wechseln.
    - als Symbolleiste Standard wählen.
    - Auf Button Hinzufügen klicken.
    - Als Bereich Dokumente markieren.
    - Als Befehl Seriendruck markieren.
    - Auf Button Hinzufügen klicken.
    - Auf Button Schließen klicken.
Du kannst nun noch die Befehle des Symbolleisteninhalts nach belieben umsortieren.

Als neues Symbol müsstest Du jetzt einen gelblichen Umschlag vor einem weißen Blatt haben.

von swerflash » Di, 28.03.2006 09:47

Hallo,

danke für deine Antwort.

Hmm, das ist nicht so gut, das möchte ich vermeiden, dass er das machen muss. Meine Idee war folgende: ich gebe ihm mein Dokument, er öffnet es und fertig. Datenquelle ist automatisch ausgewählt und gedrückt wird auch automatisch. Das wollte ich mit hilfe von einem Macro lösen.

Kleine Frage zu diesem Macro:

Code: Alles auswählen

sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Copies"
args1(0).Value = 1
args1(1).Name = "Collate"
args1(1).Value = true

dispatcher.executeDispatch(document, ".uno:Print", "", 0, args1())


end sub
Was muss ich bei der 1 reinschreiben, damit alles gedrückt wird und nicht die Anzahl der Seiten die hier angegeben sind.

PS:
ich habe gerade meine Datenbank gelöscht aus
Extras/Optionen.../OpenOffice.org Base/Datenbanken
und wollte testen wenn ich mein Dokumet öffne, ob er automatisch Verbindung zu meiner Datenquelle herstellt, hat er nicht gemacht, aber als ich trotzdem druckte, hat er in die Felder richtige Daten reingeschrieben. Also er hat nicht das Feld Name gedrückt, sondern hat da rein z.B. Sofia reingeschrieben, obwohl ich keine Verbindung zu meiner Datenbank hatte bei: Extras/Optionen.../OpenOffice.org Base/Datenbanken. Warum hat das funktioniert? Warum hat er die Felder mit richtigen Daten befüllt?


Danke

von pmoegenb » Di, 28.03.2006 08:09

swerflash hat geschrieben:Ok scheint zu gehen, er findet die richtige Datenbank. Wird das auch gehen, wenn sich jemand OO zum ersten mal installiert hat? Also wenn er mein Dokument öffnet, kann er dann sofort drücken? Ist die Datenquelle in meinem Dokumment, was ich gerade geöffnet habe angemeldet, oder ist sie in dem Programm OpenOffice angemeldet, was bei mir auf dem Rechner installiert ist?
Hallo swerflash,

um den Serienbrief eines Dritten drucken zu können muss der Anwender folgendes haben:
  • 1. Dieselbe Verbindungsbeschreibung zur Datenquelle (.odb-Datei).
    2. Dieselbe Datenquelle.
    3. Wird die Datenquelle vom Dritten zur Verfügung gestellt, muss diese in das Verzeichnis kopiert werden, in dem die Datenquelle bei der Erstellung der Verbindungsbeschreibung (.odb-Datei) war.
Mit Ausnahme der in OO integrierten Datenbank HSQLDB handelt es sich bei den Datenquellen um externe Daten. D. h., in der Datei ?.odb sind keine Daten, sondern lediglich eine Verbindungsbeschreibung.
Handelt es sich jedoch um eine mit OO erstellte HSQLDB-Datenbank ist diese in der ?.odb-Datei enthalten.

Wenn Du also eine externe Datenquelle hast, musst neben dem Seriendokument die .odb-Datei und die Datenquelle (Textfile, dBase, MySgl etc.) zur Verfügung stellen. Der Empfänger muss die .odb-Datei einmalig über Extras/Optionen.../OpenOffice.org Base/Datenbanken OO hinzufügen.

Ändern sich die Daten der Datenquelle (Textfile, dBase, MySgl etc.) muss nur diese ausgetauscht werden.

Verkürzt ausgedruckt, wenn Du Deinem Nachbar nur das Seriendokument zu Verfügung stellst, kann der ohne Datenquelle und .odb-Datei nichts damit anfangen.

von swerflash » Mo, 27.03.2006 16:49

Ok scheint zu gehen, er findet die richtige Datenbank. Wird das auch gehen, wenn sich jemand OO zum ersten mal installiert hat? Also wenn er mein Dokument öffnet, kann er dann sofort drücken? Ist die Datenquelle in meinem Dokumment, was ich gerade geöffnet habe angemeldet, oder ist sie in dem Programm OpenOffice angemeldet, was bei mir auf dem Rechner installiert ist?

Danke.

von swerflash » Mo, 27.03.2006 16:34

Danke dir, ich versuche das mal.

Mit drücken hat es doch geklappt, als ich auf OK dann gedrückt habe. Ich dachte wenn ich Str+P drücke, dass er das sofort aufzeichnet und ich das Dokument nicht mehr drücken muss und habe dann immer auf abrechen geklickt.

von pmoegenb » Mo, 27.03.2006 16:27

Hallo swerflash,
Das habe ich versucht, der zeichnet mir nur das auf, was ich in dem Dokument schreibe. Aber wenn ich jetz auf Menupunkte mit der Maus draufgehe und was auswähle, z.B. Drücken... dann zeichnet er das nicht auf. Tastenkombination von Str+P hat er auch nicht aufgezeichnet.
Unter OO 2.0.2 kann ich das nicht nachvollziehen. Bei einer Makroaufzeichnung erhalte ich z. B. folgenden Code:

Code: Alles auswählen

sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PrintDefault", "", 0, Array())


end sub
wenn ich O Base aufmache, kann ich unten "Verbindung zu einer Datenbank Datei herstellen" auswählen, dort kann ich Text auswählen, so kann ich meine Textdatei öffnen und später die als .odb speichern.
Deine Schritte sind nicht nachvollziehbar. Wenn ich Textfiles als Datenquellen anmelde gehe ich folgendermaßen vor:
  • 1. Menüoption Datei/Neu/Datenbank
    2. Im Datenbank-Assistenten die Option Verbindung zu einen bestehenden Datenbank herstellen aktivieren.
    3. Aus der Auswahlbox Text wählen.
    4. Dateityp und Zeileformat festlegen.
    5. Pfad zu den Textdateien eintragen, bzw. suchen
Jetzt habe ich eine Verbindung zu Textdateien im vorgenannten Pfad hergestellt und diese Verbindung in einer .odb-Datei abgespeichert.

Die Textdateien, es können dabei eine oder mehrer sein, können von nun an als Datenquellen dienen.

Nochmals, ich habe keine Datenbank erstellt, sondern lediglich eine Verbindung die zur Serienbriefschreibung genutzt werden kann.

von swerflash » Mo, 27.03.2006 15:54

Das habe ich versucht, der zeichnet mir nur das auf, was ich in dem Dokument schreibe. Aber wenn ich jetz auf Menupunkte mit der Maus draufgehe und was auswähle, z.B. Drücken... dann zeichnet er das nicht auf. Tastenkombination von Str+P hat er auch nicht aufgezeichnet.

EDIT: wenn ich O Base aufmache, kann ich unten "Verbindung zu einer Datenbank Datei herstellen" auswählen, dort kann ich Text auswählen, so kann ich meine Textdatei öffnen und später die als .odb speichern.

von pmoegenb » Mo, 27.03.2006 15:11

Hallo swerflash,

das Ganze klingt sehr mysteriös.

1. Mit Base können keine Textdateien geöffnet werden.
2. Eine Importfunktion ist ebenso nicht vorgesehen.

Welche Datenquelle nun tatsächlich vorliegt ist noch unklarer als zuvor. Das gewünschte Makro kannst Du Dir mittels Extras/Markros/Makro aufzeichnen selbst erstellen. Dafür wird keine fremde Hilfe benötigt.

von swerflash » Mo, 27.03.2006 14:43

Hallo,

mein Textfile befindet sich auch in dem Ordner, aber es passiert das was ich oben geschrieben habe. Oder habe ich vieleicht was falsch gemacht?

Ich habe eine Textdatei erstellt, dann die mit OO Base geöffnet und importiert und daraus eine .odb Datei erstellt. Dann habe ich mit Writer ein Layout erstellt und die Felder von meiner .odb in die Mitte gezogen, wie ich sie brauche und das Dokument gespeichert.
Muss ich noch etwas dazu machen?

PS: könntest du mir ein Macro für Drucken schreiben, damit wenn das Dokument geöffnet wird, er Str+P ausführt(Drücken).


Danke.

von pmoegenb » Mo, 27.03.2006 14:36

swerflash hat geschrieben:Ja, und das möchte ich mit hilfe von Macros lösen, damit anderer nicht auf Extras->Optionen->Datenbank->Neu gehen musst, damit das automatisch geschieht.

Wenn ich jemandem mein Serienbrief gebe, der sich mit OO nicht auskennt und zum ersten mal das installiert hat, und mein Layout startet, dann wird er die DB.odb nicht finden, da sie bei ihm noch nicht angemeldet ist für diesen Layout(wenn er sofort versucht das Dokument zu drücken) und er die DB selber suchen muss.
Hallo swerflash,

ob die Anmeldung einer Datenbank automatisiert werden kann weiß nicht, da bin ich in Basic nicht ausreichend fit, ich kann Dir aber soviel mitteilen, dass Du die Textfile, die Du mittels Base als Datenquelle in eine .odb Datei eingebunden hast, neben Serienbrief und .odb-Datei mitgeben musst. Weicht der Pfad der Textfile von dem Pfad ab, der in der .odb-Datei definiert ist, dann kann die .odb-Datei nicht benutzt werden.

von swerflash » Mo, 27.03.2006 14:10

Ja, und das möchte ich mit hilfe von Macros lösen, damit anderer nicht auf Extras->Optionen->Datenbank->Neu gehen musst, damit das automatisch geschieht.

Wenn ich jemandem mein Serienbrief gebe, der sich mit OO nicht auskennt und zum ersten mal das installiert hat, und mein Layout startet, dann wird er die DB.odb nicht finden, da sie bei ihm noch nicht angemeldet ist für diesen Layout(wenn er sofort versucht das Dokument zu drücken) und er die DB selber suchen muss.

von pmoegenb » Mo, 27.03.2006 14:01

Hallo swerflash,

grundsätzlich werden alle angemeldeten Datenbanken in OO angezeigt wenn Du die Funktionstaste F4 drückst. Mit dem Öffnen eines Serienbriefs hat dies nichts zu tun.

Wenn die von Dir genannte Datenbank nicht bei OO angemeldet ist, kann sie auch nicht benutzt werden.

von swerflash » Mo, 27.03.2006 13:53

Hallo,

leider nicht ganz.

Ich habe z.B. 2 Serienbriefe(unterschiedliche), jeder ist in eigenem Ordner mit einer Datenbank gespeichert:
z.B. Ordner1/Serienbrief1/Layout1+DB1.odb
Ordner2/Serienbrief2/Layout2+DB2.odb

Wenn ich jetzt Layout2 aufmache und dann F4 drücke, dann sehe ich die DB1.obd von anderem Serienbrief. Meine DB, die ich für diesen Serienbrief brauche, öffnet er nicht. Und ich möchte ihm per Macro sagen, dass er in den Ordner /Serienbrief2 gehen soll und die DB2.odb laden soll.

von pmoegenb » Mo, 27.03.2006 13:22

swerflash hat geschrieben:Hallo,

wenn ich jetzt mein Serienbrief jemandem gebe, damit er das drückt, dann wird er Writer(mein Dokumment) starten und dann muss er die Datenbak manuel suchen und angeben wo sie sich befindet, und das möchte ich mit hilfe von einem Macro lösen. Also dass er mit dem Writer das Dokument startet und nichts mehr machen muss.
Wenn Pfad und Name der Datenbank/Textfile mit Deiner Datenbank identisch sind, muss er auch nichts machen.

Nach oben