endada
Goto Top

MS Access Datenbank

Hey alle zusammen,
ich habe folgendes Problem:
Ich versuche eine Datenbank mit Access zu erstellen, die wie im Screenshot (Anhang) aussehen/ funktionieren soll.
Jedoch ist mein Problem, dass er mir für jeden Datensatz eine neue ANr (Auftragsnummer) vergibt. Ich denke es wäre jedoch sinnvoller, wenn Kunden, die mehrere Produkte gleichzeitig bestellen, auch die gleiche ANr erhalten, oder?! ( siehe im Bild z.B. Anr.2)

Vermutlich muss ich das mit SQL lösen, oder geht es auch mit den Accesstools?


Danke schonmal

(Ach ja bin leider noch nicht so Fit in dem Thema und habe kein anderes Programm für Datenbanken zur Auswahl)


aufträge - Klicke auf das Bild, um es zu vergrößern
aufträge

Content-Key: 335237

Url: https://administrator.de/contentid/335237

Printed on: April 19, 2024 at 09:04 o'clock

Mitglied: 132895
132895 Apr 14, 2017 updated at 13:16:40 (UTC)
Goto Top
Du brauchst hier eine Tabelle Aufträge mit eindeutigen IDs. Dann eine Tabelle Produkte in dem jedes Produkt ebenfalls eine eindeutige ID erhält. Genauso eine Tabelle Kunden. Dann noch eine Tabelle Auftragsdetails in der alle bestellten Produkte mit den Fremdschlüssel ID aus Tabelle Aufträge und dem Fremdschlüssel des bestellten Produkts gelistet wird. So trennt man das normalerweise immer auf.

Einfachstes Relationales Datenbankdesign und mit Access ohne Probleme machbar.
https://support.office.com/en-us/article/Database-design-basics-1eade2bf ...
https://www.ntu.edu.sg/home/ehchua/programming/sql/relational_database_d ...

Gruß
Member: endada
endada Apr 14, 2017 at 14:18:02 (UTC)
Goto Top
Ich habe das wie im folgenden Screenshot angelegt gehabt.

Da fehlt also noch eine Tabelle?

MFG
beziehungen
Mitglied: 132895
132895 Apr 14, 2017 updated at 14:28:17 (UTC)
Goto Top
Ja da fehlt die Tabelle Auftragsdetails in der zu jedem Auftrag alle gekauften Produkte gelistet werden, dort darf dann eine Auftragsnummer als Fremdschlüssel mehrfach vorkommen, denn ein Kunde soll ja mehrere Produkte bestellen können, nicht nur eins...
Lese die obigen Links dann verstehst du das Prinzip besser.
Member: endada
endada Apr 14, 2017 at 14:43:36 (UTC)
Goto Top
OK.
Mal schauen, ob ich das hinbekomme.
D.h. in die Tabelle Auftragsdetails übergebe ich dann die Attibute aus den vorliegenden Tabellen, wie z.b. Knr, AufNr, Pnr, Kunde, Straße, Datum,....??
Member: endada
endada Apr 14, 2017 updated at 15:26:45 (UTC)
Goto Top
Darin liegt ja mein Problem.
Wenn ich die Auftragsnummer als Primary Key ( Autowert) nehme, übergibt er mir immer eine neue Auftragsnummer.
Aber wie sage ich dem Programm, dass er dieselbe Auftragsnummer beibehalten soll, wenn das Bestelldatum und die Kundennummer identisch sind, jedoch die ProduktID mehrere Unterschiedliche sind?

Das bekomme ich i.wie nicht hin face-sad


Ich könnte es mir ganz einfach machen und die Auftragsnummer nicht als Primary Key definieren. Dann kann ich einfach die ANr per Hand immer eingeben, aber das ist wahrscheinlich nicht gerade die schöne Art und Weise
Mitglied: 132895
132895 Apr 14, 2017 updated at 15:28:45 (UTC)
Goto Top
Zitat von @endada:
D.h. in die Tabelle Auftragsdetails übergebe ich dann die Attibute aus den vorliegenden Tabellen, wie z.b. Knr, AufNr, Pnr, Kunde, Straße, Datum,....??
In der Tabelle brauchst du eigentlich nur die Auftragsnummer als Fremdschlüssel und den Artikel als Fremdschlüssel und dann je nachdem was du sonst noch brauchst (Rabatt/speez. Artikelpreis /etc). Einen Kunden gibt es für einen Auftrag nur einen der kommt dann in die Auftragstabelle genau so wie das Datum das brauchen wir ja auch nur einmal erfassen. Klassische 1:n Zuordnung ist das = Ein Auftrag hat mehrere Produkte.

