PDA

Vollständige Version anzeigen : zurückspeichern bei Berechnungen in einer Abfrage


Mel
10.08.2001, 13:00
Hallo mal wieder,

in einer Tabelle werden Artikel gespreichert. In einer zugehörigen Abfrage berechne ich rabattierte Preise aus einem preis_1! Gespeichert ist in meiner Tabelle aber nur der preis_1.

Kann ich die rabattierten Preise in die Tabellle zurückspeichern ohne für jeden eigenen rabattierten Preis ein Feld in meiner Tabelle anlegen zu müssen?

Ich hoffe, jemand kann mir helfen,

Grüßles,
Mel

maba
10.08.2001, 13:25
so wie ich dich verstehe Berechnest du aus dem Listenpreis einen Rabattpreis!
Den Listenpreis möchtest du dann durch den Rabattpreis ersetzen! Richtig?

ok dann mach aus deiner Abfrage eine Aktualisierungsabfrage und aktualsiere den Listenpreis mit deiner Formel!
zb:
UPDATE tabelle SET tabelle.spaltelistenpreis = [tabelle ]![spaltelistenpreis ]+1

Mel
10.08.2001, 13:28
Hallo Maba

Nicht ganz! Ich berechne aus einem Listenpreis 4 Rabattpreise in einer Abfrage. Speichere in der Tabelle aber nur den Listenpreis.

Kann ich die 4 Rabattpreise in die Tabelle zurückspeichern ohne jedem Rabattpreis ein Feld zuweisen zu müssen?

Klar was ich meine???

Danke,
Mel

maba
10.08.2001, 13:55
wie du willst 4 verschieden Werte in eine Zelle schreiben?

da fällt mir nur der NaschlageAssistent ein!
Bin nicht so sicher ich glaube aber du kannst denn direkt über deine Abfrage laufen lassen!

Mel
10.08.2001, 14:32
noch eine weiter Frage zu Abfragen:

ich möchte in der Abfrage festlegen, wenn die Anzahl 1-3 ist, daß dann der Preis 1 verwendet werden soll, wenn die Anzahl 4-9 ist, möchte ich, daß der Preis 2 verwendet wird

ich hab unter Kriterien für den Preis 1 geschrieben:
=wenn([anzahl_e_teil]>"0"und<"3")

