Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: simon1987 am März 07, 2013, 16:33:04

Titel: Textfeld-Wert soll den Wert in einer Tabelle überschreiben + Prüfkriterium
Beitrag von: simon1987 am März 07, 2013, 16:33:04
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
Titel: Re: Textfeld-Wert soll den Wert in einer Tabelle überschreiben + Prüfkriterium
Beitrag von: DF6GL am März 07, 2013, 16:38:22
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 & "'"


Titel: Re: Textfeld-Wert soll den Wert in einer Tabelle überschreiben + Prüfkriterium
Beitrag von: simon1987 am März 07, 2013, 16:45:44
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
Titel: Re: Textfeld-Wert soll den Wert in einer Tabelle überschreiben + Prüfkriterium
Beitrag von: simon1987 am März 07, 2013, 16:47:28
ups ein bissl verrutscht...
Titel: Re: Textfeld-Wert soll den Wert in einer Tabelle überschreiben + Prüfkriterium
Beitrag von: MzKlMu am März 07, 2013, 17:35:27
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.
Titel: Re: Textfeld-Wert soll den Wert in einer Tabelle überschreiben + Prüfkriterium
Beitrag von: simon1987 am März 07, 2013, 18:00:34
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]
Titel: Re: Textfeld-Wert soll den Wert in einer Tabelle überschreiben + Prüfkriterium
Beitrag von: MzKlMu am März 07, 2013, 18:25:18
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.
Titel: Re: Textfeld-Wert soll den Wert in einer Tabelle überschreiben + Prüfkriterium
Beitrag von: simon1987 am März 07, 2013, 18:40:57
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]
Titel: Re: Textfeld-Wert soll den Wert in einer Tabelle überschreiben + Prüfkriterium
Beitrag von: MzKlMu am März 07, 2013, 19:17:50
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.
Titel: Re: Textfeld-Wert soll den Wert in einer Tabelle überschreiben + Prüfkriterium
Beitrag von: simon1987 am März 07, 2013, 20:16:29
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 ;)
Titel: Re: Textfeld-Wert soll den Wert in einer Tabelle überschreiben + Prüfkriterium
Beitrag von: MzKlMu am März 07, 2013, 20:23:58
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.
Titel: Re: Textfeld-Wert soll den Wert in einer Tabelle überschreiben + Prüfkriterium
Beitrag von: simon1987 am März 07, 2013, 20:42:39
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]
Titel: Re: Textfeld-Wert soll den Wert in einer Tabelle überschreiben + Prüfkriterium
Beitrag von: MzKlMu am März 07, 2013, 21:39:45
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]
Titel: Re: Textfeld-Wert soll den Wert in einer Tabelle überschreiben + Prüfkriterium
Beitrag von: simon1987 am März 07, 2013, 22:20:43
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