Das Design ist sehr wichtig und sollte gründlichst überdacht werden, denn hinterher wenn Daten schon eingetragen sind Änderungen zu machen wird meist sehr aufwändig. Also alle Felder erfassen, Zusammenhänge zusammentragen, Redundante Daten in Tabellen vermeiden und in separate Tabellen auslagern, usw. Husch Husch bringt dich da nicht zu etwas vernüftigem.
Mitglied: 132895
132895 Apr 14, 2017 updated at 15:34:29 (UTC)
Goto Top
Jede Tabelle bekommt seine eigene ID Spalte die deren KEY ist in der Auftragsdetails-Tabelle hast du dann zusätzlich als Fremdschlüssel die AuftragsID aus der Tabelle Aufträge und die ArtikelID aus der Artikeltabelle ganz einfach!

Du brauchst halt noch etwas bis du es verstanden hast. Belese dich zu relationalem Datenbankdesign dann verstehst du's. Dazu gibt's im Web tausende Seiten.
Member: endada
endada Apr 14, 2017 at 15:39:21 (UTC)
Goto Top
Meinst du so wie im folgenden Bild?
Mitglied: 132895
132895 Apr 14, 2017 updated at 15:54:04 (UTC)
Goto Top
Ein ganz einfaches Beispiel (ohne Anspruch auf Vollständigkeit, da gibt es noch viel mehr was man hier nicht alles im Zeitrahmen besprechen kann)
screenshot

Du solltest vielleicht mal hier weiterlesen:
http://www.access-tutorial.de/tabellen/nmbeziehung.htm

Ich bin jetzt raus.
Member: endada
endada Apr 14, 2017 at 15:54:03 (UTC)
Goto Top
sorry, hatte dir das falsche Bild geschickt.

Ja genau so wie im Beipsiel habe ich das auch gemacht.

Muss jetzt jetzt noch i.wie Verweise auf die entsprechenden Schlüssel machen mittels Nachschalge-Assistenten?
bezieh1
Mitglied: 132895
132895 Apr 14, 2017 updated at 15:56:08 (UTC)
Goto Top
Muss jetzt jetzt noch i.wie Verweise auf die entsprechenden Schlüssel machen mittels Nachschalge-Assistenten?
Ja, wenn du das direkt mit dem Nachschlageassistenten machst trägt er die Beziehungen sowieso von sich aus schon automatisch ein.

Viel Erfolg weiterhin.
Ciao.
Member: endada
endada Apr 14, 2017 at 15:57:53 (UTC)
Goto Top
Danke dir.
ciao
Member: endada
endada Apr 14, 2017 at 17:14:22 (UTC)
Goto Top
Sorry Leute,
aber mit den Tutorials etc. komme ich nicht weiter.

Ich versuche nochmal mein Problem zu erklären:

Undzwar habe ich soweit alle nötigen Tabellen und Beziehungen.
Aber wie bekomme ich Access dazu, dass es bei gleicher Kundennummer und gleichem Bestelldatum keine neue Auftragsnummer anlegt, sondern merkt das gleichzeitig mehrere Produkte von demselben Kunden bestellt werden und somit einfach die bestellten Produkte des Kunden unter der gleichen Auftragsnummer auflistet/ speichert????

Hab es auch mit join und inner join probiert, aber erfolglos
Mitglied: 132895
Solution 132895 Apr 14, 2017 updated at 17:23:08 (UTC)
Goto Top
Indem du eine Subform anlegst, die Subform mit der MainForm anhand der Auftragsnummer beider Tabellen verknüpfst face-smile => Grundkurs Access ist da dringend fällig face-confused

Schau dir dir Demo-Datenbanken von Access an da siehst du es wie es geht.
Mitglied: 132895
132895 Apr 14, 2017 updated at 17:27:42 (UTC)
Goto Top
Hier siehst du auch noch mal detailliert wie es geht!
Bestellverwaltung [Access im Unternehmen]
Member: Penny.Cilin
Penny.Cilin Apr 14, 2017 at 19:22:18 (UTC)
Goto Top
Doppelposting Vorheriger Beitrag kommt nicht gut.

Kann jemand den oben genannten Beitrag löschen?

@endada: Warum hast Du Deinen ersten beitrag nicht in die richtige Kategorie verschoben und stattdessen einen neuen erstellt?


Gruss Penny
Member: endada
endada Apr 14, 2017 at 20:10:01 (UTC)
Goto Top
Sorry,
dachte ich könnte den nicht verschieben.


MFG
Mitglied: 132895
132895 Apr 20, 2017 at 15:01:58 (UTC)
Goto Top
Wenn's das dann war, den Haken nicht vergessen.