Hallo NG,
irgendwie fehlt mir jetzt gerade der letzte Klick...
Ich habe eine MySQL-Datenbank mit Namen test_db.
In dieser DB ist eine Tabelle namens tbl_test1.
In dieser Tabelle befindet sich ein Feld namens testfeld.
Ich habe die DB in OOo eingebunden. Die OOo-Base-Datei heißt: test-db.odb
Ich habe in der OOo-Datenbankdatei eine Abfrage namens 'Alle Felder' (ohne Hochkomma) erstellt,
in der u.a. testfeld mit dem Alias Testfeld abgefragt wird.
Der Inhalt von Testfeld ist entweder 1 oder 0.
So weit so gut.
In meinem Serienbrief-Dokument möchte ich in Abhängigkeit des Inhalts des Feldes testfeld entweder "Ja" oder "Nein" ausdrucken.
Wie muss meine Wenn-Bedingung im bedingten Text aussehen. Ich habe alle möglichen Varianten ausprobiert, aber egal welchen Datensatz ich auswähle, es bleibt immer der Text in der DANN-Anweisung im Feld stehen und ändert sich nie, egal, ob im ausgewählten Datensatz im testfeld die 0 (= Nein) oder die 1 (= Ja) steht.
Mir fehlt anscheinend die korrekte Syntax, um das DB-Feld anzusprechen...
Viele Grüße
Andreas
Bedingter Text und Datenbankfeld
Moderator: Moderatoren
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
Re: Bedingter Text und Datenbankfeld
Hallo AHoppe,
der vollständige Name hat folgende Syntax:
Also jeweils durch einen Punkt (.) getrennt. Du kannst Dir alles im Datenbank-Explorer (Funktionstaste F4) anzeigen lassen.
Beispiel: DB1.Abfrage1.Feld1 EQ 1 (bei numerischem Feld), DB1.Abfrage1.Feld1 EQ "1" (bei alphanumerischem Feld).
der vollständige Name hat folgende Syntax:
Code: Alles auswählen
Datenbankname.Tabelle oder Abfragename.Feldname
Beispiel: DB1.Abfrage1.Feld1 EQ 1 (bei numerischem Feld), DB1.Abfrage1.Feld1 EQ "1" (bei alphanumerischem Feld).
Zuletzt geändert von pmoegenb am Di, 26.05.2009 16:15, insgesamt 1-mal geändert.
Gruß
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Re: Bedingter Text und Datenbankfeld
Hallo Ihr beiden,
danke für die Antwort, aber es klappt weder über direktes Ansprechen in der Tabelle der DB noch über die Abfrage.
Ich gebe bei der Bedingung ein:
test-db.Alle Felder.Testfeld == "1" (Testfeld ist nicht numerisch!) -> funktioniert nicht
test-db.Alle Felder.Testfeld EQ "1" -> funktioniert nicht
Wenn ich test-db und Alle Felder und Testfeld beliebig mit ` "einkreise" (bspw. test-db.`Alle Felder`.Testfeld) passiert ebenfalls nicht das gewünschte. Es bleibt immer beim selben Wert im bedingten Text, egal welchen Datensatz ich für den Seriendruck auswähle.
Grüße
Andreas
danke für die Antwort, aber es klappt weder über direktes Ansprechen in der Tabelle der DB noch über die Abfrage.
Ich gebe bei der Bedingung ein:
test-db.Alle Felder.Testfeld == "1" (Testfeld ist nicht numerisch!) -> funktioniert nicht
test-db.Alle Felder.Testfeld EQ "1" -> funktioniert nicht
Wenn ich test-db und Alle Felder und Testfeld beliebig mit ` "einkreise" (bspw. test-db.`Alle Felder`.Testfeld) passiert ebenfalls nicht das gewünschte. Es bleibt immer beim selben Wert im bedingten Text, egal welchen Datensatz ich für den Seriendruck auswähle.
Grüße
Andreas
OpenSuSE 11.4 - 64 Bit
OOo 3.2.0
OOo 3.2.0
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
Re: Bedingter Text und Datenbankfeld
Hallo Andreas,
bei Datenbanken wie Datenbank-, Tabellen- und Feldnamen ist es immer ein Problem, wenn man von den diesbezüglichen Benamungsregeln abweicht. Dies sind z. B. Bindestriche und Leerzeichen. Verwende stattdessen Unterstreichungsstriche.
Ob dies allerdings ursächlich für Dein Problem ist, musst Du letztendlich selbst herausfinden.
bei Datenbanken wie Datenbank-, Tabellen- und Feldnamen ist es immer ein Problem, wenn man von den diesbezüglichen Benamungsregeln abweicht. Dies sind z. B. Bindestriche und Leerzeichen. Verwende stattdessen Unterstreichungsstriche.
Ob dies allerdings ursächlich für Dein Problem ist, musst Du letztendlich selbst herausfinden.
Gruß
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
Re: Bedingter Text und Datenbankfeld
Hallo Sanne,Sanne hat geschrieben:Ich verwende in unseren Serienbriefen (die wir regelmässig mit OO verfassen) immer nur den Feldnamen, ohne Datenbank- und Tabellennamen.
Das macht es einfacher, die Datenquelle zu tauschen.
In früheren Versionen hatte ich auch noch den vollständigen Namen verwendet, den dann aber in eckige Klammern setzen müssen:
[test-db.Alle Felder.Testfeld] == "1"
mfG
die eckigen Klammern sind nur erforderlich, wenn man sich nicht an die Benamungsregeln für Datenbanken hält. Ich zitiere dazu aus der Online-Hilfe:
Wenn Sie in einer Bedingung auf ein Datenbankfeld Bezug nehmen, verwenden Sie die Form Datenbankname.Tabellenname.Feldname. Wenn einer der Namen ein Operatorzeichen enthält, z. B. ein Minuszeichen (-), müssen Sie den Namen in eckige Klammern einschließen. Beispiel: Datenbankname.[Tabellen-Name].Feldname. Innerhalb von Feldnamen dürfen keine Leerzeichen verwendet werden.
Gegen die Benamungsregeln hat Andeas gleich mehrfach verstoßen. Dies dürfte auch die Ursache für seine Problem sein. Bei Bedingungen halte ich es so wie Du, ich lasse ebenfalls DB- und Tabellenname weg. Bisher hat es geklappt.
Zu den Standards ANSI SQL habe ich folgendes Zitat gefunden:
Die Vorschriften des Standards ANSI SQL beschränken einen Tabellen- bzw. Spaltennamen auf ein einziges Wort, zu dessen Bildung nur alphanumerische Zeichen und der Unterstrich zugelassen sind.
Zuletzt geändert von pmoegenb am Mi, 27.05.2009 07:33, insgesamt 1-mal geändert.
Gruß
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Re: Bedingter Text und Datenbankfeld
Hallo Sanne und pmoegenb,
jetzt klappt es auch bei mir.
Die eckigen Klammern waren mein Problem. Da ich einige Abfragen mit Alias-Namen habe, um die Benutzung für andere einfacher zu machen.
Ich verwende jetzt nur noch die Alias-Namen in eckigen Klammern ohne Angabe der DB und der Abfrage. Das ist für mich vorteilhaft, weil bei verschiedenen Abfragen die Alias-Namen identisch sind und ich somit die Vorlagen für verschiedene Abfragen leichter austauschen kann.
Danke Euch beiden. Problem gelöst.
Grüße
Andreas
jetzt klappt es auch bei mir.

Die eckigen Klammern waren mein Problem. Da ich einige Abfragen mit Alias-Namen habe, um die Benutzung für andere einfacher zu machen.
Ich verwende jetzt nur noch die Alias-Namen in eckigen Klammern ohne Angabe der DB und der Abfrage. Das ist für mich vorteilhaft, weil bei verschiedenen Abfragen die Alias-Namen identisch sind und ich somit die Vorlagen für verschiedene Abfragen leichter austauschen kann.
Danke Euch beiden. Problem gelöst.

Grüße
Andreas