Daten visuell erfassen in 1:n- und 1:1- Beziehungen

Erzeugen der Buchung

Beim Erzeugen der Buchung müssen Sie den Auftragstyp berücksichtigen. Da Lieferscheine üblicherweise nicht bezahlt werden, sondern nur die daraus erzeugten Rechnungen und eventuell Gutschriften, dürfen Sie den neuen Datensatz nur dann erzeugen, wenn es sich um eine Rechnung oder Gutschrift handelt. Bei einer Gutschrift sind die zu buchenden Werte dann negativ (Zahlungsausgang), bei Rechnungen sind sie positiv. Vorher löschen Sie jeweils die vorhandenen Datensätze mit einer DELETE-Anweisung. Nur so ist es möglich, dass eine fehlerhafte Buchung rückgängig gemacht werden kann, indem sie durch eine neue ersetzt wird.

Entsprechend dem Auftragstyp formulieren Sie eine INSERT-Anweisung und führen diese aus. Damit die Beträge als Zahlen mit Dezimalpunkt und ohne Währungseinheit übergeben werden, müssen Sie sie jedoch entsprechend formatieren. Dafür sorgt hier der Aufruf der Funktion getWert (Listing 2).

Function getWert(curWert As Currency) As String
getWert = Replace(VBA.FormatNumber(curWert, 2, vbFalse, vbFalse, vbFalse), _
",", ".")
End Function

Mit diesen beiden Prozeduren ist das erste Problem erledigt. Wollen Sie dem Benutzer jedoch über ein weiteres Formular die Möglichkeit geben, auch Teilbeträge als Zahlungen zu erfassen, entsteht daraus ein neues Problem.

Ausblenden der Felder

Sie brauchen diese Felder natürlich nicht sichtbar anzeigen lassen, sondern können sie auch ausblenden. Wichtig ist nur, dass es die Felder mit den entsprechenden Werten gibt, da Sie dann im Code auf deren Werte zugreifen können. Allerdings ist sicherlich der noch zu zahlende Betrag für den Benutzer interessant. Die sichtbaren berechneten Textfelder sollten Sie allerdings gegen Eingaben schützen, indem Sie deren Eigenschaft gesperrt auf Ja setzen.

Werte anpassen

Die hier verwendeten Formeln setzen voraus, dass die Auftragstypen und die Werte für die Tabelle tabStatus wie in Tabelle 1 und Tabelle 2 definiert sind: Falls Sie andere Werte und Texte hinterlegt haben, müssen Sie die Formeln und auch den Code in Listing 1-6 anpassen.

Tabelle 1: Inhalt der Tabelle tabAuftragstypen.

Auftragstyp

ID

Rechnung

1

Gutschrift

2

Lieferschein

3

Tabelle 2: Inhalt der Tabelle tabStatus.

Status

ID

Bezahlt

1

Geliefert

2

Offen

3

Abgeschlossen

4