macro : datenbank auswählen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

swerflash
**
Beiträge: 34
Registriert: Mo, 06.03.2006 15:46

macro : datenbank auswählen

Beitrag von swerflash »

Hallo,

ich hoffe ich bin hier richtig.

Ich habe ein Serienbrief erstellt. Als Datenquelle dafür, dient eine textdatei die ich zu .odb umgewandelt habe, damit ich sie als Datenbank nutzen kann.
Jetzt möchte ich, dass wenn ich mein Dokumennt(Writer) öffne, es automatisch meine Datenbankdatei sucht und öffnet. Wie kann ich das mit hilfe von macro machen? Könnte mir jemand bitte ein Macro dafür schreiben?
Später will ich noch machen, dass wenn ich mein Dokumment öffne, es automatisch mein Serienbrief drückt, aber erstmal möchte ich das machen, was ich oben geschrieben habe.

Danke im Voraus.
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Re: macro : datenbank auswählen

Beitrag von pmoegenb »

swerflash hat geschrieben:Hallo,

ich hoffe ich bin hier richtig.

Ich habe ein Serienbrief erstellt. Als Datenquelle dafür, dient eine textdatei die ich zu .odb umgewandelt habe, damit ich sie als Datenbank nutzen kann.
Jetzt möchte ich, dass wenn ich mein Dokumennt(Writer) öffne, es automatisch meine Datenbankdatei sucht und öffnet. Wie kann ich das mit hilfe von macro machen? Könnte mir jemand bitte ein Macro dafür schreiben?
Später will ich noch machen, dass wenn ich mein Dokumment öffne, es automatisch mein Serienbrief drückt, aber erstmal möchte ich das machen, was ich oben geschrieben habe.
Für was soll das gut sein. Wenn in einem Serienbrief Seriendruckfelder einer bestimmten Datenbank definiert sind, hast Du automatisch Zugriff auf die Datenbank wenn Du den Serienbrief mittels Seriendruck ausdruckst. Ein Macro ist dazu nicht erforderlich.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
swerflash
**
Beiträge: 34
Registriert: Mo, 06.03.2006 15:46

Beitrag von swerflash »

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.
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Beitrag von pmoegenb »

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.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
swerflash
**
Beiträge: 34
Registriert: Mo, 06.03.2006 15:46

Beitrag von swerflash »

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.
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Beitrag von pmoegenb »

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.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
swerflash
**
Beiträge: 34
Registriert: Mo, 06.03.2006 15:46

Beitrag von swerflash »

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.
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Beitrag von pmoegenb »

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.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
swerflash
**
Beiträge: 34
Registriert: Mo, 06.03.2006 15:46

Beitrag von swerflash »

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.
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Beitrag von pmoegenb »

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.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
swerflash
**
Beiträge: 34
Registriert: Mo, 06.03.2006 15:46

Beitrag von 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.

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.
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Beitrag von pmoegenb »

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.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
swerflash
**
Beiträge: 34
Registriert: Mo, 06.03.2006 15:46

Beitrag von swerflash »

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.
swerflash
**
Beiträge: 34
Registriert: Mo, 06.03.2006 15:46

Beitrag von swerflash »

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.
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Beitrag von pmoegenb »

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.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Antworten