PDA

Vollständige Version anzeigen : Runden in Abfrage


CW1
10.07.2006, 10:39
Hallo,

habe mal eine Frage zum generellen Vorgehen bei folgendem Fall.
Ich habe eine Abfrage mit folgendem Code:

SELECT DISTINCT tblSupplierParts.ID, tblSupplier_Scrap.[Supplier
name], tblSupplierParts.[Supplier Number], tblSupplierParts.[Part Number], tblParts.[Part Description], tblSupplierParts.[TRW Plant], tblSupplierParts
.[Base price], tblSupplierParts.[Current price], tblSupplierParts.[Volume 2006],
tblSupplier_Scrap.[Base Line], tblSupplier_Scrap.[Unit measurement],
tblSupplierParts.Currency, tblSupplierParts.[Exchange Rate], [Volume 2006]/12 AS [Mtly Qty], forms!frmPIAEingabe!text67 AS CSP, ([CSP]-[Base
Line])*0.85/1000 AS PA, Round([piece weight]*[PA]+[Base price],2) AS
[New price], ([New price]-[current price])/[current price] AS [% change],
[Current price]*[Volume 2006] AS [Current turnover], [New price]*[Volume 2006] AS [New turnover], [New turnover]-[current turnover] AS [Annual
Difference], forms!PIAEingabe!text63 AS FYE, forms!frmPIAEingabe!text65 AS
[Effective Date], forms!frmPIAEingabe!text85 AS EFDB, [Annual
Difference]/365*([FYE]-[EFDB]) AS [Effective Difference]

FROM tblSupplier_Scrap INNER JOIN (tblParts INNER JOIN tblSupplierParts ON tblParts.[Part Number] = tblSupplierParts.[Part Number]) ON tblSupplier_Scrap.[Supplier number] = tblSupplierParts.[Supplier Number]
WHERE (((tblSupplier_Scrap.[Supplier name])=[forms]![frmPIAEingabe]![lstSupplier]));


Die Abfrage wird also mit dem Listenfeld lstSupplier eingegrenzt. Wie ihr sehen könnt, runde ich in der obigen Abfrage das Feld [New price] auf 2 Kommastellen. Nun zu meinem Problem:

Bei verschiedenen Lieferanten muss ich auch auf 3 oder 4 Kommastellen runden. Kann ich das irgendwie "dynamisch" in SQL bzw. VBA realisieren oder muss ich für jeden Fall eine extra Abfrage erstellen und dann per VBA jeweils die richtige auswählen?

Letzteres erscheint mir nicht gerade die eleganteste Lösung zu sein.
Gibt es also etwas einfacheres?

Vielen Dank im Voraus
Gruß Christoph

CW1
10.07.2006, 13:19
Hallo nochmal,

das Problem hat sich erledigt. Habe einfach jedem Lieferanten eine Anzahl an Kommastellen zugeordnet und überge diese durch das vorgeschaltete Formular an die Runden()-Formel.

Sieht dann so aus:
Round([piece weight]*[PA]+[Base price],forms!frmPIAEingabe![decimal places]) AS [New price]


Gruß Christoph