Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Markus R. am November 24, 2025, 20:17:15

Titel: Eingabe einer Zahl inklusive Vergleichszeichen
Beitrag von: Markus R. am November 24, 2025, 20:17:15
Hallo,

aus einer chem. Analyse stammt der Messwert "> 98,6". Diesen möchte ich dokumentieren und später mit einem Sollwert ">= 98,0" vergleichen.
Wie geht man beim Tabellenentwurf mit einer Zahl plus Vergleichszeichen um? Welcher Datentyp ist zu wählen und wie erleichtert man ggf. schon in der DB Struktur den Vergleich mit dem Sollwert?

Bei meiner bisherigen Suche wurde ich auf Gültigkeitsregeln verwiesen, doch darum geht es nicht. In dem Feld für den Messwert ist auch z.B. die Eingabe der Zahl "50" erlaubt.

Vielen Dank vorab,
Markus
Titel: Re: Eingabe einer Zahl inklusive Vergleichszeichen
Beitrag von: Knobbi38 am November 24, 2025, 21:51:29
Hallo Markus,

leider unterstützt VBA keine Pointer auf Funktionen, insofern dürften Auswertungen mit VBA nicht ganz einfach sein. Was die Tabellen betrifft, geht so etwas mit Textfeldern.

Hier mal eine Idee, wie man so etwas mit VBA nachbilden könnte:
s$ = "> 98.6"
? Cbool(Eval("98 " & s))
Falsch
? Cbool(Eval("98.7 " & s) )
Wahr
Allerdings rate ich in diesem speziellen Fall auf eine andere Programmiersprache als VBA auszuweichen, bei der es mehr modernere Möglichkeiten gibt. Suche mal mit den Begriffen "programmiersprache eval von ausdrücken", vielleicht wird es dann etwas deutlicher.

Eine mögliche Plattform für solche Aufgaben wäre hier eventuell "https://de.mathworks.com/products/matlab.html"

Knobbi38
 
Titel: Re: Eingabe einer Zahl inklusive Vergleichszeichen
Beitrag von: MzKlMu am November 25, 2025, 00:04:01
Hallo,
die Zahl sollte als reine Zahl in der Tabelle angelegt werden, ohne die Vergleichszeichen. Datentyp mindestens Double, ggf. auch Dezimal oder Währung (ohne Währunssymbol), je nach erforderlicher Genauigkeit.
Verglichen mit dem Sollwert (der ebenfalls in einer Tabelle gespeichert werden sollte) wird dann in einer Abfrage per Formel. Erst in der Formel gibt es dann das Vergleichszeichen.
Welche Vergleichzeichen gibt es denn (=, >, <, =>, =<) ?
Erkläre die Vergleiche mal genauer.
Titel: Re: Eingabe einer Zahl inklusive Vergleichszeichen
Beitrag von: Doming am November 25, 2025, 06:17:08
Moin,

auch mein Senf dazu. Ich würde, wie vermutlich auch von den anderen angedacht, zu dem Wertefeld ein zweites anlegen mit einer Zahl statt der Vergleichszeichen, also z.B. 1 für =, 2 für >, 3 für < usw.
Das kann man dann später in einer Abfrage oder Schleife dementsprechend auswerten.

if (Vergleich = 1 And Wert = Referenzwert) _
Or (Vergleich = 2 And Wert > Referenzwert) _
Or (Vergleich = 3 And Wert < Referenzwert) usw.

Gruß
Doming
Titel: Re: Eingabe einer Zahl inklusive Vergleichszeichen
Beitrag von: Bitsqueezer am November 25, 2025, 09:11:38
Hallo,

würde ich auch so machen, wie von Klaus und Doming vorgeschlagen.
Vorteil ist, daß Du das auch in SQL abfragen kannst, mit IIf oder Switch.
Für die Vergleichsarten kannst Du eine Lookup-Tabelle anlegen, die vom Aufbau so ist, wie von Doming vorgeschlagen.

Ich würde bei Genauigkeit zum Datentyp "Decimal" raten, den es auch in Access gibt, wenn auch etwas versteckt.
Beachte aber, daß es kein VBA-Variablen-Pendant zu Decimal gibt, wenn Du in VBA damit rechnen willst, mußt Du die betreffende Variable als Variant deklarieren, die kann mit Decimal umgehen.

Double ist schon recht genau, aber je nach Anzahl Nachkommastellen, die Du vielleicht brauchst, nicht genau genug, wenn es um Messwerte geht. Es ist halt eine berechnete Fließkommazahl, während Decimal exakt die Ziffern speichert, die Du speichern willst. Dafür aber eben auch nur für die angegebene Anzahl Stellen (Gesamtanzahl, Nachkommastellen davon).

Gruß

Christian

Titel: Re: Eingabe einer Zahl inklusive Vergleichszeichen
Beitrag von: Markus R. am November 25, 2025, 19:51:45
Hallo,

danke für euere Vorschläge!
Die "> 98,6" im obigen Beispiel kann man sich als eine Art Reinheit des Stoffes vorstellen. Sie entsteht, weil man auf bestimmte Unreinheiten prüft und die gefundenen Werte von 100 abzieht. Mit Messfehlern usw. wird dann ein "> xx,x" draus.

Da in der Tabelle auch Messwerte aus anderen Analysen ohne Vergleichszeichen eingetragen werden sollen, gefällt mir die Version mit einer zusätzlichen Spalte für das Vergleichszeichen gerade sehr gut. Mit Lookup-Tabelle dahinter stelle ich mir auch die Dateneingabe "einfach" vor.

Die vorgeschlagenen Datentypen für Werte schaue ich mir jetzt mal genauer an.

In der Tabelle für die Sollwerte könnte das Vergleichszeichen ersetzt werden durch eine Spalte ObereGrenze und eine Spalte UntereGrenze, gegen die man den Messwert prüfen kann. Im Beispiel von oben würde der Sollwert "98,0" in der Spalte UntereGrenze stehen.

Wie könnte dann eine Abfrage aussehen?

Viele Grüße
Markus