Seite 1 von 1

Re: Datenbankfeld bei jedem Zugriff hochzählen

Verfasst: Di, 12.08.2008 12:07
von retrofreak
Nachtrag... Jetzt steht da "Gast", obwohl ich mich registriert habe - Aber veröffentlicht wurde der Beitrag ja trotzdem. Ich hoffe das klappt so. Gruß nochmal, Retrofreak


Ich hab jetzt einen Ansatz :) Der sieht so aus:

Code: Alles auswählen

Sub Main

	IncLaufendeNummer

End Sub

Sub IncLaufendeNummer
    oDatenbankKontext = CreateUnoService ( "com.sun.star.sdb.DatabaseContext" )
    oDatenquelle = oDatenbankKontext.getByName( "Adressdatenbank" )
    oVerbindung = oDatenquelle.getConnection( "" , "" )
    oStatement = oVerbindung.createStatement
    sSQL = " UPDATE ""Konfiguration"" SET ""Inhalt"" = ""Inhalt"" + 1 WHERE ""Variable"" = LaufendeNummer'"
    oStatement.executeUpdate( sSQL )
End Sub

Ist für mich schon mal ein Ansatz, wie man überhaupt per Macro eine DB Connection aufbaut und SQL Ausführen kann. Soweit so gut.
Aber wie mache ich es jetzt, dass dieses Macro bei jedem Druck eines Serienbriefes aufgerufen und Ausgeführt wird?
Hmmm.. Da find ich nix.

Für jeden Hinweis dankbar, Retrofreak

Re: Datenbankfeld bei jedem Zugriff hochzählen

Verfasst: Di, 12.08.2008 14:07
von pmoegenb
Hallo Retrofreak,

probiers mal über Extras/Anpassen.../Ereignisse.

Re: Datenbankfeld bei jedem Zugriff hochzählen

Verfasst: Mi, 13.08.2008 15:52
von retrofreak
pmoegenb hat geschrieben:Hallo Retrofreak,
probiers mal über Extras/Anpassen.../Ereignisse.
Ah! Danke,
das ist schon mal ein sehr guter Tipp. Jetzt zählt er mir zwar die Nummer auch dann hoch, wenn ich ein anderes Dokument drucke, welches nichts mit den Serienbriefen zu tun hat, aber das dürfte ja irgendwie zu verhindern sein. Habe leider heute keine Zeit mehr das zu erforschen.

Außerdem habe ich jetzt noch das Problem die Nummer im Dokument auszugeben. (So dass sie mit gedruckt wird). Ich habe eine Abfrage erstellt, die mir den aktuellen Wert des Zähler-Feldes liefert.

Code: Alles auswählen

SELECT "Konfiguration"."Variable" AS "Variable", "Konfiguration"."Inhalt" AS "Inhalt" FROM "Konfiguration" AS "Konfiguration" WHERE ( "Konfiguration"."Variable" = 'LaufendeNummer' ) 
Diese soll unabhängig vom den restlichen Serienbriefdaten (Die Adressen, die aus einer anderen Abfrage bzw Tabelle kommen) im Briefkopf gedruckt werden.

Irgendwie klappt das nicht. Entweder er druckt mir die Serienbriefadressen oder nichts. Die Nummer (Die habe ich aus dem Datenquellenfeld (F4 gedrückt) der Abfrage in den Briefkopf gesetzt - genauso wie Name, Adresse usw.) - Wenn ich als Quelle die Abfrage der Adressliste angebe druckt er so wenigstens wieder die Adressen, wenn ich als Quelle direkt die Tabelle mit den Adressen nutze kommt gar nichts mehr sobald ich das Feld aus der Abfrage oben dem Seitentext hinzufüge. Wenn ichs weg lasse klappts mit Tabelle oder Abfrage gleichermaßen.

Ich fürchte ich habs zu verwirrend beschrieben... Aber ich bin selbst verwirrt.

Schönen Gruß,
Retrofreak