Date: prev next · Thread: first prev next last
2023 Archives by date, by thread · List index


Vielen Dank Robert,

das hat schon mal auf Anhieb so funktioniert.

Es ist doch gut, wenn man auf diesem Weg immer wieder in schwierigen Fragen kompetente Hilfe erhalten kann.

Vielen Dank!

Gruß L-H


PS: Das Feld "IdentNummer" ist eine eindeutige Identifikation, um auf einem Hauptformular mehrer Unterformulare richtig zusammenzuhalten. So sollte das dann auch bei der Sammelerfassung von Bodenbearbeitungsvorgängen in meiner Schlagkartei richtig funktionieren.



Am 23.11.23 um 14:58 schrieb Robert Großkopf:
Hallo Leo,

das wäre der Code:

stSql = "INSERT INTO ""tbl_SE_BodBearb_Zw"" ( ""Datum"", ""Maschine_ID"", ""IdentNummer"", ""Jahr_ID"" ) SELECT ""tbl_SE_BodBearb_Vorg"".""Datum"", ""tbl_SE_BodBearb_Vorg"".""Maschine_ID"", ""tbl_SchlagGrunddaten"".""FlurstueckNr"" || ""tbl_SchlagGrunddaten"".""Gemarkung_ID"" || ""tbl_SchlagGrunddaten"".""SchlagNr"" AS ""SchlagIdentZahl"", ""tbl_SE_BodBearb_Vorg"".""Jahr_ID"" FROM ""tbl_SE_BodBearb_Vorg"", ""tbl_SchlagGrunddaten"", ""tbl_Vorg_Jahr"" WHERE ""tbl_SE_BodBearb_Vorg"".""Jahr_ID"" = ""tbl_Vorg_Jahr"".""ID"" AND ""tbl_SchlagGrunddaten"".""Marke"" = TRUE;"

… wenn das Feld "IdentNummer" ein Feld ist, das etwas mit Text anfangen kann. Denn durch die Verknüpfung von Feldern mit den Pipes erhältst Du automatisch einen Text.

In einer Abfrage habe ich das z.B. realisiert mit einem neuen Feld mit der Feldbezeichnung:

"FlurstueckNr" || "Gemarkung_ID" || "SchlagNr"

und dem Alias:

IdentNummer


Ja, wenn das wie eine Nummer aussieht ist es aber noch keine.
Kannst Du in einer Abfrage leicht nachvollziehen, indem Du z.B. zu der "Nummer" einfach 1 addieren lässt (oder das ganze mit 2 versuchst zu multiplizieren).

Deine "Nummer" hat hoffentlich keine führenden Nullen:

CAST("FlurstueckNr" || "Gemarkung_ID" || "SchlagNr" AS INTEGER)

sofern Du mit 9-stelligen Zahlen auskommst. INTEGER heißt 2^32
Ansonsten BIGINT (2^64) oder Du definierst das Ganze als eine Dezimalzahl … So machst Dzu aus dem Text erst einmal einen Zahl. Schau am besten, was Dein Feld "IdentNummer" denn aufnehmen kann.

Wenn etwas in einem Makro nicht funktioniert, dann hilft es, die Fehlermeldung hier zu posten. Die dürfte in dem Fall nämlich von der Datenbank kommen, weil Du eben Text in ein numerisches Feld packen willst. Und diese Fehlermeldung ist gleich der, die dabei raus kommt, wenn Du den Code (ohne die Anführungszeichendoppler) auch in Extras → SQL eingibst.

Gruß

Robert
--
www.lkhome.de

--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.