geht aber nicht, was hab ich denn jetzt da schon wieder falsch gemacht ;-(

Danke schon mal im voraus,
Mel

maba
10.08.2001, 16:09
da fehlen noch die semikolas

=wenn([anzahl_e_teil]>"0"und<"3";dann preis 1;sonst preis 2 )

Mel
13.08.2001, 11:49
Ok, es scheint noch etwas komplizierter zu sein.

Meine Abfrage besteht aus einer Tabelle, welche die Auftragspositionen erfaßt und in dieser Tabelle habe ich ein Feld „preis“.

Diese Tabelle wiederum ist verknüpft mit einer Abfrage, welche die Artikel und die 5 Staffelpreise („preis_1“, „preis_2“, „preis_3“, „preis_4“, „preis_5“) enthält.

Unter „preis“ hab ich in die Kriterien jetzt folgendes geschrieben:

Wenn([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"0" Und [tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]<"4";"dann[qst_artikel_e_teil_preis].[preis_1]")
oder ([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"3" Und [tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]<"10";"dann[qst_artikel_e_teil_preis].[preis_2]")
oder ([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"9" Und [tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]<"20";"dann[qst_artikel_e_teil_preis].[preis_3]")
oder ([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"19" Und [tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]<"50";"dann[qst_artikel_e_teil_preis].[preis_4]")
oder ([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"49" dann[qst_artikel_e_teil_preis].[preis_5]")


Tja und jetzt sagt mir bitte mal einer, was jetzt da falsch ist!???

Ich hab keine Ahnung, es kommt immer die Fehlermeldung:

„Datentypen in Kriterienausdruck unverträglich!“

HILFE!!!!

Mel

maba
14.08.2001, 07:41
hy mel...
ich hatte leider noch keine zeit das gesamte zu testen aber auf den ersten blick würde ich es so machen:

Wenn([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"0" Und [tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]<"4";[qst_artikel_e_teil_preis].[preis_1])
oder Wenn([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"3" Und [tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]<"10";[qst_artikel_e_teil_preis].[preis_2]")
oder Wenn([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"9" Und [tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]<"20";[qst_artikel_e_teil_preis].[preis_3])
oder Wenn([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"19" Und [tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]<"50";[qst_artikel_e_teil_preis].[preis_4])
oder Wenn([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"49";[qst_artikel_e_teil_preis].[preis_5])

Werde mich mal im laufe des tages damit beschäftigen. Vielleicht hast du es ja bis dahin auch schon raus!

maba
14.08.2001, 08:04
hmmm so ist vielleicht besser!


Wenn([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"0" Und [tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]<"4";[qst_artikel_e_teil_preis].[preis_1]
oder Wenn([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"3" Und [tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]<"10";[qst_artikel_e_teil_preis].[preis_2]")
oder Wenn([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"9" Und [tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]<"20";[qst_artikel_e_teil_preis].[preis_3])
oder Wenn([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"19" Und [tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]<"50";[qst_artikel_e_teil_preis].[preis_4])
oder Wenn([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"49";[qst_artikel_e_teil_preis].[preis_5]))

maba
14.08.2001, 08:16
mir sind nu in kürze drei möglichkeiten eingefallen:
Das in eine neue Abfragespalte kopieren:

Berechnung:Wenn([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"0" Und [tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]<"4";[qst_artikel_e_teil_preis].[preis_1]
oder Wenn([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"3" Und [tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]<"10";[qst_artikel_e_teil_preis].[preis_2]")
oder Wenn([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"9" Und [tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]<"20";[qst_artikel_e_teil_preis].[preis_3])
oder Wenn([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"19" Und [tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]<"50";[qst_artikel_e_teil_preis].[preis_4])
oder Wenn([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"49";[qst_artikel_e_teil_preis].[preis_5]))

wie gesagt habe das alles noch nicht getestetet. aber vielleicht hilft dir es ja ein wenig weiter! Einfach mal kopieren und testen!!

Mel
14.08.2001, 13:36
Hallo Maba,

danke, dass Du mir so viel hilfst, aber es geht immer noch nicht!

Die Datentypen sind immer noch unverträglich. Hab jetzt mal in der Hilfe nachgelesen und "preis", "preis_1" und "anzahl_e_teil" auf LongInteger gesetzt.

Zuvor waren die Preise auf Währung und die Anzahl als Zahl. Hat aber leider nichts genützt.

Vielleicht habe ich ja einen ganz anderen, elementaren Fehler! Hast Du vielleicht noch eine Idee, was grundlegend falsch sein könnte, dass diese Abfrage nicht funktioniert!

Wollte einen Print Screen der Abfrage einfügen, geht aber leider nicht im Forum!

Mel

sekoe
14.08.2001, 13:42
High, sorry wenn ich mich da so einmische:

Ich würde daraus verschachtelte IIF's (Wenn) - Abfrage basteln. Da muss das "Oder" durch ;
(Für den False-Part) ersetzt werden. Ungefähr so:
Wenn([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"0" Und [tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]<"4";[qst_artikel_e_teil_preis].[preis_1];Wenn([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"3" Und [tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]<"10";[qst_artikel_e_teil_preis].[preis_2]";Wenn([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"9" Und [tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]<"20";[qst_artikel_e_teil_preis].[preis_3]);Wenn([tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]>"19" Und [tbl_auftrag_auftragsposition_e_teil].[anzahl_e_teil]<"50";[qst_artikel_e_teil_preis].[preis_4]);[qst_artikel_e_teil_preis].[preis_5])))))

Klammern überprüfen !

Mel
14.08.2001, 17:45
es geht immer noch nicht ;-(((((

mag sich das vielleicht mal wer anschauen?

Danke, daß Ihr mir so engagiert helft!

Mel

maba
15.08.2001, 07:46
hy mel sobald ich zeit habe werde ich mir das mal genauer anschauen.!

Nur so mal als Tip
Hast mal versucht die Abfrage aufzuspalten?
Sprich für jeden Preis eine Extra abfrage basteln somit verkleinert sich auche deine MEGA IIF()und ist auch leichter. Und dann die Abfragen über ein einfaches Makro nacheinander ausführen!

Gruß
maba