Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Datenaustausch zw.3 Tabellen
zurück: Abfrage ohne Ergebnis, Wert "0" zum weiterrechnen weiter: SQL Frage: Konto Bestandsdauer ermitteln Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
shadowbat
Access-Newbie/schon älter


Verfasst am:
23. Feb 2010, 14:59
Rufname: Holger
Wohnort: Göttingen

Datenaustausch zw.3 Tabellen - Datenaustausch zw.3 Tabellen

Nach oben
       Version: Office 2003

Hallo.
Ich bin ein Neuling bei Access, habe mich aber schon etwas eingelesen, habe aber ein Problem mit Daten aus mehreren Datenbanken.
Ich denke ich schreibe erstmal, was ich habe, dann mein Problem:

Ich habe 3 Tabellen meiner Datenbank:
Kundendaten: Erster Datensatz ist Kundennummer, die die Tabelle selber generiert und die als Index eingesetzt werden soll (Autowert). Der Rest sind normale Kundendaten.

Rechnung 1 und Rechnung 2: Hier enthalten sind Rechnungsnummer (automatisch erstellt und als Index genutzt (Autowert)), Rechnungsdatum (was eigentlich auch selber erstellt werden soll (ein Problem, was ich später auch noch lösen muss). Dann sollen hier ein Teil der Daten aus „Kundendaten“ einfließen. Dann kommen die eigentlichen Rechnungsdaten

Ich habe die 3 Tabellen erstellt, dann Formulare für jede einzelne Tabelle, dann eine Abfrage für den Teil Kundendaten (aus der Kundendaten-Tabelle), den ich in den Rechnungstabellen haben will, und mich dann mit dem „Beziehungsmanager“ daran gemacht, Beziehungen von der Kundendaten –Abfrage zu den Rechnungen zu erstellen (Ich habe auch versucht, mittels Beziehungen, die Daten direkt aus der Kunden-Tabelle zu holen, hat mich aber auch nicht weitergebracht). Dann habe ich in den Formularen für die Rechnungen ein Listenfeld (Listenfeld:Kombinationsfeld) eingebaut, das über die Abfrage die Daten aus der Kunden-Tabelle zum einen die Kundendaten anzeigen soll, sie dann aber auch per Auswahl oder wie auch immer, in das Formular der Rechnungen einfließen lassen soll, und auch in der Rechnungs-Tabelle gespeichert werden soll.

Das funktioniert leider nicht, und ich weiß nicht warum.
Hat jemand einen Tip für mich, wie ich das realisiert bekomme?
Es wäre schön, wenn die Kundendaten in der Rechnungstabelle stehen, weil darüber später Rechnungen gedruckt werden sollen und ich sonst, wenn nur die Kundennummer in der Rechnungstabelle steht, ich wieder eine Verbindung zu der Kundendaten-Tabelle herstellen muß. Dass soll später über eine Datenzugriffsseite realisiert werden.

Ich hoffe, hier kann mir jemand helfen.
Gruß aus Göttingen, Holger
astern
Datenmodell-Missionar


Verfasst am:
23. Feb 2010, 15:11
Rufname: Andreas
Wohnort: Rastede


AW: Datenaustausch zw.3 Tabellen - AW: Datenaustausch zw.3 Tabellen

Nach oben
       Version: Office 2003

Hallo!
Tabellen tauschen keine Daten aus. Tabellen werden durch Primär- und Fremdschlüssel untereinander verbunden. Lies Dir mal zu Einführung das hier durch:
Datenmodell entwickeln: Welche Tabellen und Beziehungen?
Und denk erst mal überhaupt nicht an Formulare - Du brauchst erst mal ein Datenmodell!

Hier kommt noch eine Erläuterung zum Thema
"Primärschlüssel / Fremdschlüssel"
Zur Erklärung der Begriffe "Primärschlüssel" und "Fremdschlüssel" beziehe ich mich auf das Formular in meinem Tutorial (Formularentwurf: Gutes Layout und nutzerfreundliche Funktion):

Primärschlüssel dienen der EINDEUTIGEN Kennzeichnung von Daten. Beispiel: Es könnte mehrere Kunden "Meier" geben. Es könnte auch mehrere "Klaus Meier" geben. Es könnte auch rein zufällig zwei Klaus Meier geben, die am selben Tag Geburtstag haben. "Klaus Meier, 13.5.1980" reicht daher NICHT zur EINDEUTIGEN Kennzeichnung eines bestimmten Kunden aus. Darum die EINDEUTIGEN Primärschlüssel!

Alle Spalten mit der Endung "_id" sind Primärschlüssel vom Datentyp "Autowert". Das heißt:
- Access schreibt selber Werte in diese Spalten
- und zwar fortlaufend 1, 2, 3, 4, ...
- Du kannst diese Werte nicht ändern

Wenn Du zum Beispiel Kunden eingibst, dich vertan hast und den Kunden mit dem Primärschlüsselwert kun_id=5 löscht, dann kann dieser Wert NIE WIEDER benutzt werden, d.h. auf kun_id=4 folgt jetzt kun_id=6 und der nächste bekommt die 7 - NICHT die 5!
Primärschlüsselwerte sind EINDEUTIG, d.h. jeden Wert gibt es nur ein einziges mal.

Fremdschlüsel stellen den ZUSAMMENHANG zwischen Daten her. Dazu beziehen sie sich auf einen Primärschlüssel EINER ANDEREN Tabelle. Beispiel: Der Kundenauftrag Nr. 4711 vom 12.3.2009 (kauf_id=424) ist vom Kunden Klaus Meier (kun_id_250). Dann wird der Wert "250" als Fremdschlüssel kun_id_f in der Tabelle tblKundenauftrag eingetragen - und zwar in der Zeile mit dem Primärschlüssel kauf_id=424.
So funktioniert das bei 1:n-Beziehungen.

Zwischen tblKundenauftrag und tblMaterialart besteht aber eine m:n-Beziehung. Da wird nicht der Primärschlüssel der einen Tabelle als Fremdschlüssel in der anderen eingetragen, sondern BEIDE Primärschlüssel tauchen als Fremdschlüssel in einer dritten Tabelle zwischen den beiden Tabellen auf (darum der Name "Zwischentabelle"). Das ist dann die Tabelle tblKauf_Mat. Die Einträge kauf_id_f=424 und mat_id_f=107 bedeuten dann z.B. "Zum Auftrag Nr. 4711 vom 12.3.2009 (kauf_id=424) gehört Zement (mat_id=107)". In kaufmat_menge steht dann noch, WIEVIEL Zement.

Fremdschlüssel haben natürlich NICHT den Datentyp Autowert, sondern den Datentyp Zahl / LongInteger. ACHTUNG: Access 2003 setzt bei der Definition der Tabellenspalten beim Datentyp Zahl / LongInteger immer "Standardwert=0" ein. Das führt bei Fremdschlüsseln aber unweigerlich zu Fehlermeldungen, weil es definitiv keinen dazugehörigen Primärschlüssel 0 (Null) gibt. Darum diesen Standardwert gleich bei der Tabellendefinition entfernen! (Access 2007 macht das nicht mehr.)

MfG
A*

_________________
1. Access-Gebot: Du sollst lange und gründlich über Dein Datenmodell nachdenken!
2. Access-Gebot: Du sollst keine Formulare erstellen ohne gutes Datenmodell!
shadowbat
Access-Newbie/schon älter


Verfasst am:
23. Feb 2010, 21:17
Rufname: Holger
Wohnort: Göttingen

AW: Datenaustausch zw.3 Tabellen - AW: Datenaustausch zw.3 Tabellen

Nach oben
       Version: Office 2003

shadowbat am 23. Feb 2010 um 16:40 hat folgendes geschrieben:
Hallo A**,
Danke für deine schnelle Antwort, und die Hinweise. Ich mache alles noch mal neu und werde deine Hinweise einfließen lassen. Ich melde mich bestimmt wieder, da ich durch neue Infos neue Probleme habe. Nicht einfach als Anfänger.

Danke und gruß aus Göttingen, Holger

Hallo Andreas.
Ich habe (mit freude) dein Tut "Datenmodell entwickeln: Welche Tabellen und Beziehungen?" gelesen, bin mir aber in meinem Fall nicht sicher, ob ich Zwischentabellen brauche. Nach meiner Meinung nicht, da ja nichts geplant wird wie in deinem Bsp(Vorbestellung, oder:Wer hatte?Wer Hat, Wer wird haben), sondern ja nur 2 Rechnungs-Tabellen auf eine Adress-Tabelle zugreifen. Zum Schluss sollen Rechnungsdaten (Hotel oder Restaurant) mit den Kundendaten als Rechnung ausgedruckt werden. Ein Kunde-> Ein Zimmer. Das wäre doch eine 1:1 Beziehung, oder? Oder ein Kunde hat mehre Zimmer (1:n?) Angedacht waren auch Sammelrechnungen, also eine Rechnung für einen Kunden, der in Zeitraum Y ein oder mehrere (mit Unterbrechungen(Handwerker)) Zimmer hatte (1:n?). Wenn ich das richtig sehe, läuft das auf eine 1:n Beziehung hinaus, oder?

PS:Ich mache alles noch mal neu, da ich beim Lesen deines Tuts auf Probleme gestoßen bin, die ich vorher nicht bedacht habe.

Gruß aus Göttingen, Holger
astern
Datenmodell-Missionar


Verfasst am:
23. Feb 2010, 21:44
Rufname: Andreas
Wohnort: Rastede

Re: AW: Datenaustausch zw.3 Tabellen - Re: AW: Datenaustausch zw.3 Tabellen

Nach oben
       Version: Office 2003

Hallo!
Zitat:
bin mir aber in meinem Fall nicht sicher, ob ich Zwischentabellen brauche
Du musst die von mir beschriebenen Sätze bilden - und immer, wenn es heißt

Zu EINEM A gehören MEHRERE B - und
Zu EINEM B gehören MEHRERE A -

dann ist es eine m:n-Beziehung und dann braucht man eine Zwischentabelle.
Zitat:
Ein Kunde-> Ein Zimmer. Das wäre doch eine 1:1 Beziehung, oder?
1:1-Beziehungen sind in den allermeisten Fällen nicht erforderlich. Sie kommen in den wenigsten Datenbanken vor. Kunde - Zimmer ist eine m:n-Beziehung!

EIN Kunde kann MEHRERE Zimmer buchen (wenn nicht auf einmal, dann nacheinander)
EIN Zimmer wird von MEHREREN Kunden gebucht (nacheinander!)

Da spielt die Zeit eine große Rolle!

MfG
A*

_________________
1. Access-Gebot: Du sollst lange und gründlich über Dein Datenmodell nachdenken!
2. Access-Gebot: Du sollst keine Formulare erstellen ohne gutes Datenmodell!
shadowbat
Access-Newbie/schon älter


Verfasst am:
02. März 2010, 12:18
Rufname: Holger
Wohnort: Göttingen


AW: Datenaustausch zw.3 Tabellen - AW: Datenaustausch zw.3 Tabellen

Nach oben
       Version: Office 2003

Hallo Andreas.
Danke dir!

Das mit den Beziehungen under der eindeutigen Rechnungs/Kundennummer hat gekappt. So, ans nächste Problem.

Bis bald,
gruß aus Göttingen, Holger
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Daten suchen in ACCESS. Daten aus Tabellen suchen! 7 Gast 2093 26. Aug 2004, 13:55
Gast Daten suchen in ACCESS. Daten aus Tabellen suchen!
Keine neuen Beiträge Access Tabellen & Abfragen: mehrere Tabellen zusammenfassen 3 woerny01 1280 10. Aug 2004, 16:22
woerny01 mehrere Tabellen zusammenfassen
Keine neuen Beiträge Access Tabellen & Abfragen: daten in 2 tabellen speichern 1 Gast 1178 09. Jun 2004, 10:58
mabe38 daten in 2 tabellen speichern
Keine neuen Beiträge Access Tabellen & Abfragen: Primärschlüssel in Tabellen mit Beziehungen erneuern 1 mhw 1523 07. Jun 2004, 18:31
faßnacht(IT); Primärschlüssel in Tabellen mit Beziehungen erneuern
Keine neuen Beiträge Access Tabellen & Abfragen: Frontend und Backend: kann nicht auf die Tabellen zugreifen 1 mhw 803 25. Mai 2004, 12:25
Robsl Frontend und Backend: kann nicht auf die Tabellen zugreifen
Keine neuen Beiträge Access Tabellen & Abfragen: Zwei Tabellen zusammenfügen und Nullwerte überschreiben 1 m.hataj 1304 13. Mai 2004, 18:10
faßnacht(IT); Zwei Tabellen zusammenfügen und Nullwerte überschreiben
Keine neuen Beiträge Access Tabellen & Abfragen: kriterium - datensatz nur in einer von zwei tabellen 3 budking82 1000 11. Mai 2004, 12:59
budking82 kriterium - datensatz nur in einer von zwei tabellen
Keine neuen Beiträge Access Tabellen & Abfragen: Tabellen verknüpfen ( Excel & Access ) 1 Isa 1380 29. Apr 2004, 17:45
BufferOverflow2 Tabellen verknüpfen ( Excel & Access )
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage erstelen, die zwei tabellen vergleicht 2 pucky 802 27. Apr 2004, 10:53
ProLogistik Abfrage erstelen, die zwei tabellen vergleicht
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage über mehrere Tabellen 6 Martin1977 976 02. Apr 2004, 15:43
Martin1977 Abfrage über mehrere Tabellen
Keine neuen Beiträge Access Tabellen & Abfragen: neue Tabellen erstellen aus vorhandener Tabelle 6 moni 2010 29. März 2004, 15:39
moni neue Tabellen erstellen aus vorhandener Tabelle
Keine neuen Beiträge Access Tabellen & Abfragen: datensatz aus mehreren Tabellen im formular anzeigen 1 SixPack 1197 29. März 2004, 10:53
Willi Wipp datensatz aus mehreren Tabellen im formular anzeigen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Macromedia Dreamweaver