Access Formular und Tabellenbeschreibung

Hallo,

ich muss zuerst sagen, dass ich ein ziemlicher Anfänger bin was Access betrifft.
Ich arbeite in einem kleinen Laden und bastle derzeit ein kleines Controlling Tool in Access. Über ein Formular werden Daten wie Ausgaben für MAterial, Geräte und Personal erfasst und mit dem Umsatz ins Verhältniss gesetzt damit die Geschäftsführern am Tagesende ein wenig den Überblick hat wie sie „dasteht“. Das war der Auftrag meines Chefs.
Das klappt auch alles wunderbar bis auf zwei Problem die ich nicht hinbekomme.

  1. Im Formular muss nur der Bruttoeinkauspreis (Handeslware (brutto)) eingegeben werden. (Handeslware (netto)) wird im Formular automatisch ausgerechnet. Dies soll lediglich eine Eingabeerleichterung sein, das es recht viele brutto und netto fleder gibt.

Ich möchte Access dazu bringen die errechneten Nettopreise auch in der dahinterliegenden Gleichnamigen Tabellenspalte zu speichern (Handeslware (netto)). Ich weiß man soll das eigentlich nciht machen aber ich würde es gern trotzdem tun.

  1. sobald das Formular ausgefüllt ist solle es gesperrt werden. Es sollen also keine änderungen mehr erlaubt sein esseidenn es ist ein neuer datensatz der geöffnet wird.

ich danke schon mal für die hilfe

Hallo Björn,

ich muss zuerst sagen, dass ich ein ziemlicher Anfänger bin
was Access betrifft.

wir haben alle mal angefangen :smile:

Ich arbeite in einem kleinen Laden und bastle derzeit ein
kleines Controlling Tool in Access. Über ein Formular werden
Daten wie Ausgaben für MAterial, Geräte und Personal erfasst
und mit dem Umsatz ins Verhältniss gesetzt damit die
Geschäftsführern am Tagesende ein wenig den Überblick hat wie
sie „dasteht“. Das war der Auftrag meines Chefs.

ok

Das klappt auch alles wunderbar bis auf zwei Problem die ich
nicht hinbekomme.

  1. Im Formular muss nur der Bruttoeinkauspreis (Handeslware
    (brutto)) eingegeben werden.

das ist gut

(Handeslware (netto)) wird im Formular automatisch ausgerechnet.

also die Mathematik funktioniert?

Dies soll lediglich eine Eingabeerleichterung sein,

logisch

das es recht viele brutto und netto fleder gibt.

warum das?

Ich möchte Access dazu bringen die errechneten Nettopreise
auch in der dahinterliegenden Gleichnamigen Tabellenspalte zu
speichern (Handeslware (netto)).

ähm, du hast ein Formular, wo die Datenbasis deine Tabelle ist. D.h. auch, die Felder stehen dir jederzeit zur Verfügung! Wo ist das Problem?

Ich weiß man soll das
eigentlich nciht machen aber ich würde es gern trotzdem tun.

was auch immer du diesbezüglich willst, könntest du das mal genauer beschreiben?

  1. sobald das Formular ausgefüllt ist solle es gesperrt
    werden. Es sollen also keine änderungen mehr erlaubt sein
    esseidenn es ist ein neuer datensatz der geöffnet wird.

Das Formular hat eine Datenherkunft (eine Tabelle)! Dort erstellst du ein Feld mit dem Namen: GESPERRT und als Typ wählst du JA/NEIN.

Dieses Feld solltest du dann auf deinem Formular platzieren, damit man manuell den Datensatz sperren kann. Eine Automatik würde ich aus Erfahrung nicht empfehlen!

Beim Ereignis = Anzeigen, wertest du dann das Tabellenfeld aus und sperrst dein Formular für die Dateneingabe per VBA.
Da ein neuer Datensatz noch keine Daten in dem Feld hat, wäre also die Eingabe ganz normal möglich.

In der Praxis hat sich gezeigt, dass Fehleingaben bzw. fehlende Angaben/Eingaben immer häufiger dazu geführt haben, diese Sperre dann doch wieder zu deaktivieren! Sprich mal mit der Chef!

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hi,
erstmal danke für die Hilfe.
In den Tabellen werden alle im Formular berechneten Werte immer als „0“ abgelegt und nicht als der berechnete Wert und ich weiss nicht wie ich das ändern kann.

