Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Preis eines Artikels in Abhängikeit von Länge und Breite aus Datenbank auslesen

Begonnen von accessverzweifler, November 11, 2010, 14:03:33

⏪ vorheriges - nächstes ⏩

accessverzweifler

Hallo

ich habe folgendes Problem:
Ich habe ein Datenbank mit folgendem Aufbau;
Typ   Breite     Höhe   "PreisProfil 1"   "PreisProfil 2"
101          500             600             120                            140
101          500             700             130                            150 

Ich möchte nun in einem Formular die Werte Breite und Höhe eingeben und dann den entsprechenden PreisProfil 1   und PreisProfil2   erhalten.

Ferner soll die Eingabe immer aufgerundet werde, d.h  wenn als Höhe 620 eingegen wird soll der Preis aus dem Datensatz mit der Höhe 700 genommen werden.
Kann man das ganze ohne VBa Lösen damit es später einmal auch in einer Web Datenbank läuft  ?

Vielen Dank für eure HIlfe vorab.


accessverzweifler

DF6GL

Hallo,


Deine Forderung ist nicht oder sehr schwierig umzusetzen, weil die Tabelle keine Bereichsangaben (in einem Datensatz) für Breite und(!) Höhe enthält.


Die zweite Frage ist genausowenig beantwortbar, weil das stark
a) vom DB-Konzept (das hier an der Normalisierung und dem Aufbau krankt)
b) stark von der WEB-Datenbank abhängig ist, die mindestens einen ganz anderen SQl-Dialekt haben wird.


Jonny

Hallo,
das Runden bekommt man rechnerisch hin wenn man mit int arbeitet:
Ergebnis = Wenn([ausdr1]-(Int([ausdr1]/100))*100<>0;(Int([ausdr1]/100)+1)*100;[ausdr1])
ausdr1 ist deine Eingabe.

Danach könntest du zuerst eine Abfrage mit der Selektion auf Breitemachen und
eine zweite (die sich auf die erste bezieht) mit der selektio auf Höhe.

Die Abfragen habe ich nicht getestet müsstest du mal testen.

Ohne VBA ist das allerdings ein Behelf und keine vernüftige Lösung.

Zum Webauftritt siehe Franz.

Johann

MzKlMu

Hallo,
der Aufbau der Preistabelle ist schon mal falsch. Franz hat es schon angedeutet.

Typ        Breite          Höhe   "ProfilNr"    "Preis"
101          500             600         1             120                           
101          500             600         2             140
101          500             700         1             130
101          500             700         2             150   

Irgendwie kommt6 mir das bekannt vor, war das nicht schon mal ein Thema in einem anderen Forum vor langer Zeit?
Da wurde die Preisliste auch schon angemeckert.                         

Gruß Klaus

accessverzweifler

Ich habe die Datenbak vereinfacht und habe erst einmal nur ein Profil

also  typ, breite ,höhe,  preis

das Formular soll als Eingabe breite und höhe bekommen   und den Preis dann ausgeben.
in Exel habe ich die Funktion hinbekommen.

ich habe im Prinzip nichts gegen eine VBA Lösung,  ich habe nur gelesen dass man diese vermeiden soll wenn das
ganze mal als web Datenbank genutzt werden soll.

Kann man das ggf auch mit einem Makro lösen  ?


MzKlMu

Hallo,
ich sehe eigentlich keine Möglichkeit ohne VBA.

Anbei mal ein schnelles Beispiel.



[Anhang gelöscht durch Administrator]
Gruß Klaus

accessverzweifler

Danke fuer das Beispiel,

ich habe meine Tabellen mal um das Beispiel rum gebaut.

Ich habe eine Tabelle (Kundendaten) in die der Kunde nun die Daten Breite und Hoehe, sowie das gewuenschtesFensterprofil  eingibt.
Die D Lookup Funktion ermittelt mir nun im Formular den richtigen Preis.
Die Felder im Formular (breite und hoehe, sowie Profil) habe ich direkt aus der Kundedatentabelle genommen, sodass dort auch die eingegeben Daten gespeichert werden.
Wie bekomme ich es nun hin, dass auch der ermittelte Preis der ja aus einer anderen tabelle kommt in der Tabelle Kundendaten gespeichert wird?

Danke fuer eure Hilfe vorab


MzKlMu

Hallo,
im Grunde hast Du bereits ein fehlerfaftes Datenmodell.
In die Kundentabelle gehört sonst nicht als die Daten zum Kunden, keine Breite, keine Höhe, kein Profil und kein Preis.
Du brauchst noch mindestens 2 weitere Tabellen.

Tabelle1: Kundendaten
Tabelle2: Auftrag
Tabelle3: AuftragsPositionen.

In die 3. Tabelle kommen die Maße, das Profil und der Preis.

Die Auftragstabelle ist notwendig um auch weitere Aufträge eines Kunden speichern zu können.

Zusätzlich noch die Preisliste.
Gruß Klaus

accessverzweifler

Hallo

ich habe die Tabelle nur falsch bennant.
Sie enthaelt nur die technischen Bestelldaten.
also Breite, Hoehe, Positionsnummer.
den Preis suche ich wie gesagt in dem Formular aus einer Preisliste.
Da sich die Preisliste auch mal aendern kann, moechte ich den Preis zum Zeitpunkt der
Bestellung speichern.

MzKlMu

Hallo,
dann lege im Formular ein Feld an für den Preis. Das Feld muss in der Tabelle vorhanden sein und das Feld im Formular an das Tabellenfeld gebunden.
Wenn Du mit DLookup den Preis ermittelt hast, wiest Du eine Zeile weiter den Preis zu.

Me!Preisfeld = ErmittelterPreis

Oder gleich so:
Me!Preisfeld = DLookup(.....)
Gruß Klaus