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.
BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
[gelöst] TRUNCATE(a,b)?
[gelöst] TRUNCATE(a,b)?
Zuletzt geändert von WbrunoT am Do 6. Mai 2021, 11:59, insgesamt 1-mal geändert.
Re: TRUNCATE(a,b)?
TRUNCATE ist ein Befehl für die interne HSQLDB. Das ist also im SQL-Code zu benutzen, nicht in Basic.
Du brauchst stattdessen
Schau dazu auch in der Hilfe zu Basic nach. Da muss noch
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.
Du brauchst stattdessen
Code: Alles auswählen
Round( expression as Double [,numdecimalplaces as Integer] )
Code: Alles auswählen
Option VBASupport 1
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: TRUNCATE(a,b)?
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!
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!
Re: [gelöst] TRUNCATE(a,b)?
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.
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
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 nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️