Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Textfeld-Wert soll den Wert in einer Tabelle überschreiben + Prüfkriterium

Begonnen von simon1987, März 07, 2013, 16:33:04

⏪ vorheriges - nächstes ⏩

simon1987

Hallo liebe Access Freunde,

ich brauche mal wieder eure Hilfe.
Und zwar suche/bräuchte ich einen VBA Code für folgendes Problem:

Ich habe ein Formular mit mehreren Text und Kombifeldern..


WeinID (Kombifeld)        ...............     Bestand, neu (Textfeld)

ABC                                                                       6

jetzt soll der Wert aus Bestand in einer Tabelle XY in der Zeile wo ABC steht den dort vorhandenen Wert überschreiben...

Ich hoffe ihr könnt mir helfen!! :)

VIELEN VIELEN DANK!!

Grüße
Simon

DF6GL

Hallo,

bist Du sicher, dass Du Dir mit solchen Methoden nicht irgendwann selber ins Bein schießt?



SQL-"Code" und nur prinzipiell(!):


Update tblXY  set Bestand = " & Me!BestandNeu & " where WeinID = '"  & Me!WeinID & "'"



simon1987

Also ich bin gerade auch schon ins Schwitzen geraten... hab so einiges nicht Bedacht.

Folgendes
ich habe ein Formular mit

WeinID       Liefermenge      Bestand, alt             Bestand, neu
ABC                                3                                   4                             =Liefermenge+Bestand,alt     ALSO 7

jetzt will ich, dass der neue Bestand in die Tabelle, wo der Wein steht übernommen wird
aber das Formular gibt mir danach dann ja aus Bestand, alt = 7 und Bestand, neu = 10
hmm...
bin ein wenig ratlos


MzKlMu

Hallo,
das Vorhaben ist in der Form schon mal falsch angefangen. In einer Datenbank werden im Regelfall keine Bestände gespeichert. Der Bestand wird errechnet aus den Zugängen und den Abgängen.
Zugang positiv und Abgang negativ. Die Summe der Menge gruppiert über die WeinID ergibt den Bestand, automatisch und stets aktuell.
Auch ein Textfeld (ABC) als WeinId ist eher problematisch. Der Primärschlüssel sollte eine Zahl sein.
Gruß Klaus

simon1987

Hey MzKlMu,

erstmal danke für deine Antwort!!!
Die WeinID ist auch eine Zahl, nur über ein Kombifeld als Text dargestellt.

Ich habe mal als *.jpg mein ER-Modell angehängt... über einen Verbesserungsvorschläge wäre ich echt sau dankbar ;)

[Anhang gelöscht durch Administrator]

MzKlMu

Hallo,
ZitatDie WeinID ist auch eine Zahl, nur über ein Kombifeld als Text dargestellt.
Ist das Kombifeld direkt in der Tabelle?
Wenn ja, lösche das wieder und verwende ein einfaches Textfeld, damit man in der Tabelle die Zahl sieht.
Kombisfelder sind in der Tabelle von Übel und verhindern den sauberen Aufbau einer DB. Kombis nur in Formularen verwenden.as Bild nicht vollständig, man sieht nur den Einkauf, verkaufst Du auch Wein der dann beim Bestand berücksichtigt werden muss?

Und noch ein Tip, im Beziehungsfenster stellt man grundsätzlich den Beziehungstyp 1 ein.
Anere Typen werden nur in Abfragen definiert.
Gruß Klaus

simon1987

OK, also Weine erfassen mit Formular und Abfrage klappt.

Jetzt soll ich Wareneingänge mit Bestandserhöhung, Warenausgänge mit Bestandsminderung realisieren...

Hab die Tabellen und den Weineingang nochmal angepasst.

In der Tabelle Eingangsrechnung soll quasi der Kopf der Rechnung rein.
(also Lieferant, Datum, Eingangsrechnungsnr...)

in der Tabelle EingangBestellung sollen jetzt die Positionen der Rechnung rein.
mit Position, Wein, Menge, Einzelpreis
wobei die Menge dann meinen Bestand aus der Tabelle Wein erhöhen soll...

