BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> 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)?

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
Beiträge: 2732
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
Beiträge: 2732
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 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 ❤️

Antworten