🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[gelöst] TRUNCATE(a,b)?

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
WbrunoT
Beiträge: 7
Registriert: So 4. Mai 2014, 12:50

[gelöst] TRUNCATE(a,b)?

Beitrag von WbrunoT » Mi 5. Mai 2021, 17:14

Guten Tag,
komme von MS ACCESS, arbeite mich gerade durch das Base Handbuch und versuche anhand der db Medien_mit_Macros Prinzipien zu verstehen, nachzubauen und nach eigenem Bedarf anzupassen. Ich staune nicht schlecht über manche verschachtelte SQL, komme da aber an manchen Stellen nicht weiter.

Was bitte macht
TRUNCATE( "a"."Medien_ID_BC", - 1 ) / 10 )?
Laut Handbuch S. 584 schneidet TRUNCATE 'a' auf 'b' Zeichen nach dem Dezimalpunkt ab, (2.37456,2) = 2.37 . Es gelingt mir nicht, in einem Macro die Funktion darzustellen, z.B.
Sub Test1
Dim numZahl AS SINGLE
REM numZahl = TRUNCATE(1.23456,2)
MSGBOX (numZahl)
End Sub

Vielen Dank.
Zuletzt geändert von WbrunoT am Do 6. Mai 2021, 11:59, insgesamt 1-mal geändert.

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: TRUNCATE(a,b)?

Beitrag von RobertG » Mi 5. Mai 2021, 19:50

TRUNCATE ist ein Befehl für die interne HSQLDB. Das ist also im SQL-Code zu benutzen, nicht in Basic.

Du brauchst stattdessen

Code: Alles auswählen

Round( expression as Double [,numdecimalplaces as Integer] )
Schau dazu auch in der Hilfe zu Basic nach. Da muss noch

Code: Alles auswählen

Option VBASupport 1
vorher zu aktiviert werden.
Ohne die Aktivierung ist das Ganze nur durch Konstruktionen wie das Abschneiden der nachkommazahlen und anschließend Zurückumwandeln möglich, wenn ich die Hilfe da richtig lese.

Den Code mit der "Medien_ID_BC" hast Du vermutlich direkt aus der Beispieldatenbank. Da wird auf jeden Fall so eine Klammer fehlen.
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

WbrunoT
Beiträge: 7
Registriert: So 4. Mai 2014, 12:50

Re: TRUNCATE(a,b)?

Beitrag von WbrunoT » Do 6. Mai 2021, 11:56

Vielen Dank.
Der Code ist tatsächlich nur ein Teil der Abfrage "Ausleihe_nicht_gesperrt", ein ")" wurde zuviel kopert. Der Sinn der Abfrage ist klar. Dieser Teil fragt offensichtlich einen Barcode ab.
Wird in TRUNCATE durch das "-1" quasi das Komma mit abgeschnitten, also eine Ganzzahl erzeugt?
Nebenbei: Respekt für die viele Arbeit mit der Dokumentation!

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: [gelöst] TRUNCATE(a,b)?

Beitrag von RobertG » Fr 7. Mai 2021, 18:09

Wenn ich das noch richtig im Kopf habe: Mit der '-1' bei TRUNCATE( "a"."Medien_ID_BC", - 1 ) schneide ich wohl die Prüfziffer von dem Barcode ab. Anschließend wird ja durch 10 geteilt. Dadurch wird die Zahl dann auf eine Zahl ohne Prüfziffer zurückgesetzt.
Der Gedanke dabei war: Die ID der Tabelle hat ja sonst nichts mit dem Barcode zu tun. Wenn ich aber einen Barcodescanner nutzen möchte braucht der die Prüfziffer. Also muss ich mit einer Prüfziffer einlesen, die Ziffer abschneiden und kann dann mit der automatischen ID von z.B. '1' des jeweiligen Mediums vergleichen.
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


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.



Antworten