Ich habe zwei Tabellen (Tabelle A) und (Tabelle B). In beiden kommen Personenbezogene Daten vor.
Tabelle_A
-ID_A (AutoWert, 1,2,3,...)
- Anrede
- Name
-Anschrift, usw.
Tabelle_B
-ID_B (AutoWert, 1,2,3,...)
- Anrede
- Name
- Anschrift
- Anrede1 (zweite Person)
- Name1 (zweite Person)
- Name1 (zweite Person)
In der Regel schreibt Tabelle A eine Rechnung an Tabelle B Rechnungen. Doch ist es auch möglich, dass Tabelle A eine Rechnung auch an Tabelle A schreibt, unter Umständen sogar an sich selbst.
Hat jemand einen Lösungsvorschlag, -ansatz für diese Situation? Ich möchte dann den RE_Empfänger mit der jeweiligen Tabelle im Formular/Bericht verknüpfen, dass ich weitere Felder im Bericht hinzufügen kann.
Vielen Dank für eure Hilfe!
Hallo,
beide Tabellen gehören zusammen in eine Tabelle. Eventuelle sind für weitere Personen eine extra Tabelle erforderlich mit einem Bezug zur dann einer Ausgangstabelle.
Mit einer weiteren Tabelle (einer Zuordnungstabelle) kannst Du dann aus der einen Tabelle beliebige Zuordnungen von Rechnungsteller zu Rechnungsempfänger machen.
Auch auf sich selbst.
Dein bisherigen Datenmodell würde ja bei einer Rechnungsstellung an sich selbst, auch in der TabelleB die gleichen Daten erfordern, was falsch wäre.
Gibt es auch Anrede2, Name2 ?
2x Name1 (so wie Du es hast) kann es aber nicht geben.
Wow... das ging ja prompt! Danke!
Ja genau – ich brauche so etwas wie eine ,,Ausgangstabelle". Aber wie kann ich diese erstellen. Kämpfe mich schon seit Tagen mit dem herum...
Name1 kommt natürlich nicht 2x vor, sorry!
Zu besseren Verständlichkeit:
Tabelle A: selbständiger Arbeiter
- ID
- Anrede
- Name
- Anschrift
- Kto-Daten etc.
Wenn Arbeiter1 eine Arbeit angefangen und bereits in Rechnung gestellt wurde und der Arbeiter2 diese Arbeit fertig macht – stellt der Arbeiter 2 dem Arbeiter 1 eine Rechung.
Tabelle B: Auftraggeber und max. 2 Leistungsempfänger
- ID
- AnredeAG
- NameAG
- AnschriftAG
- Anrede1
- Name1 (...1 ist immer RE Empfänger)
- Anschrift1
- Anrede2
- Name2
- Anschrift2
Den Vorschlag mit einer weiteren Tabelle, für evtl. weitere RE-Emfpänger, nehme ich gerne an, bin aber im Moment mit diesen zwei Tabellen überfordert.... Bin absoluter Laie in Sachen Programmierung.
Vielen DANK!
Hallo,
das Ganze hat mit Programmierung erst mal gar nichts zu tun. Das ist eine Frage der Tabellenstruktuer (des Datenmodells), dazu muss man nichts programmieren.
Du hast mich auch etwas missverstanden, alle Personen, egal ob Arbeiter oder Auftraggeber müssen in eine Tabelle, die etwa so aussehen sollte:
tblPersonen
- PersonID
- Anrede
- Nachname
- Vorname
- Anschrift
- Kto-Daten
- usw.
Für die Leistungsempfänger ist eine extra Tabelle erforderlich:
tblLeistEmf
- LeistEmpfID
- PersonID_F (als Fremdschlüssel)
- Anrede
- Nachname
- Vorname
- Anschrift
Für die Rechnungen dann:
tblRechnungen
- RechnungID
- RechnungVonID (Fremdschlüssel zur Personentabelle)
- RechnungAnID (Fremdschlüssel zur Personentabelle)
- LeistEmpfID_F (Fremdschlüssel zur LeistEmpftabelle, bleibt ggf auch leer)
- Rechnungsdatum
- Rechnungsnummer
- usw.
Hallo!
Danke vielmals für deine Mühen und Erklärungen!
Vielleicht stehe ich nur auch auf der Leitung oder ich sehe den Wald vor lauter Bäumen nicht!
OK! Auftraggeber und Leistungsempfänger sind ohnehin in einer Tabelle. Weil es zu jedem Auftraggeber min. 1 und max. 2 Leistungsempfänger geben kann. Rechnungsempfänger aus Tabelle B ist immer Leistungsempfänger 1.
Die Tabellen Tabelle A (Arbeiter) und Tabelle B (Auftraggeber und Leistungsempfänger) bestehen bereits mit jeweils ca. 50 Datensätzen.
Rechnungssteller ist immer Tabelle A (Arbeiter) und Rechnungsempfänger ist Tabelle A oder Tabelle B.
ODER
eben die noch nicht vorhandene Tabelle C (Alle Personen)
Doch wie erstelle ich die Tabelle C (Alle Personen). Wie bekomme ich die Daten in die Tabelle C? Muss ich dann jeden Datensatz neu anlegen oder können die Daten aus Tabelle A und Tabelle B übernommen werden.
Vielen Dank für deine Geduld!
Hallo,
mit einfachen Anfügeabfragen kannst Du die Daten von TabelleA und B in die neue TabelleC übertragen.
TabelleC vorher manuell anlegen.
TabelleA und B können anschließend (nach Prüfung) ersatzlos gelöscht werden.
Für Anfügeabfragen hat Access einen Assistenten an Bord.
ZitatAuftraggeber und Leistungsempfänger sind ohnehin in einer Tabelle.
Für die Leistungsempfänger ist aber zukünftig eine eigene Tabelle erforderlich. Hast Du das registriert?
OK Danke!
Vielleich denke auch ich im Moment Falsch – für mich ist es unlogisch sozusagen Arbeiter und Kunden in einer Tabelle zu führen. Man führt ja auch nicht Mitarbeiter und Kunden in einer Tabelle oder liege ich da falsch? Natürlich wenn das in einer Tabelle wäre, wärs auch mit den Rechnungen einfacher.
Wenn ich das so mache könnte ich ja auch noch den Leistungsempfänger in diese Tabelle mitnehmen und dem jeweiligem Auftraggeber zuordnen, oder?
Vielen Dank!
Hallo,
ZitatMan führt ja auch nicht Mitarbeiter und Kunden in einer Tabelle oder liege ich da falsch?
Der Vergleich hinkt, weil ein Mitarbeiter ja kein Kunde ist, wenn doch, wäre das wieder eine Tabelle.
Die Forderung für eine Tabelle ergibt sich ganz einfach aus Deiner Anforderung, dass es wechselseitig sein muss.
Mit 2 Tabellen müsstest Du für eine Person die Arbeiter ist und auch mal eine Rechnung stellen kann, dass diese Person 2x in verschieden Tabellen aufgenommen werden muss, war Dir das klar?
ZitatWenn ich das so mache könnte ich ja auch noch den Leistungsempfänger in diese Tabelle mitnehmen und dem jeweiligem Auftraggeber zuordnen, oder?
nein, auch das wäre falsch, denn es gibt ja mehr als ein Leistungsträger, was dann zu Feldnamen wie Name1, Name2 führt, was für eine Datenbank eigentlich ein NoGo ist.
Baue es wie vorgeschlagen auf, es ist dann in der Anwendung verblüffend einfach.
Hallo nochmal!
Nur noch eine letzte Frage. Wenn der Name1 etc. eigentlich ein NoGo ist und ich die Datenbank ohnehin auf den Kopf stelle, dann könnte ich es ja doch so machen dass ich auch die Leistungsempfänger einzeln anlege und ggfs. zwei Leistungsempfänger einem Auftraggeber zuordne. In der Tabelle sage ich dann was sich hinter dem jeweiligem Datensatz verbirgt. Ein Arbeiter, Auftraggeber oder Leistungsempfänger sehe ich da richtig oder bin ich total daneben?
Jedenfalls besten DANK! Für deine Mühen und Ratschläge! DANEK!
Hallo,
für die Leistungsträger solltest Du unbedingt eine extra Tabelle anlegen, da es nur einen Leistungsträger gibt, wenn es auch einen AG gibt.
Wenn die Leistungsträger auch in der Tabelle wären, müsstest Du ja für jeden Leistungsträger den AG doppelt eintragen und das kann es ja auch nicht sein.
Du kannst in der Personentabelle ein Feld erstellen zur Kennzeichnung ob Arbeiter (1) oder AG (2), dann kannst Du bei Bedarf filtern und hast nur eine Gruppe in der Anzeige.
Hallo und DANKE!
Ich bin sehr sehr Dankbar und hoffe nicht lästig zu sein!
Bitte korrigiere mich:
Wenn ich eine Tabelle A (alle Personen) machen würde:
- ID_Person
- Art (Arbeiter, Auftraggeber, Leistungsempfänger, und evtl. weitere)
- Name
- Anschrift
- Kontodaten
- etc.
und eine Tabelle (Auftrag)
- ID_ Auftrag
- Datum_Beginn
- Datum_Ende
- ID_Person (Fremdschlüssel) als Arbeiter
- ID_Person (Fremdschlüssel) als Auftraggeber
- ID_Person (Fremdschlüssel) als Leistungsempfänger1
- ID_Person (Fremdschlüssel) als Leistungsempfänger2
- ID_Person (Fremdschlüssel) als Rechnungsträger (evtl. hätte den Vorteil dass auch ein LE2 Rechnungsemfänger sein könnte...
Würde das nicht auch so funktionieren?
BESTEN DANK!
Hallo,
nein, das ist falsch. Das kann doch nicht gehen. Die ignorierst den Hinweis den ich schon mal gegeben habe.
Der leistungsempfänger gehört doch laut Deiner Beschriebung zum AG.
Wenn in der Personentabelle auch der Leistungsträger ist, musst Du doch jedes mal den AG wiederholen.
Angenommen, ein AG hat 2 Leistungsträger, dann müsstest Du den AG 2x anlegen, für jeden Leistungsträger 1x, das heist, der AG ist 2x in der Tabelle, bei 3 LET dann 3x, das kann doch nicht richtig sein.
Mit meinem Vorschlag, kannst Du einem AG beliebig viele LET zuordnen und bei Wahl eines AGs kannst Du dann
einen von dessen LET als anzeigen.
Wenn der Rechnungsempfänger immer ein Leistungsträger ist, wird als Fremdschlüssel für den Rechnungträger dessen Primärschlüssel (PS) als FS verwendet.
Übrigens, Du wiederspricht Du Dir auch mal selbst: ;D
Zitat1:
ZitatRechnungsempfänger aus Tabelle B ist immer Leistungsempfänger 1.
Du hast
immer geschrieben.
und Zitat2:
Zitathätte den Vorteil dass auch ein LE2 Rechnungsemfänger sein könnte...
Hallo....
Ja ich habe mich widersprochen... Sorry! ;D
Aber wenn man so herumkopft wie ich, kommt man immer wieder auf neue Ideen...
Was ich jetzt nicht verstehe – vielleicht bin ich auch zu blöd aber:
Wenn ich eine Tabelle mit Auftrag mache, habe ich ja zu jeder Auftrag_ ID einen AG und einen LE1 und evtl einen LE2. Warum muss ich dann den AG doppelt anlegen? ???
Meine Vorstellung:
Tabelle: Auftrag
- Auftrag_ID
- Person_ID(FS) als AG - immer
- Person_ID(FS) als LE1 - immer
- Person_ID(FS) als LE2 - ggfs. leer
- Person_ID(FS) als RE - immer
Nach meinem Laien-Verständnis habe ich dann einen Auftrag und zu jedem Auftrag eine AG, einen LE1 und einen RE. Bei Bedarf einen LE2 – sonst ist das Feld leer. Dann muss ich ja den AG nicht doppelt anlegen. Sorry...
Ich möchte deine Vorschläge nicht Ignorieren – ich versuche sie zu verstehen! Ich bin jedenfalls sehr sehr DANKBAR!!!!
DANKE!
Hallo,
ZitatDann muss ich ja den AG nicht doppelt anlegen. Sorry...
Doch, in der Personentabelle muss der AG doppelt sein, 1x für für LE1 und 1x für LE2 und 1x für LE3
So:
1 Meier Buxdehude Müller Berlin (LE1 zu AG Meier)
1 Meier Buxdehude Schmidt München (LE2 zu AG Meier)
1 Meier Buxdehude Braun Hamburg (LE 3 zu AG Meier)
Könnten meine Tabellen nicht so aussehen?
Personen
Person ID: Anrede Name Kto
0001 Herr Mayr 123456789
0002 Frau Mustermann 100100100
0003 Frau Müller 202020200
0004 ...
Aufträge
Auftrag ID: AG(PersonID) LE1(PersonID) LE2(PersonID) RE(PersonID)
0001 0001 0001 0002 0001
0002 0004 0005 0006 0005
0003 ...
DANEK!!!
Hallo,
Zitat von Dir:
Weil es zu jedem Auftraggeber min. 1 und max. 2 Leistungsempfänger geben kann. Demzufolge, muss es doch einen Bezug geben vom LE zum AG.
In Deiner Personentabelle sind alle Personen enthalten Du weist doch dann nicht, welcher LE zu welchem AG gehört, aber das war doch gemäß Deinem Zitat Bedingung.
Jep – das ist richtig!
Wenn ich dich nerve – dann lass es mich bitte wissen! ;-)
Ich denke diesen Bezug kann ich ja aus der Auftragstabelle entnehmen - von dieser war natürlich am Anfang nicht die Rede, das muss ich zugeben.
Aus der Auftragstabelle, könnte ich ja sehen ob ein AG, 1 oder 2 und welche Person(en) als LE hat.
VIELEN VIELEN VIELEN DANK!!! Und ein ganz ganz gr. SORRY für meine nervigen Fragen!
Hallo,
ZitatIch denke diesen Bezug kann ich ja aus der Auftragstabelle entnehmen -
Nein, eben nicht. Denn ohne einen Bezug könntest Du einem AG einen LE zuordnen den der gar nicht hat.
Du muss doch sicherstellen, dass Du nur einem zum AG passenden LE auswählen kannst.
Wobei ich davon ausgehe, dass ein LE kein AG sein kann.
Ich kann ja immer nur das vorschlagen, was ich aus Deiner Beschreibung auslese. Was ja nicht unbedingt richtig sein muss.
Vieleicht erklärst Du ja mal den Gesamtzusammenhang.
ZitatWenn ich dich nerve – dann lass es mich bitte wissen! ;-)
Nein, keine Sorge, ich tue mir das ja freiwillig an. ;D ;D
Dann versuche ich das mal zu beschreiben.
Es gibt:
DL – Dienstleister (Arbeiter)
AG – Auftraggeber
LE – Leistungsempfänger
KO – Koordination (Bindeglied zwischen DL und AG bzw. LE) immer ein und die selbe ,,Person"
Ein DL – stellt sich zur Verfügung Aufträge entgegenzunehmen und für Dienstleistungen Rechnungen zu stellen. Der DL stellt eine Rechnung vor erbrachter Leistung (Anfang des Monats für den lfd. den Monat). Wenn ein DL den Auftrag nicht fertig erfüllt bzw. ein anderer DL diesen Auftrag übernimmt, stellt der übernehmende DL, dem vorhergehenden DL, eine Rechnung für die bereits bezahlte und nicht fertig erbrachte Leistung. Für den Folgemonat stellt der übernehmende DL die Rechnung direkt an den LE.
Der AG (könnte auch der LE selbst sein). Dieser ist die Kontaktperson zum KO und Vertragspartner.
Der LE sollte klar sein – er könnte einen AG benötigen wenn dieser z.B. Minderjährig ist.
Der KO ist das Bindeglied, sozusagen ein Vermittler zwischen DL und AG (bzw. LE). DL bieten die Arbeit an und AG (bzw. LE) suchen diese DL. Beide Kontaktieren bei Bedarf den KO und warten auf Vermittlung.
Ich hoffe das ist so einigermaßen verständlich!
DANKE
Hallo,
ZitatDer LE sollte klar sein – er könnte einen AG benötigen wenn dieser z.B. Minderjährig ist.
Ein LE hat also nicht immer einen AG?
Und kann
ein AG
mehr als ein LE haben?
Und wo ist jetzt die weiter oben erwähnte Auftragstabelle?
Der LE kann auch selbst AG sein wenn er Volljährig ist.
Der AG kann ein oder max. zwei LE haben. Es kann sein das LE = AG, und ein zweiter LE
Tabelle Personen:
PersID Art Anrede Name Anschr. Kto-Daten
P0001 DL Herr Abler München 12345
P0002 DL Frau Anker Erding 10101
P0003 LN Herr Bucher Füssen 20202
P0004 LN Frau Berger Kempten 11111
P0005 LN Frau Bacher Bremen 22222
P0006 LN Herr Brunner Dresden 32323
P0007 LN Frau Bauer Berlin 45455
LN = Leistungsnehmer (AG und/oderLE) jetzt glaube ich zu erkennen was du mir die ganze Zeit versucht hast zu erklären. Ich muss dann den LE nochmals unterteilen in AG und LE. Wenn einer AG und LE zugleich ist muss ich diesen zweimal anlegen oder ich nehme zur Kenntnis dass ich bei der Auswahl alle AG und alle LE zur Verfügung habe.
Tabelle Aufträge:
AuftID Beginn Ende DL AG LE1 LE2
A0001 01.01. 31.01. P0001 P0003 P0003 Kein
A0002 01.02. Offen P0001 P0004 P0004 P0005
A0003 01.01. Offen P0002 P0005 P0006 P0007
A0004
Wirklich herzlichen Dank, dass Du so viel Geduld und Mühe für mich aufbringst.
DANKE!!!