Bool Feld per Makro zurücksetzen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

uenz
*
Beiträge: 14
Registriert: Do, 27.10.2005 09:55

Bool Feld per Makro zurücksetzen

Beitrag von uenz »

Hallo,

bin gerade dabei eine Adressen Datenbank für Serienbriefe aufzubauen.
Das Problem dabei ist nun das nicht immer alle Adressaten einer Kategorie einen Brief bekommen sollen.
Aus diesem Grund habe ich ein Bool Feld hinzugefügt was für die Auswahl zuständig sein soll und per Formular (ClickBox) manipuliert wird.
Um die Benutzung einfacher zu machen ist es nun mein Ziel dieses Feld per Macro zu resetten (auf Nein zu setzen).
Leider konnte ich über die Manipulation von einer Tabelle in Base per Makro nichts finden.
Hat mir da jemand einen Tipp?

Vielen Dank
Uenz
uenz
*
Beiträge: 14
Registriert: Do, 27.10.2005 09:55

Re: Bool Feld per Makro zurücksetzen

Beitrag von uenz »

Hab etwas zu kompliziert Gedacht. Die Manipulation ist über SQL recht einfach.
Falls es jemanden interessiert:

Code: Alles auswählen

sub ResetSerienbriefFeld
	rem ----------------------------------------------------------------------
	' Datenbankkontext erzeugen
	DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")

	' Datenbankname festlegen
	DIM DatabaseName AS STRING
	DatabaseName="DeinDatenbankname"

	' Erwartete Datenbank angemeldet?
	IF DatabaseContext.hasByName(DatabaseName)=true THEN
		' Datenquelle wählen
		Datenquelle = DatabaseContext.getByName(DatabaseName)
		
		' bei Bedarf Dialog für Passwortschutz aufrufen
		IF NOT Datenquelle.IsPasswordRequired THEN
		  Verbindung = Datenquelle.GetConnection("","")
		ELSE
		  Authentifizierung = createUnoService("com.sun.star.sdb.InteractionHandler")
		  Verbindung = Datenquelle.ConnectWithCompletion(Authentifizierung)
		END IF
		
		' SQL-Kommunikationskanal aufbauen
		SQL_Anweisung = Verbindung.createStatement()

		' SQL-Anweisung ausführen
		DIM Sql AS STRING
		'build sql comman update "Deine Tabelle" set "Deine Spalte"=0
		Sql = "update "+CHR(34)+"DeineTabelle"+CHR(34)+" set "+CHR(34)+"DeineSpalte"+CHR(34)+"=0"
		'execute Sql command
		SQL_Anweisung.executeUpdate (Sql)
	ELSE
		MsgBox "Datenbank ist nicht angemeldet. Bitter unter "+DatabaseName+"anmelden!"
	END IF
end sub
Antworten