PDA

Vollständige Version anzeigen : Feldwert im Formular einmalig ändern ohne Datensatz zu ändern!


Manu Maus
18.01.2003, 22:39
Hallo liebe Access-Profis,

für folgendes Problem benötige ich eine Lösung und raufe mir die Haare!!

Ich habe eine DB Kasse entworfen.
Die zu kassierenden Artikel werden über eine Abfrage aus der DB Artikel genommen. Funktioniert alles Prima!!

"Art.Nr", "Menge", "Bezeichnung", "Preis"
Endlosformular........

Aber jetzt kommt es:
Es kann einmal vorkommen, daß ich der Bezeichnung etwas hinzufügen muß z.B. "Sonderpreis, da beschädigt". Wenn ich den Artikel das nächste Mal aufrufe, wurde dadurch jedoch die Artikelbezeichnung geändert und dieser Vermerk erscheint wieder. Das soll natürlich beim nächsten Aufrufen des Artikels nicht mehr erscheinen.

Genau auf diese Weise müßte ich auch mal den Preis Pauschal ändern können und das muß natürlich auch in der Gesamtsumme beim berechnen der gekauften Positionen berücksichtigt sein.

Was kann ich tun? Wer kann helfen?

Herzlichen Dank für Eure Nachricht

Gruß
Manuela

Laui
19.01.2003, 08:21
Hallo Manu,

Du hast sicherlich eine Tabelle in der die verkauften Artikel gespeichert werden. IMO muß diese Tabelle (ich nenne sie mal tbl_Kasse) folgende Spalten haben:

"Art.Nr", "Menge", "Preis", "Bemenrkung"

Die Bezeichnung kannst Du Dir über den Artikelstamm holen.
Der Preis sollte auch aus dem Stamm kommen, aber trotzdem gespeichert werden.
1. kannst Du dann den Preis einmalig ändern (In das Bemerkungsfeld kannst Du dann den Grund für die Preisänderung schreiben) und
2. bleibt ein alter Kassenzettel gültig, wenn Du den Preis im Artikenstamm änderst (Preiserhöhung).

Manu Maus
19.01.2003, 09:18
Hallo Laui!!

So lange bin ich mit Access noch nicht dabei und deshalb wird meine Frage jetzt für einen Profi lächerlich erscheinen - ich hoffe, daß ich mich nicht blamiere.

DB "Artikel" beinhaltet "Art.Nr.", "Bezeichnung", "Preis"

DB Kasse beinhaltet
"id", "Beleg-Nummer", "Artikel.ArtNr.", "Artikel.Bezeichnung", "Endbezeichnung", "Artikel.Preis", "Endpreis"

Jetzt hatte ich in der Abfrage eingegeben
Endbezeichnung:[Artikel.Bezeichnung], Endpreis:[Artikel.Preis]

Diese Übergabe funktioniert, aber wenn ich in "Endbezeichnung" oder "Endpreis" die Eingabe verändere z.B. Sonderpreis dazuschreibe, funktioniert es für diesen einen Kassiervorgang.
Wenn ich diese Artikel Nummer aber das nächste mal aufrufe, ist die Beschreibung in "Artikel.Bezeichnung" auch auf "Sonderpreis" geändert.

Wie übergebe ich die Daten an dieses Feld so, daß ich Sie im Endfeld überschreiben kann?
Bläht sich die Datenbank da nicht riesengroß auf?

Besten Dank für Deine Nachricht

Manuela :angel:

P.S. Access 2000 - vergesse ich immer wieder!

Laui
19.01.2003, 10:10
Hi,

probier mal folgendes:

Dein Formular Kasse basiert auf der Tabelle Kasse (ohne Abfrage)

"Artikel.ArtNr." wird ein Kombinationsfeld mit folgender Quelle:

SELECT [Artikel].[Artikel.Nr], [Artikel].Bezeichnung, [Artikel].Preis FROM [Artikel];

Im Format des Kombifeldes stellst Du 3 Spalten ein
Spaltenbreiten: 2cm;0cm;0cm

Auf das Ereignis "Nach Aktualisierung" kommt folgender Code:

Private Sub ArtikelNr_AfterUpdate()
Me!Endpreis = Me![Artikel.Nr].Column(2)
Me!Endbezeichnung = Me![Artikel.Nr].Column(1)
End Sub

Die nun kannst Du die Daten ändern, ohne die Stammdaten zu überschrteiben.

PS: IMO können die Felder "Artikel.Bezeichnung" und "Artikel.Preis" aus der Tabelle Kasse rausfliegen. Diese Informationen kannst Du Dir ja über die Artikelnummer jederzeit wieder holen.

Nouba
19.01.2003, 12:59
Hallo Manuela,

ich habe mal ein kleines Beispiel aus den Angaben gebastelt.

Manu Maus
20.01.2003, 20:50
Hallo Ihr zwei!!

Viiielen, viiielen Dank für Eure beiden Lösungsvorschläge und die riesen Mühe, die Ihr Euch gemacht habt.

Ich habe beides kurz angetestet (bitte nicht böse sein, ich liege gerade mit Magen&Darm und meine zwei Kid´s hat auch erwischt ).

Werde Nachricht geben, wie ich mein Problem am besten lösen konnte!!

Vielen Dank nochmal und lieben Gruß

Manuela :angel: