Frage

Ich habe eine Tabelle in MS Access 2007 mit 4 Feldern bekommt.

  • Arbeitskosten
  • Arbeitszeiten
  • Vat
  • Total

Wie multiplizieren I ‚Arbeitszeiten‘ durch ‚Arbeitskosten‘ fügen Sie die ‚Mehrwertsteuer‘ und zeigt die Antwort in ‚Total‘

Wo würde ich alle Formeln setzen ?, in einer Form oder Abfrage oder Tabelle?

Vielen Dank für jede Hilfe

Scott

War es hilfreich?

Lösung

Es gibt auch die Attrappen (dh nicht SQL) Weg, es zu tun: Zuerst Ihre gesamte Spalte aus der Tabelle löschen und für diese Übung so tun, dass der Name der Tabelle ist „Arbeit“.

Sie nun eine neue Abfrage erstellen und es in der Entwurfsansicht anzuzeigen, fügen Sie alle Felder aus Ihrem Arbeitstisch (so können Sie überprüfen, ob alles funktioniert), wählen Sie ein leeres Feld der rechten Maustaste und wählen Sie „Build“ aus dem Dropdown Liste. Sie sollten nun einen Expression Builder Fenster.

Geben Sie den Namen für Ihr berechnetes Feld, z.B. labourTotal, folgen sie mit einem Doppelpunkt „:“ und dann die Feldnamen wählen Sie aus den Tabellen in der linken unteren Ecke des Expression Builder Fenster und doppelklicken Sie auf jedem hinzufügen möchten. Jedes Feld wird im Ausdruckseditor nach dem erscheinen „Total“. Jetzt ersetzen Sie jede „«Expr»“ mit einem „+“. Sie sollten dies im Ausdruckseditor sehen: "labourTotal: [Labor] [Arbeitskosten] + [Labor] [Arbeitszeiten] + [Labor] [Vat]!". Klicken Sie auf OK und die Abfrage ausführen - wenn alles gut die gesamte Spalte werden die Ergebnisse angezeigt werden.

Andere Tipps

Sie brauchen nicht die Spalte „Gesamt“ aller Wahrscheinlichkeit nach.

Ihre Anfragen oder Berichte werden wahrscheinlich ähneln diese:

SELECT [Total] = [Labour Cost] * [Labour Hours] + [VAT]

Sie können die gleiche Art von Formel in der Kontrollgruppe auf Ihre Formulare oder Berichte verwenden.

Wenn Sie wirklich die Daten in der Spalte Gesamt aktualisieren müssen:

UPDATE YourTableName SET [Total] = [Labour Hours] * [Labour Cost] + [VAT]


VIEL besserer Ansatz wäre jedoch sein, daß keine die Total Spalte aus der Tabelle zu entfernen und eine Abfrage erstellen:

SELECT [Labour Cost], 
       [Labour Hours], 
       [VAT], 
       [Labour Hours] * [Labour Cost] + [VAT] AS [Total]
FROM YourTableName

Der Grund dieser Ansatz bevorzugt wird, ist, weil es Ihnen versehentlich setzen schlechte Informationen in der Spalte Gesamt verhindert. Im Allgemeinen können die Daten sehr leicht beschädigt werden, wenn man nicht aufpasst und kann ein echten Schmerzen (wenn nicht unmöglich) zu beheben. Ich würde Sie google „Database Normalization“ vorschlagen und ein wenig auf sie zu lesen, -. Dies wird Ihnen enorm helfen

  1. re Ihre MwSt%, ich hoffe ich das Offensichtliche nicht, aber Sie sollten eine Dezimalzahl z eintreten 0,175 17,5%

  2. Sie können nicht nur einen Prozentsatz hinzufügen, muss es von etwas zu multiplizieren. Und Sie müssen 100% der ursprünglichen Menge enthalten. Also, wenn Sie wollen 17,5% hinzuzufügen, müssen Sie von 1,175 multiplizieren. So, das angenommen wird: i) wollen, dass die 100% automatisch enthalten (dh es werden nur auf den Typ 0,175 benötigen), und dass ii) Mehrwertsteuer auf die gesamte Menge hinzugefügt werden soll, und dass iii) von „angeben“ meinen Sie, dass Sie will die Mehrwertsteuer jedes Mal die Abfrage aufgefordert werden soll, laufen; Dann sollten Sie Ihre Formel sein:

