Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Ikswoknib am April 01, 2020, 17:16:10

Titel: Berechnung von Werten mittels Formel aus Feld
Beitrag von: Ikswoknib am April 01, 2020, 17:16:10
Hallo,

ich habe 2 Tabellen:
1. Tabelle: Hier stehen verschiedene Geräte drin, also Type, Hersteller etc. und eine Formel mit welcher ich die Unsicherheit der Geräte berechnen kann. Diese Formel ist bei jedem Gerät anders!
2. Tabelle: Hier stehen verschiedene Messstellen mitsamt Parametern und dem eingesetzten Gerätetyp drin

Nun möchte ich gerne in einer Abfrage die beiden Tabellen zusammenführen und mit die Unsicherheit jeder Messstelle berechnen lassen.

als kleines Beispiel:

Tabelle 1:
Type   Formel
A12    Messbereich/100
A13    Messbereich/50
XY7    Messbereich/25

Tabelle 2:
Messstelle   Gerätetype   Messsbereich
2711          A12              50
815            XY7              10
816            XY7              30
4568          A13              50
Ich hatte jetzt gedacht das ginge evtl. mit der Funktion Auswerten, damit bekomme ich das aber nicht hin.
Hat jemand ne Idee wie bzw. ob das geht ?Die Formeln können halt komplett unterschiedlich sein, auch mit wenn Funktionen oder dergleichen, also nicht immer nur simples multiplizieren oder dividieren....
Schonmal vielen Danke und GrußIkswoknib
Titel: Re: Berechnung von Werten mittels Formel aus Feld
Beitrag von: DF6GL am April 01, 2020, 19:32:27
Hallo,

in einer Abfrage die beiden Tabellen zusammenführen


geht so:

füge im Abfrageentwurf beide Tabellen hinzu.
Verbinde (verknüpfe) die Felder "Type" und "Gerätetype" miteinander  mit  Verknüpfungs-Art "Inhalte der Felder sind gleich".

In einer leere Spalte kannst Du dann die Berechnung durchführen, die jeder Type zugehörig sind.

Titel: Re: Berechnung von Werten mittels Formel aus Feld
Beitrag von: Ikswoknib am April 02, 2020, 07:11:59
Hallo,

so habe ich es ja versucht.
Ich habe die Tabellen zusammen geführt und eine neue Spalte mit folgendem Ausdruck erstellt:
Berechn: Auswerten([Formel])

Wenn in der Spalte Formel z.B. 5*2 steht klappt das auch, es wird dann 10 angezeigt.
Möchte ich dort aber z.B. "Messbereich*2" rechnen kommt nur #Fehler

Gruß
Titel: Re: Berechnung von Werten mittels Formel aus Feld
Beitrag von: DF6GL am April 02, 2020, 09:27:45
Hallo,

wenn ich es recht verstehe, soll "Messbereich" in Feld "Formel" eine Referenz auf das Feld "Messsbereich" in Tabelle2 sein?

Eine solche Referenz kann Eval nicht auflösen.


Warum überhaupt eine "Referenz" benutzen? Schreib in das Feld "Formel" lediglich den Divisorwert ein und berechne in einer leeren Abfragespalte:

x: ([Messbereich]/[Formel])



Wenn die Formel jeweils unterschiedliche Rechenoperatoren enthält, dann ist eine Public-Function sinnvoll, die in einer Abfrage aufgerufen wird:

Public Function fktEval(fldName As String, fldval As String, Formel As String)
  fktEval = Eval(Replace(Formel, fldName, fldval))
End Function



Tabelle:

ZitatID   Messbereich   Formel
1   50                   Messbereich/100
2   10                   Messbereich*500



Abfrage:

SELECT Tabelle1.Messbereich, Tabelle1.Formel, fktEval("Messbereich",[Messbereich],[Formel]) AS x
FROM Tabelle1;



Abfrageergebnis:

ZitatMessbereich     Formel                     x
50                   Messbereich/100      0,5
10                   Messbereich*500      5000
Titel: Re: Berechnung von Werten mittels Formel aus Feld
Beitrag von: Ikswoknib am April 02, 2020, 11:33:48
Hallo,

danke für Deine Hilfe.
Dann scheint es mir so dass dies für meine Probleme nicht funktioniert.
Die Formeln sind schon ein wenig komplexer.

Trotzdem danke nochmal für den support.

Gruß

Iksi
Titel: Re: Berechnung von Werten mittels Formel aus Feld
Beitrag von: DF6GL am April 02, 2020, 11:44:47
Hallo,

dann zeig halt mal eine solche komplexe Formel....