PDA

Vollständige Version anzeigen : Abfrageergebnis mit Werten die variabel sind


Ingo Mergl
12.06.2012, 09:45
Sorry,ich wußte überhaupt nicht welche Überschrift ich meiner Frage geben soll ^^

Hier mein Problem:

Ich habe eine Grundtabelle mit Längen und Breitenangaben
zu jedem Wert wird die Blechdicke ermittelt.
Also wenn 7500mm lang und und 2800mm breit soll als Ergebnis aus der Tabelle Blechdicke 150mm angezeigt werden.

Ich möchte die Eingabe der Länge und Breite aber nicht durch fest zugewiesene Werte sondern durch freie Eingaben.
Wenn als jemand 7499mm x 2800mm eingibt dann Blechdicke 125mm
Bei 7501mm x 2800mm dann Blechdicke 150mm

Ich habe die schon mit der "wenn" Funktion in der Abfrage getestet, allerdings habe ich zuviele Eingaben und es ist so nicht möglich.

Kann mir da jemand weiterhelfen?

Vielen Dank

Gruß

maikek
12.06.2012, 09:54
Moin,
wie wird denn die Blechdicke ermittelt? Sind das feste Werte? Sind die ebenfalls in der/einer Tabelle enthalten?
Für mich sieht das nach einem Kriterium aus, in etwa so:
SELECT Dicke FROM Tabelle WHERE Länge >= 7500 AND Breite >= 2800
Evtl. braucht es da auch eine Tabelle mit Ober- und Untergrenzen?
maike

Atrus2711
12.06.2012, 09:55
Hi,

wie ist denn diese Intervallstaffelung aufgebaut? Was, wenn z.B. die Breite zu breit für 150 ist, aber die Länge zu kurz für 150?

Ingo Mergl
12.06.2012, 09:56
Also das sind alles feste Werte die in einer Tabelle hinterlegt sind

Atrus2711
12.06.2012, 10:09
Das ist schon klar. Aber diese festen Werte werden ja offenbar mit wechselnden Kriterien verglichen. Wie wird da vorgegangen?

Es ist doch so: du ordnest einer Kombination von Breite und Länge eine Dicke zu. OK. Aber Breite und Länge sind ja offenbar Grenzwerte: Bei "Breite bis zu" und "Länge bis zu" ergib sich eine Dicke von. Oder wie ist das?

Ingo Mergl
12.06.2012, 10:48
Also in meiner Grundtabelle habe ich 150mm Blechdicke bei 7500mm Länge
bis 7000 Länge sind es 125mm
Wenn jetzt jemand den Wert 7250 eingibt soll es eben Blechdicke 150mm anzeigen

maikek
12.06.2012, 11:46
Erweitere die Grundtabelle um einen unteren Grenzwert. Dann kannst du das Intervall abfragen:
dim lgLaenge as long
dim stCrit as string
lgLaenge = Me!FormularfeldLaenge
stCrit = " MinLaenge <= " & lgLaenge & " AND MaxLaenge >= " & lgLaenge
Me!FormularFeldDicke = DLookup("Dicke", "DeineTabelle", stCrit)
maike

Ingo Mergl
13.06.2012, 09:00
Hab ich jetzt nicht so verstanden.
Ich hab mal ein Beispiel hochgeladen.
http://www.fifa-funbolzer.de/access/test.accdb
Als Beispiel mal ID 17 und 18
Wenn jemand den Wert
Länge 3000 und Breite 2799 eingibt dann sollen die Werte aus ID 17 gelesen werden.
Gibt jemand Länge 3000 und Breite 2800 ein dann die Werte aus ID 18.

maikek
13.06.2012, 10:18
Was genau hast du nicht verstanden?
maike

Ingo Mergl
13.06.2012, 11:06
Dein Beispiel ^^

:sos: :confused:

maikek
13.06.2012, 11:15
Mein Beispiel geht davon aus, dass du

in deiner Grundtabelle die Felder MinLaenge (Mindestlänge) und MaxLaenge (maximale Länge) sowie Dicke hast
in einem Formular die Eingaben für Länge gemacht wurden

Nach Aktualisierung dieser Eingabe würde der Beispielcode aufgerufen.

