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
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.
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
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.
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 ?
Hallo,
ich sehe eigentlich keine Möglichkeit ohne VBA.
Anbei mal ein schnelles Beispiel.
[Anhang gelöscht durch Administrator]
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
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.
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.
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(.....)