Neuigkeiten:

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

Mobiles Hauptmenü

Rechnungsdatenbank mit verschiedenen Preisen für Kunden

Begonnen von trkiller, Juli 24, 2014, 02:08:39

⏪ vorheriges - nächstes ⏩

trkiller

Hallo,
ich bräuchte mal eure Hilfe.
Ich habe schon eine Rechnungsdatenbank erstellt und will es für jemand anderen nun ändern da er andere Ansprüche hat. Vom Aufbau sind die beiden ja sehr ähnlich, deswegen habe ich fast alles übernommen.
Bei dem ersten gab es keine Artikeldatenbank und genau das macht mir gerade ein bisschen sorgen. Es gibt ca.200 Kunden und etwa 20 Artikel die verkauft werden. Jedoch muss jeder Kunde einen anderen Preis haben und das sollte nicht jedesmal mit Hand in der Rechnungserstellung eingetragen werden.
Die Daten sollen für den jeweiligen Kunden automatisch aus der Tabelle entnommen werden.

Kunde A hat für Produkt P den Preis 2€
Kunde B hat für Produkt P den Preis 3€

Wie kann ich das realisieren?

Sollte ich eine 1:n Beziehung herstellen mit zwei Tabellen, Artikel und Preise? In der Preis Tabelle steht dann natürlich der Preis und die Kundennummer des Kunden.

Wäre dankbar wenn mir geholfen werden könnte

MzKlMu

Hallo,
Du benötigst 3 Tabellen, Kunden, Artikel und Preise. Mit zwei 1:n Beziehungen.
ZitatIn der Preis Tabelle steht dann natürlich der Preis und die Kundennummer des Kunden.
und die Artikelnummer muss da rein.

Beachte bitte, dass die Kundennummer und Artikelnummer nur als Primärschlüssel taugen, wenn diese Zahlen sind. Bei Text wäre ein zusätzliches Autowertfeld vorteilhafter.
In die Preistabelle kommen dann Zahlen (Longinteger) als Fremdschlüssel.


Gruß Klaus

trkiller

Erstmal ein dankeschön für die Antwort, habe ich soweit getestet und klappt.
Eine Frage hätte ich aber noch.
Wie kann ich Datensätze aus einer Tabelle die ich habe per VBA in eine andere Tabelle übertragen. Grundgedanke hierfür ist folgendes:
Ich habe mehrere Formulare, als Beispiel Rechnungserstellung und Lieferscheinerstellung oder Angebot.
Wenn ich ein Lieferschein erstellt habe, würde ich gerne mit einer Schaltfläche die Angaben die im Lieferschein angegeben wurden in die jeweiligen Tabellen für die Rechnungserstellung übertragen.
Ist das einfach zu realisieren oder muss ich die Werte in einer Schleife solange laufen lassen bis die einzelnen Datensätze übertragen wurden

MzKlMu

Hallo,
das Vorhaben ist vollständig überflüssig. In die Rechnungstabelle kommt nur der Primärschlüssel des Lieferscheins als Fremdschlüssel. Weitere Felder sind nicht notwendig, da man mit einer Abfrage und der Verknüpfung über die Schlüsselfelder auch die Daten des Lieferscheins für die Rechnung zur Verfügung hat. Das gleiche gilt sinngemäß auch für die Lieferscheine die sich auf ein Angebot beziehen können.
Es werden in abhängigen Tabellen immer nur die Schlüsselfelder gespeichert.
Gruß Klaus

trkiller

Also Ich kann dir gerade nicht ganz folgen Sorry

Das ist das aktuelle was ich habe. Hier sind Angebote und Rechnungen getrennt.


MzKlMu

#5
Hallo,
und wo ist jetzt die Tabelle für den Lieferschein?

Die Rechnung muss ja auf den Daten des Lieferschein beruhen.
Stimmt das Angebot mit Lieferschein/Rechnung überein?
Gruß Klaus

trkiller

Ne das ist die aktuelle Rechnungsdatenbank mit der ich arbeite.
Angebot wird komplett aus der Datenbank rausfliegen und mit Lieferschein ersetzt.

In der Regel wird aus einem Lieferschein ja eine Rechnung. Ich könnte doch in die tb_RKopf weitere Felder einfügen, Rechnungsdatum, Lieferdatum und 2 mal checkbox mit Rechnung oder Lieferschein und zusätzlich noch ein Feld Lieferscheinnummer das gleichzusetzen ist mit Rechnungsnummer.

Weis nicht ob die Idee gut ist

MzKlMu

Hallo,
ändere erste mal die DB und dann lädst Du das neue Bild noch mal hoch.
Etwas kleiner bitte (Tabbellen weiter zusammenschieben).
Gruß Klaus

trkiller

Ich bin gerade dabei das ganze neu zu planen.
Ich muss gleich zur Arbeit, ich versuche es bis heute Abend zu posten.

Danke für die Hilfe

trkiller

Hier mal die neuen Beziehungen
Hoffe habe keinen Denkfehler gemacht

DF6GL

#10
Hallo,

das stimmt noch nicht so ganz, wenn man die Aufgabe im Betreff zu Grunde legt:

Beziehung(slinie)  GAArtikel-ArtikelNr entfernen.

--tb_Preis umbenennen in tb_Kundenpreise
--(Fremdschlüssel-) Feld KP_KDNr hinzufügen
--Sinnvoll wäre weiteres Feld "KP_gültig_Ab"
--tb_AuftragsZeile.ArtikelNr umbenennen in AtZ_KP_ID
--Beziehung (1:n) herstellen zwischen
       -tb_KundenPreise.KP_KdNr und tb_Kunde.KdNr
      -tb_KundenPreise.KP_ID und tb_tb_AuftragsZeile.AZ_KPr_ID


-- Grundsätzlich Benamsung verbessern (z. B. ID in tb_Kundenpreise in KP_ID umbenennen, dh. Tabellennamen-Prefix vor jedes Feld stellen.)Leer- und Sonderzeichen GRUNDSÄTZLICH vermeiden.





Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

trkiller

Ok danke, werde ich berücksichtigen und aktualisieren,
Werde mal versuchen alles so aufzubauen.
Eine Alternative ist natürlich auch, das ich ein ungebundenes Feld in meine Abfrage einfüge und bei der Auswahl die entsprechenden Werte mit VBA eintrage

MzKlMu

Hallo,
in eine Abfrage kann man kein ungebundenes Feld einfügen, das geht nur in einem Formular.
Und welchen Sinn soll hier ein ungebundenes Formularfeld machen?
Du hast hier wohl noch einiges nicht ganz verstanden, bis jetzt geht es ja erst mal ums Datenmodell und da ist gebunden/ungebunden irrelevant.

Überhaupt, sollte man mit ungebundenen Feldern erst gar nicht anfangen. Ungebundene Formularfelder erschweren nur die Entwicklung, sonst nichts. Das braucht man für die reine Datenerfassung nicht.
Gruß Klaus