die Funktion DLookup (siehe Online Hilfe) ermittelt aus der Grundtabelle den Wert für Dicke aus dem Datensatz, in dem die eingegebene Länge größer bzw. gleich Mindestlänge und kleiner/gleich Maximallänge ist
Dieser Wert wird dann im Formularfeld für die Dicke angezeigt

Um die Breite habe ich mich jetzt nicht gekümmert, das kannst du dann im selben Schema ergänzen.
maike

Claypool
13.06.2012, 12:22
Hallo!

Ich gehe davon aus, dass die Summe aus Wert1, Wert2 und Wert3 die Dicke ist.
Weiterhin nehme ich an, dass immer der nächstniedrigere Wert der Länge und der Breite aus der Tabelle Bohren gefunden werden muss, um dann die Dicke zu ermitteln.

Wenn diese annahmen stimmen, dann erstelle eine Abfrage in der Wert1 bis 3 summiert werden und absteigend sortiert werden.
In den Eigenschaften der Abfrage gibst du bei Spitzenwerte die Zahl 1 ein.

Deine Abfrage sollte noch die Felder Länge und Breite enthalten. Dort kannst du dann testen, ob es deinen hier noch nicht vollständig genannten Vorstellungen genügt und Zahlen eingeben, die alle mit <= beginnen müssen, damit korrekt gesucht wird.

Grüße
Ingo

Ingo Mergl
13.06.2012, 12:50
Ne, die Werte 1 bis 3 kann man nicht summieren

Wert 1 ist z.b Bohrerdurchmesser
Wert 2 ist z.b Bohrgeschwindigkeit
Wert 3 ist z.b Bohrervorschub

Wenn jemand Länge 3000 und Breite 2799 eingibt dann
Bohrerdurchmesser: 40
Bohrgeschwindigkeit: 48
Bohrervorschub: 27

Wenn jemand Länge 3000 und Breite 2800 eingibt dann
Bohrerdurchmesser: 40
Bohrgeschwindigkeit: 51
Bohrervorschub: 30

Atrus2711
13.06.2012, 13:04
Hi,

wie wärs mit folgedem Tabellenaufbau:
Breite_von
Breite_bis
Laenge_von
Laenge_bis
Dicke

Die Dicke ist quasi die resultierende Größe: wenn die Breite zwischen von und bis liegt und die Länge zwischen von und bis, dann ist diese Dicke zu nehmen.

Ich bin ja nicht vom Fach, aber

die Dicke könnte vielleicht auch noch vom Material abhängen?!
Bohrparameter dürften ausschließlich vom Material abhängen?!

Claypool
13.06.2012, 15:36
Hallo!

Wo ist dann die Dicke? Berechnet die sich? Steht die irgendwo? Wenn ja wo? Einfach nur eine unvollständige Tabelle ins Forum werfen und hoffen, dass sich jemand drum kümmert ist schon mutig.

Die Idee von Martin (Artrus2711) ist schon dir richtige. Wenn es feste Werte sind, dann erweitere deinen Datenbestand entsprechend. Das ist nur eine einmalige Sache und man kann dann wunderbar damit arbeiten.

Nichtsdestotrotz kannst du auch meinen Vorschlag verwenden. Du summierst dann eben nicht Wert1 bis 3 sondern gibst die ebenfalls aus. Dann hast du zumindest schon diese Angaben. Die Dicke kann man ja anhand deiner Angaben weder berechnen noch irgendwo herholen.

Grüße
Ingo

Ingo Mergl
14.06.2012, 05:52
Vielen Dank für eure Hilfe,
werd die Tabelle umstellen auf min und max Länge und Breite.
Sorry, wollte auf keinen Fall unverschämt sein mit meiner "unvollständigen Tabelle", wußte halt nicht richtig wie ich mein Problem erklären/rüberbringen sollte.

Also lieben Dank nochmal an alle Helfer

Gruß Ingo

Claypool
14.06.2012, 09:15
Hallo!

Mach mal. Wenn du Fragen zum Thema hast, dann in diesem Thread.

Hier ist noch ein Beispiel, wie ich es gelöst hätte mit den Angaben, die vorhanden sind.

Grüße
Ingo