🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Was muss in eine Abfrage?
-
- * LO-Experte *
- Beiträge: 829
- Registriert: Fr 28. Mär 2014, 10:41
Re: Was muss in eine Abfrage?
Hallo Robert,
vielen Dank für die vielen Informationen, die ich leider noch nicht nachvollziehen konnte.
Vorab möchte ich deine Fragen beantworten:
Im jetzigen Bestand habe ich von vielen Personen noch nicht einmal EINE Bankverbindung. Die Auslagerung in eine eigene Tabelle habe ich deshalb gemacht, um die Haupttabelle nicht aufzublähen. Ähnliches gilt für das Bemerkungsfeld, wo ich nur bei den Datensätzen Speicherplatz reservieren wollte, wo wirklich eine Bemerkung steht. Und weil ich mal gehört habe, daß man das eben mit Datenbanken so macht, Normalisieren. Die Bestandsdaten (über 1000 Adressen) sind jetzt auch alle schon in dieser Form aufgeteilt.
Mehrere Bankverbindungen pro Person können vorkommen. Mehrere Bemerkungsfelder pro Adresse nicht.
Bankverbindung und Bemerkung müssen zur Zeit nicht ausgewertet oder übergeben werden irgendwohin, nur angezeigt und editiert.
Häufig kommen mehrere Kontaktnummern/-adressen vor pro Person (Telefon, Handy, Fax, Mail, URL). Das alles eingeben zu können, auch wenn einer zwei Handies und drei Mailadressen hat, wäre schon wichtig. Hier wäre auch die Übergabe an einen Brief per Makro wichtig, als Adresse mit dem Zusatz "per Fax: ..." oder "per Mail: ...".
Wäre t-kontakte einfacher mit einem kombinierten Primärschlüssel? Aber mehrere Handynummern oder Mailadressen gehen dann nicht, oder?
Viele Grüße
Freischreiber
vielen Dank für die vielen Informationen, die ich leider noch nicht nachvollziehen konnte.
Vorab möchte ich deine Fragen beantworten:
Im jetzigen Bestand habe ich von vielen Personen noch nicht einmal EINE Bankverbindung. Die Auslagerung in eine eigene Tabelle habe ich deshalb gemacht, um die Haupttabelle nicht aufzublähen. Ähnliches gilt für das Bemerkungsfeld, wo ich nur bei den Datensätzen Speicherplatz reservieren wollte, wo wirklich eine Bemerkung steht. Und weil ich mal gehört habe, daß man das eben mit Datenbanken so macht, Normalisieren. Die Bestandsdaten (über 1000 Adressen) sind jetzt auch alle schon in dieser Form aufgeteilt.
Mehrere Bankverbindungen pro Person können vorkommen. Mehrere Bemerkungsfelder pro Adresse nicht.
Bankverbindung und Bemerkung müssen zur Zeit nicht ausgewertet oder übergeben werden irgendwohin, nur angezeigt und editiert.
Häufig kommen mehrere Kontaktnummern/-adressen vor pro Person (Telefon, Handy, Fax, Mail, URL). Das alles eingeben zu können, auch wenn einer zwei Handies und drei Mailadressen hat, wäre schon wichtig. Hier wäre auch die Übergabe an einen Brief per Makro wichtig, als Adresse mit dem Zusatz "per Fax: ..." oder "per Mail: ...".
Wäre t-kontakte einfacher mit einem kombinierten Primärschlüssel? Aber mehrere Handynummern oder Mailadressen gehen dann nicht, oder?
Viele Grüße
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
Re: Was muss in eine Abfrage?
Hallo Freischreiber,
ich hänge einmal eine überarbeitete Version Deiner DB an. Da ich die Vorlage für den Ausdruck nicht habe, habe ich natürlich auch das Makro bisher nicht eingebunden.
Gruß
Robert
ich hänge einmal eine überarbeitete Version Deiner DB an. Da ich die Vorlage für den Ausdruck nicht habe, habe ich natürlich auch das Makro bisher nicht eingebunden.
Gruß
Robert
- Dateianhänge
-
- Musterdatenbank.odb.zip
- Musterdatenbank mit Formular
- (15.42 KiB) 247-mal heruntergeladen
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
-
- * LO-Experte *
- Beiträge: 829
- Registriert: Fr 28. Mär 2014, 10:41
Re: Was muss in eine Abfrage?
Hallo Robert,
vielen Dank, das sieht sehr gut aus.
Allerdings habe ich mit dem kombinierten Primärschlüssel bei t-kontakte tatsächlich Probleme. Bei den Bestandsdaten kann ich die Schlüssel so nicht setzen, weil es zu oft vorkommt, daß z. B. zwei Handynummern oder Mailadressen zu einer Adresse gespeichert sind. Kann man es nicht mit eigener ID machen?
Bei t-adressbemerkungen ist es kein Problem.
Anliegend erhältst du die Briefvorlage mit Platzhaltern für das Adreßfeld. Soweit ich weiß, braucht das Textfield-Makro nur diese Platzhalter mit der gleichen Bezeichnung wie das Quellfeld.
Viele Grüße
Freischreiber
vielen Dank, das sieht sehr gut aus.
Allerdings habe ich mit dem kombinierten Primärschlüssel bei t-kontakte tatsächlich Probleme. Bei den Bestandsdaten kann ich die Schlüssel so nicht setzen, weil es zu oft vorkommt, daß z. B. zwei Handynummern oder Mailadressen zu einer Adresse gespeichert sind. Kann man es nicht mit eigener ID machen?
Bei t-adressbemerkungen ist es kein Problem.
Anliegend erhältst du die Briefvorlage mit Platzhaltern für das Adreßfeld. Soweit ich weiß, braucht das Textfield-Makro nur diese Platzhalter mit der gleichen Bezeichnung wie das Quellfeld.
Viele Grüße
Freischreiber
- Dateianhänge
-
- Musterdatenbank Briefvorlage.zip
- (9.13 KiB) 237-mal heruntergeladen
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
Re: Was muss in eine Abfrage?
Hallo Freischreiber,
das habe ich natürlich nicht berücksichtigt:
Handynummer 1, 2, 3 usw. (wo ich nicht einmal eins habe) und auch noch verschiedene Mailadressen. Da hast Du dann natürlich Recht, dass in die entsprechende Tabelle ein separater Schlüssel gehört.
Ich habe jetzt leider nicht mehr die Zeit, mich da noch dran zu setzen. Vom Prinzip her musst Du nur die Tabelle t-Kontakte aus Extras → Beziehungen löschen und abspeichern, die Änderung in der Tabelle vornehmen und dann die Tabelle wieder einfügen.
Gruß
Robert
das habe ich natürlich nicht berücksichtigt:
Handynummer 1, 2, 3 usw. (wo ich nicht einmal eins habe) und auch noch verschiedene Mailadressen. Da hast Du dann natürlich Recht, dass in die entsprechende Tabelle ein separater Schlüssel gehört.
Ich habe jetzt leider nicht mehr die Zeit, mich da noch dran zu setzen. Vom Prinzip her musst Du nur die Tabelle t-Kontakte aus Extras → Beziehungen löschen und abspeichern, die Änderung in der Tabelle vornehmen und dann die Tabelle wieder einfügen.
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
-
- * LO-Experte *
- Beiträge: 829
- Registriert: Fr 28. Mär 2014, 10:41
Re: Was muss in eine Abfrage?
Hallo Robert,
es geht nicht. Ich bekomme die Tabelle nicht wieder so hin, wie sie war.
Ich kann eine ID-Spalte einfügen, aber nur am Ende, nicht als erste Spalte. Und wenn ich sie speichern will, heißt es: "Attempt to insert null into a non-nullable column..." ??
Hast du mit "nicht mehr die Zeit" den Tag gemeint, oder überhaupt?
Gruß
Freischreiber
es geht nicht. Ich bekomme die Tabelle nicht wieder so hin, wie sie war.
Ich kann eine ID-Spalte einfügen, aber nur am Ende, nicht als erste Spalte. Und wenn ich sie speichern will, heißt es: "Attempt to insert null into a non-nullable column..." ??
Hast du mit "nicht mehr die Zeit" den Tag gemeint, oder überhaupt?
Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
-
- * LO-Experte *
- Beiträge: 829
- Registriert: Fr 28. Mär 2014, 10:41
Re: Was muss in eine Abfrage?
Hallo Robert,
Es ist zum Verzweifeln. Jetzt wollte ich nochmal mit meiner ursprünglichen Musterdatenbank, s. o., anfangen, weil dort die t-kontakte vollständig ist, und wollte die t-adressbemerkungen so vereinfachen, wie du es gemacht hattest (AdressID als Primärschlüssel).
Da kommt auch eine Fehlermeldung, wieder eine andere:
SQL-Status: S0011
Fehler-Code: -25
Attempt to drop the primary key in statement [ALTER TABLE "t-adressbemerkungen" ADD PRIMARY KEY ("AdressID")]
Beide gescheiterten Änderungsversuche natürlich mit gelöschten Relationen und Speicherung der Löschung. Was mache ich falsch?
Gruß
Freischreiber
Es ist zum Verzweifeln. Jetzt wollte ich nochmal mit meiner ursprünglichen Musterdatenbank, s. o., anfangen, weil dort die t-kontakte vollständig ist, und wollte die t-adressbemerkungen so vereinfachen, wie du es gemacht hattest (AdressID als Primärschlüssel).
Da kommt auch eine Fehlermeldung, wieder eine andere:
SQL-Status: S0011
Fehler-Code: -25
Attempt to drop the primary key in statement [ALTER TABLE "t-adressbemerkungen" ADD PRIMARY KEY ("AdressID")]
Beide gescheiterten Änderungsversuche natürlich mit gelöschten Relationen und Speicherung der Löschung. Was mache ich falsch?
Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
-
- * LO-Experte *
- Beiträge: 829
- Registriert: Fr 28. Mär 2014, 10:41
Re: Was muss in eine Abfrage?
Hallo Robert,
das ist wirklich ein seltsames Verhalten von Base: Beide oben zitierten Fehlermeldungen haben anscheinend wenig zu bedeuten, Base hat die Änderungen am Primärschlüssel trotzdem übernommen, was man nach Schließen und Neustarten der Datenbank sehen konnte! Sind diese Meldungen ein Bug?
Jedenfalls habe ich im Anhang
- bei t-kontakte den Index wieder eingeführt
- das Makro eingebaut
- das Formular um einen Faxknopf ergänzt und
- die Briefvorlage ausprobiert.
Ergebnis wie befürchtet: Die Faxnummer wird nicht übernommen. Was mache ich jetzt? Mein Wunschtraum wäre, daß die gerade markierte Faxnummer (im Beispiel sind zwei angelegt) in den Brief übernommen wird.
Gruß
Freischreiber
das ist wirklich ein seltsames Verhalten von Base: Beide oben zitierten Fehlermeldungen haben anscheinend wenig zu bedeuten, Base hat die Änderungen am Primärschlüssel trotzdem übernommen, was man nach Schließen und Neustarten der Datenbank sehen konnte! Sind diese Meldungen ein Bug?
Jedenfalls habe ich im Anhang
- bei t-kontakte den Index wieder eingeführt
- das Makro eingebaut
- das Formular um einen Faxknopf ergänzt und
- die Briefvorlage ausprobiert.
Ergebnis wie befürchtet: Die Faxnummer wird nicht übernommen. Was mache ich jetzt? Mein Wunschtraum wäre, daß die gerade markierte Faxnummer (im Beispiel sind zwei angelegt) in den Brief übernommen wird.
Gruß
Freischreiber
- Dateianhänge
-
- Musterdatenbank RG.zip
- (26.52 KiB) 255-mal heruntergeladen
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
Re: Was muss in eine Abfrage?
Moin,
wenn Du in deiner Vorlage statt des Platzhalters Fax einen Platzhalter Kontakt setzt und dann dieses Makro verwendest, bekommst du deinen Wunschtraum, verbessert, denn wenn du eine Mailadresse markiert hast ...
HTH R
wenn Du in deiner Vorlage statt des Platzhalters Fax einen Platzhalter Kontakt setzt und dann dieses Makro verwendest, bekommst du deinen Wunschtraum, verbessert, denn wenn du eine Mailadresse markiert hast ...
Code: Alles auswählen
REM ***** BASIC *****
Sub Main
oDoc = thisComponent
oForm = oDoc.Drawpage.Forms(0)
oFormKontakt = oForm.getbyname("FormKontakt")
oColumns = oForm.Columns
nKontakt = oFormKontakt.getint(oFormKontakt.findcolumn("KontaktartID"))
scurrentKontakt = oFormKontakt.getString(oFormKontakt.findcolumn("Nummer"))
select case nKontakt
case 3
scurrentKontakt = "Per Fax: " & scurrentKontakt
case 6
scurrentKontakt = "Per E-Mail: " & scurrentKontakt
Case else
scurrentKontakt = ""
end select
REM Pfad zur Vorlage zusammensetzen
Globalscope.BasicLibraries.loadLibrary("Tools")
sURL = oDoc.Parent.URL
sURL = DirectoryNameoutofPath(sURL,"/") & "/"
sURL = sURL & "Musterdatenbank Briefvorlage.ott"
REM Vorlage öffnen
Dim args(0) as new com.sun.star.beans.PropertyValue
args(0).Name = "AsTemplate"
args(0).Value = True
newDoc = StarDesktop.loadComponentFromURL(sURL,"_blank",0,args)
REM Textfelder holen
enumTextfields = newDoc.Textfields.createEnumeration
Do While enumTextfields.hasMoreElements
thisTextfield = enumTextfields.nextElement
If thisTextfield.supportsService("com.sun.star.text.TextField.JumpEdit") Then
sColumnname = thisTextfield.PlaceHolder
if thisTextfield.PlaceHolder = "Kontakt" Then 'Sonderfall vom Unterformular kommt
thisTextfield.Anchor.String = scurrentKontakt
end if
If oColumns.hasByName(sColumnname) Then
nIndex = oForm.findColumn(sColumnname)
thisTextfield.Anchor.String = oForm.getString(nIndex)
End If
End If
Loop
End Sub
Windows 11: AOO, LO Linux Mint: AOO, LO
-
- * LO-Experte *
- Beiträge: 829
- Registriert: Fr 28. Mär 2014, 10:41
Re: Was muss in eine Abfrage?
Hallo F3K Total!
...wenn ich eine Mailadresse markiert habe, dann schreibt er die Mailadresse rein! Und wenn aus Versehen eine Telefonnummer markiert ist, dann schreibt er gar nichts! Genial!
Du baust dem Textfield-Makro ein fallabhängiges Textfeld, das dann verarbeitet wird wie die sichtbaren Textfelder auch?
Als Anhang hab ich nochmal die aktuelle Version mit deinem Makro und der aktuellen Briefvorlage.
Irgendwann werde ich die Datenbank um Auftragsnummern und ein auftragsbezogenes Formular ergänzen. Von dort soll sich per Button ein Brief öffnen, wo ein markierter Kunde angeschrieben wird. (Mehrere Aufträge können zu mehreren Kunden gehören, das wird wohl eine Zwischentabelle werden).
Darf ich dann nochmal auf dich zukommen, falls ich die Abänderung des Makros nicht schaffe?
Vielen Dank und ein extra Osterhase an RobertG und F3K Total:
(\__/)
(O. o)
(} {)
Gruß
Freischreiber
...wenn ich eine Mailadresse markiert habe, dann schreibt er die Mailadresse rein! Und wenn aus Versehen eine Telefonnummer markiert ist, dann schreibt er gar nichts! Genial!
Du baust dem Textfield-Makro ein fallabhängiges Textfeld, das dann verarbeitet wird wie die sichtbaren Textfelder auch?

Als Anhang hab ich nochmal die aktuelle Version mit deinem Makro und der aktuellen Briefvorlage.
Irgendwann werde ich die Datenbank um Auftragsnummern und ein auftragsbezogenes Formular ergänzen. Von dort soll sich per Button ein Brief öffnen, wo ein markierter Kunde angeschrieben wird. (Mehrere Aufträge können zu mehreren Kunden gehören, das wird wohl eine Zwischentabelle werden).
Darf ich dann nochmal auf dich zukommen, falls ich die Abänderung des Makros nicht schaffe?
Vielen Dank und ein extra Osterhase an RobertG und F3K Total:
(\__/)
(O. o)
(} {)
Gruß
Freischreiber
- Dateianhänge
-
- Musterdatenbank RG mit F3K-Textfield-Makro.zip
- Normalisierte Adressdatenbank.
Das enthaltene Formular dieser Adressdatenbank ist voll editierbar und öffnet auf Knopfdruck ein Writerdokument mit der markierten Fax- oder Mailadresse. Vielen Dank an DPunch, RobertG und F3K Total! - (26.34 KiB) 343-mal heruntergeladen
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.