Insgesamt: (! [General Aufwendungen] [Arbeitskosten] * [Allgemeine Ausgaben] [Arbeitszeiten] + [Materialkosten]) * (1 + [? Eingeben Mehrwertsteuer als Dezimalzahl Betrag])

Erstellen

eine neue Abfrage.

fügen Sie Ihre Tabelle

fügen Sie Ihre drei nicht-Summe-Felder auf die Abfrage

in einem neuen Feldtyp:

total: [VAT] + [Labour Hours] * [Labour Cost]

Ausführen Abfrage

Scott sagte:

  

im Grunde möchte nur machen die   Berechnungen, so dass ich die anzeigen kann   insgesamt auf dem Bildschirm und in einem Bericht.

Wie einige vorgeschlagen haben, können Sie die Berechnung in einer gespeicherten Abfrage tun und verwenden als Datenherkunft für beide Ihren Bericht und Form.

Aber ich würde vorschlagen, dass Sie das nicht tun. Ich würde vorschlagen, dass Sie zum spätest möglichen Zeitpunkt der Berechnungen zu tun. Für einen Bericht, würde dies bedeuten, Sie ein Steuerelement in Ihrem Bericht haben würden, die als seine Control hat die Berechnung, die Sie ausführen möchten. Auf diese Weise ist es nur für die Zeilen durchgeführt, die an dem Punkt gedruckt werden, dass die Seite formatiert wird.

Ich würde das Gleiche für eine Form vorschlagen außer , wenn Sie auf dem gesamten Feld sortieren oder filtern mögen. Berechnete Felder auf Formulare können nicht für die Sortierung / Filterung verwendet werden und können in lästig sein, wie langsam sie in einigen Situationen angezeigt werden soll. In diesem Fall würden Sie meinen Rat ignorieren zu vermeiden, dass sie in der Abfrage / Datenherkunft setzen, weil Sie einen guten Grund haben, es für alle Zeilen vor der eigentlichen Anzeige der Daten für die Berechnung.

Aber im Allgemeinen, setzt Berechnungen nicht in einem Datenherkunft, die Sie nicht als Gruppe arbeiten auf dem Gehen (Filtern, Sortieren, Gruppieren).

Sie könnten es ausdrückte in als berechnetes Feld in der Abfrage oder auf dem Formular. Überall dort, wo sinnvoll, ist einfach und hat das richtige Maß an Wiederverwendbarkeit. Wenn die Berechnung spezifischer eine Form oder Sicht auf die Daten ist, tun Sie es dort oder in der Abfrage.

In diesem Fall können Sie sehen vor, dass der Gesamt ein oft verwendeter Wert sein wird, und logisch auf die Reihe angelegt, so machen es ein berechnetes Feld geeignet ist. Berechnete Felder haben den Vorteil, dass (in den meisten Systemen nicht sicher MSAccess) können sie nur neu zu berechnen eingestellt werden, wenn sich die Daten ändern.

Wenn Sie arbeiteten heraus sagen, das Verhältnis der Menge vs Lieferzeiten, die mehr etwas sein, würde ich in der Abfrage für die spezifische Form / Bericht setzen würde, wie es nie los wiederverwendet werden und kann eine mehr sein saftige Rechnung.

Ich würde in der Regel wählen Sie eine Berechnung in der Abfrage zu tun, es sei denn, es auf dem Ergebnis einer anderen Berechnung beruht, dann ist es in der Abfrage zu tun irgendwie chaotisch bekommen konnte, so tun es in der Form / Code.

Also zusammenfassend, wo immer angemessen für diese ber.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top