Habe ich dieses Modell, kann ich ja "quasi" das "Spiegelbild" für den Warenausgang nutzen, oder?

[Anhang gelöscht durch Administrator]

MzKlMu

Hallo,
wenn Du Zugänge und Abgänge erfassen willst, sind die Tabellen anders anzulegen.
Du benötigst noch eine Tabelle analog zu "Eingangsrechnungen" z.B. "Ausgangsrechnungen".
Mit einem Bezug zum Kunden. Ich würde auch keine getrennte Tabellen machen für Lieferant und Kunde, sondern alle in eine Tabelle, mit einem Kennzeichen, ob Kunde, Lieferant oder beides.
Die Tabelle "EingangBestellung" wird umbenannt in "EingangAusgang" und um ein Fremdschlüsselfeld für die Ausgangsrechnung erweitert.
Das heist, in dieser Tabelle werden sowohl Zugang als auch Abgang in einem Mengenfeld erfasst. Bei einem Zugang bleibt das Fremdschlüsselfeld zur Tabelle "Ausgangsrechnungen" leer und umgekehrt.
Jetzt kannst Du in einer Abfrage ein berechnetes Feld anlegen, das im Falle eines Abgangs die Menge mit -1 multipliziert.
Das heist, die Menge hat jetzt das entsprechende Vorzeichen.
Jetzt die Abfrage über die WeinID gruppiert und das berechnete Feld summiert und schon hast Du den Bestand. Das Tabellenfeld "Bestand" entfällt ersatzlos.

Wenn Du nicht klar kommst, lade die DB hoch, damit man eine Vorlage hat.
Gruß Klaus

simon1987

Ich habe dir die Datenbank per PN zugeschickt.

Ich habe jetzt eine Bestandsveränderung Tabelle angelegt... Kunden und Lieferanten zusammengeführt...
die Bestandsveränderung Tabelle schon mit einem Vorzeichen 1 und -1 versehen
Abfrage klappt auch...

Jetzt muss ich nur ein Formular für Wareneingang und Ausgang zaubern...

Schau es dir bitte mal an, bin für jeden Tipp sehr dankbar !!!
Super cool von dir ;)

MzKlMu

Hallo,
bitte die DB hier hochladen.
ZitatIch habe jetzt eine Bestandsveränderung Tabelle angelegt...
wie sieht die aus? Von einer Bestandsveränderung Tabelle habe ich auch nicht gesprochen. Um das noch mal klar zu sagen: Es werden keine Bestände geführt.
Zitatdie Bestandsveränderung Tabelle schon mit einem Vorzeichen 1 und -1 versehen
und was heist das, die Tabelle braucht doch kein Vorzeichen. Das Vorzeichen wird in einem berechneten Feld ermittelt, aber nicht in einer Tabelle.

Zeige wenigsten noch mal ein komplettes Beziehungsbild.
Gruß Klaus

simon1987

Hallo,
die Datenbank ist mittlerweile 5MB groß... :-/

Also die Bestandsveränderung ist die von dir bezeichnete "EingangAusgang" Tabelle.
Mit dem Vorzeichen innerhalb der "Bestandsveränderung-Tabelle" berechne ich dann mithilfe einer Abfrage den Gesamtbestand. Das klappt.

Mir fehlt nur der Übergang zu Wareneingang und Ausgang.. mit Angaben der Positionen innerhalb der Rechnung...

Sorry, dass ich mich so dumm anstelle :)

P.S. Datenbank ist selbst nach komprimieren 3 MB groß...

[Anhang gelöscht durch Administrator]

MzKlMu

Hallo,
das passt so noch nicht.
Siehe Bild.

ZitatDatenbank ist selbst nach komprimieren 3 MB groß...
Du musst die DB zum Hochladen auch noch zippen.

[Anhang gelöscht durch Administrator]
Gruß Klaus

simon1987

VIELEN VIELEN DANK für deine HILFE !!! :)

Ich hab's hinbekommen... und es funktioniert alles.

Würde dich ja gerne auf ein Weizenbier einladen, aber muss wohl bei einem dicken Danke bleiben.

Einen erholsamen Abend!  ;D

Grüße
Simon