Es gibt deshalb viele brutto und netto werte weil der Begriff Handelswaren nur ein von mir gewählter Oberbegriff für viele einzelposten war.

Hi,

In den Tabellen werden alle im Formular berechneten Werte
immer als „0“ abgelegt und nicht als der berechnete Wert und
ich weiss nicht wie ich das ändern kann.

hmm, das hört sich danach an als ob du die Felder nicht mit der Tabelle verbunden hast.

Prüfe folgendes:

  • öffne das Formular
  • klicke ein Nettofeld mit der Rechten Maustaste an
  • wähle Eigenschaften
  • wähle den Reiter [ALLES]
  • klicke auf das Wort -> Steuerelementinhalt
  • am Ende findest du einen nach unten zeigenden schwaren Pfeil
  • klicke auf den Pfeil
  • du bekommst eine Liste der Tabellenfelder
  • wähle nun das Passende aus
  • in Zukunft werden die Felddaten im Tabellenfeld gespeichert

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

ICh bekomm es nicht hin, sorry bin wahrscheinlich zu blöd.
In dem Feld Steuerelementinhalt steht die Berechnungsformel die aus dem Brutto den Nettowert errechnet.
In einem anderen Forum hab ich mal gelesen, dass Access bewusst berechnete Werte nicht in die Tabellen schreibt und es wurde durch ein VBA Quellcode dazu gezwungen, den ich aber nicht verstanden hab.
Kann ich zusätzlich zur Berechnungsformel noch des entsprechende Tabellenfeld im Steuerelementinhalt definieren? Habs mal mit nem Symikolon nach der Formel und dann = [Tabellenfeld] probiert, geht aber nicht weils ichs sicher nicht richtig gemacht hab.

Hallo Björn,

ICh bekomm es nicht hin, sorry bin wahrscheinlich zu blöd.

nein, einfach zu unerfahrten :smile:
Vor diesen Problemen haben wir alle mal gestanden, da gab es leider noch kein wer-weiss-was :frowning:

In dem Feld Steuerelementinhalt steht die Berechnungsformel
die aus dem Brutto den Nettowert errechnet.

und genau das ist der „Fehler“. In dieser Zeile darf NUR der Feldname stehen, wenn du die Daten in einer Tabelle speichern willst.

In einem anderen Forum hab ich mal gelesen, dass Access
bewusst berechnete Werte nicht in die Tabellen schreibt und es
wurde durch ein VBA Quellcode dazu gezwungen, den ich aber
nicht verstanden hab.

ok, werden wir gleich noch mal probieren …

Kann ich zusätzlich zur Berechnungsformel noch des
entsprechende Tabellenfeld im Steuerelementinhalt definieren?

nein

Habs mal mit nem Symikolon nach der Formel und dann =
[Tabellenfeld] probiert, geht aber nicht weils ichs sicher
nicht richtig gemacht hab.

genau :frowning:

Also hier eine Anleitung für die richtige Vorgehensweise:

  • Formular öffnen
  • NettoFeld rechtsklicken
  • Eigenschaften
  • Reiter [ALLES]
  • Steuerelementinhalt = Feldname der Tabelle eintragen/auswählen
  • Eigenschaftsfenster schließen
  • BruttoFeld rechtsklicken
  • Eigenschaften
  • Reiter [Ereignisse]
  • Ereignis wählen: Bei Fokusverlußt
  • in der Zeile muß stehen: [Ereignisprozedur]
  • am Ende der Zeile gibt es drei Punkte […]
  • auf diese Taste klicken
  • du bist nun im VBA - Editor
  • trage dort ein:

me.nettofeld = (me.bruttofeld/119)*100

INFO: ME. ist das Kürzel für dein Formular, auf dem sich dein Feld befindet.

  • schließe den VBA-Editor
  • sicher dein Formular (da der Code nun im Formular gespeichert ist!!)
  • Starte dein Formular normal
  • gebe einen Betrag in dein Bruttofeld ein und drücke Enter oder Tab
  • fertig

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)