Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Access - Frage zu Rechnung und Teilnehmerliste

Begonnen von BranBern, Oktober 20, 2014, 09:12:53

⏪ vorheriges - nächstes ⏩

BranBern

Hallo und guten Morgen,

habe euch eine TestDB angehängt (hoffe ihr könnt die lesen)

Habe in der DB zwei Probleme...
zum Einen möchte ich die Rechnung soweit bringen, dass Preisänderungen in der Tabelle "Leistungen" sich nur auf künftige Datensätze der Tabelle "RZeile" auswirken - bestehende Datensätze=Rechnungen sollen nicht geändert werden - was soviel heißt wie: "alte" Rechnungen sollen bleiben wie sie sind, die aktualisierten Preise unter "Leistungen" gelten nur für neue Rechnungen

Problem 2:
Ich schaff es einfach nicht Ein Formular mit Unterformular für die Tabelle Events zu erstellen...
  Das Unterformular soll sich ausschließlich um die Teilehmenden Personen kümmern - sprich: ich habe pro Datensatz "Events" ein Unterformular, wo ich entsprechende Teilnehmer aus der Tabelle "Stammdaten" auswählen kann - quasi eine Teilnehmerliste wo aus den Stammdaten "Institution, Vorname und Nachname" sowie neue Felder "Bezahlt Ja/Nein, Teilgenommen Ja/Nein und Rechnungsempfänger (frei definierbarer Text) enthalten sein soll....

Hier hat bestimmt Jemand die passende Lösung für mich ;) ;)

lg aus Linz,

MaggieMay

Hallo,

zunächst einmal solltest du Beziehungen (mit ref. Integrität) zwischen den Tabellen einrichten. Dann wirst du im einfachsten Fall den Preis zusammen mit der Buchung speichern müssen, wenn du in der Leistungstabelle keine Preishistorie pflegen willst. Und für die Zuordnung der Teilnehmer zu den Events fehlt eine entsprechende Tabelle, das kann also noch gar nicht klappen.
Freundliche Grüße
MaggieMay

BranBern

hab gerade gesehen, dass er mir die Beziehungen nicht mitübernommen hat....

die sind in der original DB natürlich schon gemacht worden - nur ändert er mir nach wie vor jede Rechnung im nachhinein, wenn in der Leistungstabelle der Preis geändert wurde.....

btw. wie würde das ganze mit Historischen Daten aussehen (auch wenn nicht erforderlich)

BranBern


MaggieMay

Zitat von: BranBern am Oktober 20, 2014, 12:29:07nur ändert er mir nach wie vor jede Rechnung im nachhinein, wenn in der Leistungstabelle der Preis geändert wurde
Das hat ja auch nichts mit den Beziehungen zu tun, du musst halt den Preis zum Zeitpunkt der Rechnungstellung mit in die Rechnungspostentabelle übernehmen.
Zitatbtw. wie würde das ganze mit Historischen Daten aussehen (auch wenn nicht erforderlich)
Wenn du das so angehen willst, dann musst du zu jedem Preis den Gültigkeitszeitraum hinzufügen und diesen bei der Preisermittlung berücksichtigen.

BTW:
Beziehungen sollten grundsätzlich mit Ref. Integrität festgelegt werden.
Ist das nicht möglich, handelt es sich um einen Fehler, der beseitigt werden muss.

Und die Beziehung Event - Kunde ist mangels Zwischen- bzw. Buchungstabelle immer noch nicht herstellbar.
Freundliche Grüße
MaggieMay

BranBern

Da versteh ich dann jetz was Grundlegendes nicht ganz....
der Preis wird ja zum Zeitpunkt der Erstellung automatisch pro Posten mit eingetragen, wenn die entsprechende Leistung ausgewählt wurde....

MaggieMay

Zitatder Preis wird ja zum Zeitpunkt der Erstellung automatisch pro Posten mit eingetragen
Wo wird denn der Preis automatisch mit eingetragen?!

Er wird per Abfrage aus der Tabelle Leistung geholt und im Formular angezeigt, gespeichert (mit dem Rechnungsposten) wird er jedoch nicht.
Freundliche Grüße
MaggieMay

BranBern

Dann erklär mir, wie ich das speichere, damit es unverändert bleibt.....

Die Teilnehmerliste hab ich nun - funkt schon ;)

MaggieMay

Der Preis gehört in die Tabelle "RZeile", das sollte doch wohl inzwischen klar sein.
Freundliche Grüße
MaggieMay

BranBern

Also nicht automatisch nach Auswahl der Leistung mit eintragen lassen, sondern den Preis manuell in der Rechnungszeile eintragen..

MaggieMay

ZitatAlso nicht automatisch nach Auswahl der Leistung mit eintragen lassen

Ich hab's dir doch bereits erklärt, mit dem Formular wird nichts eingetragen, sondern lediglich angezeigt. Das Preisfeld im Formular muss an ein Datenfeld in der Tabelle "RZeile" gebunden werden. Den Inhalt kannst du nach Auswahl der Leistung aus einer weiteren Spalte des Dropdown-Feldes holen, bspw. so:
Private Sub kombifeld_AfterUpdate()
    Me.Preisfeld = Me.Kombifeld.Column(2)
End Sub


Dazu muss das Kombifeld in der dritten Spalte den Preis enthalten.
Freundliche Grüße
MaggieMay

BranBern


MaggieMay

Dann stell doch bitte konkrete Fragen und hak nach bei dem was du nicht verstehst.
Ich weiß ehrlich nicht, wie ich das noch besser erklären könnte.
Freundliche Grüße
MaggieMay

BranBern

ganz ehrlich: ne Schritt für Schritt Anleitung - weil ich aktuell nicht weiß, wo ich wie was zu machen hab..... die Rechnung wie sie jetzt im Beispiel existiert ist das Produkt aus kleinen Spielereien von früher und diversen Tutorials im Internet....

MaggieMay

1. Spalte "Preis" zur Tabelle "Rechnungsposten" (bzw RZeile) hinzufügen

2. Spalte "Preis" aus "RZeile" in Abfrage "Abfrage-RZeile" einfügen (ersetzt bisherige Spalte "Preis" aus Tabelle "Leistung")
-> der Abfragecode muss wie folgt geändert werden:SELECT RZeile.RechnungsZ, RZeile.RechnungNr, RZeile.LeistungNr, RZeile.Einheiten, Leistung.Leistung, [color=blue]RZeile.Preis[/color],
[Einheiten]*[color=blue]RZeile.Preis[/color] AS Gesamt, [Gesamt]*0.1 AS USt
FROM Leistung INNER JOIN RZeile ON Leistung.LeistungNr = RZeile.LeistungNr;


3. Datensatzherkunft des Kombifelds zur Leistungsauswahl um die Spalte "Preis" erweitern
-> Spaltenanzahl auf 3 erhöhen
-> Listenbreite anpassen

4. Kombifeld-Ereignis "Nach Aktualisierung" auf "Ereignisprozedur" einstellen und über die 3 Punkte in den VBA-Editor wechseln

5. Code eingeben:
Me.Preis = Me.Kombinationsfeld16.Column(2)

Hoffe, das hilft dir weiter.
Freundliche Grüße
MaggieMay