Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: weggli1 am Juli 20, 2010, 18:22:16

Titel: Bestellformular erstellen
Beitrag von: weggli1 am Juli 20, 2010, 18:22:16
Hallo allerseits. Ich habe ein riesenproblem und komm nicht weiter, hänge bestimmt schon 2 Tage daran.
Ich habe eine DB für einen Onlineshop erstellt. Nun möchte ich ein Bestellformular machen, in welchem man mehrere (verschiedene) Produkte auf einmal bestellen kann. (Ich weiss, dass es dieses Thema hier schon gibt, aber die anderen Threads haben mir nicht im geringsten weitergeholfen). Im Hauptformular sollten die Kundendaten eingegeben werden (resp. die K-Nr., der Rest kommt automatisch). Das hab ich auch schon geschafft, aber die Produkte kann ich irgendwie nicht einbinden (egal ob im HF oder im UFO).
An den Beziehungen sollt es jedoch nicht liegen, ich glaube die sind korrekt (bild). Und die Gesamtpreise können ja auch ohne Feld in einer Tabelle im Unterformular ausgerechnet werden oder?

kann mir jemand helfen?

[Anhang gelöscht durch Administrator]
Titel: Re: Bestellformular erstellen
Beitrag von: oma am Juli 20, 2010, 19:21:21
Hallo,

1.  Bist du dir sicher, eine Access-Datenbank für ein Onlineshop zu gestalten
2.  Bist du dir sicher, dass du die Tabellen:   "wird bestellt"   u.  "wird nachbestellt" benötigst
3.  Was klappt denn nicht, wenn du zu einem Hauptformular (mit Daten der Kunden) ein Unterformular mit den Daten der Besellungen erstellt; beide Formulare mit der Kundennummer verknüpfst u. im Unterformuar die Produkte mit ein Kombifeld auswählst?

Gruß Oma
Titel: Re: Bestellformular erstellen
Beitrag von: weggli1 am Juli 21, 2010, 16:39:19
Hab das Beziehungsschema leicht angepasst. (Neues Bild)
Die Tabellen "wird bestellt" und "wird nachbestellt" brauche ich, um verschiedene Produkte in der gleichen Bestellung (mit der gleichen Auftrag_ID) vermerken zu können.
Wenn ich jedoch ein Unterformular anlege, dann enthält es keine Daten, egal wie ichs drehe und wende, ich kann keine Produkte auswählen, wenn ich ein Listenfeld erstelle, weswegen das ganze für die Katz ist....

[Anhang gelöscht durch Administrator]
Titel: Re: Bestellformular erstellen
Beitrag von: MzKlMu am Juli 21, 2010, 16:46:59
Hallo,
ZitatWenn ich jedoch ein Unterformular anlege, dann enthält es keine Daten, egal wie ichs drehe und wende, ich kann keine Produkte auswählen, wenn ich ein Listenfeld erstelle, weswegen das ganze für die Katz ist....
Bevor das datenmodell nicht stimmt, solltest Du eh keine Formulare anlegen, sonst sind diese auch für die Katz.
Ein Unterformular ist immer Bestandteil eines Hauptformulars.

Was zeigt das Hafo (Datenhrkunft) und was das Ufo (auch Datenherkunft)?

ZitatDie Tabellen "wird bestellt" und "wird nachbestellt" brauche ich,
Ich würde das in einer Tabelle machen, eventuell mit einem Kennzeichen für eine Nachbestellung.
Der Unterschied zwischen  "wird bestellt" und "wird nachbestellt"ist mir aber noch nicht ganz klar.
Titel: Re: Bestellformular erstellen
Beitrag von: weggli1 am Juli 21, 2010, 16:57:45
ZitatBevor das datenmodell nicht stimmt, solltest Du eh keine Formulare anlegen, sonst sind diese auch für die Katz.
Ein Unterformular ist immer Bestandteil eines Hauptformulars.

Was zeigt das Hafo (Datenhrkunft) und was das Ufo (auch Datenherkunft)?

Das Hafo zeigt sämtliche Kundendaten ausser Kunde_ID (Aus KUNDE) sowie Kunde_ID, Auftrag_ID, Auftragsdatum und Mitarbeiter_ID aus KUNDEN_BESTELLUNGEN.
Das Ufo sollte nun Produkt_ID, Produktname (als Listenfeld zum auswählen), Verkaufspreis, Anzahl sowie den Gesamtpreis ( Verkaufspreis*Anzahl) darstellen, aber da wähle ich wohl immer eine falsche Datenherkunft, anders kann ich mir das nicht erklären.

ZitatDer Unterschied zwischen  "wird bestellt" und "wird nachbestellt"ist mir aber noch nicht ganz klar.

Die eine Tabelle ist für die ausgehenden Bestellungen an die Lieferanten und die andere für die eingehenden der Kunden.
Titel: Re: Bestellformular erstellen
Beitrag von: oma am Juli 21, 2010, 16:59:59
Hallo,

ZitatDer Unterschied zwischen  "wird bestellt" und "wird nachbestellt"ist mir aber noch nicht ganz klar.

kommt wahrscheinlich aus den Bezeichnungen der Tabellen; es sollen ja wohl tblBestellLieferanten und tblBestellKunden sein.
hatte das zunächst auch "übersehen"

Gruß Oma

PS. Jo, kann man auch aus dem Schema erkennen, aber was in den Tabellen das Feld Anzahl (wohl nicht die Anzahl der bestellten Produkte)
Titel: Re: Bestellformular erstellen
Beitrag von: weggli1 am Juli 21, 2010, 17:05:50
Zitataber was in den Tabellen das Feld Anzahl (wohl nicht die Anzahl der bestellten Produkte)

Doch, welche Anzahl des Produkts X in Auftrag Y vorkommt. Sieht dann ungefähr so aus:

Auftrag_ID   Produkt_ID   Anzahl
        1                  1               2
        1                  2               5
        1                  6               9
        2                  1               1
        2                  5               2
Titel: Re: Bestellformular erstellen
Beitrag von: MzKlMu am Juli 21, 2010, 17:13:48
Hallo,
ich würde das dann doch noch erheblich umstricken.

- Kunden und Lieferanten in eine Tabelle, mit einem Kennzeichen ob Kunde oder Lieferant (oder auch beides)

- Die Bestellungen in eine Tabelle, mit Kennzeichen ob Nachbestellung oder Kundenauftrag. Hier wird noch ein Faktor geführt für Kundenaufträge=-1 für Nachbestellungen =1. Mit diesem Faktor wird die Anzahl multipliziert. Wenn man das Ergebnis dieser Multiplikation gruppiert (nach dem Artikel) hat man stets den aktuellen Bestand. Das Feld "Menge an Lager" ist dann überflüssig, denn der Bestand wird ja errechnet.
Damit kannst Du in einem einzigen Formular (mit einem Ufo) alles verwalten.
Titel: Re: Bestellformular erstellen
Beitrag von: weggli1 am Juli 21, 2010, 17:20:06
ZitatHallo,
ich würde das dann doch noch erheblich umstricken.

- Kunden und Lieferanten in eine Tabelle, mit einem Kennzeichen ob Kunde oder Lieferant (oder auch beides)

- Die Bestellungen in eine Tabelle, mit Kennzeichen ob Nachbestellung oder Kundenauftrag. Hier wird noch ein Faktor geführt für Kundenaufträge=-1 für Nachbestellungen =1. Mit diesem Faktor wird die Anzahl multipliziert. Wenn man das Ergebnis dieser Multiplikation gruppiert (nach dem Artikel) hat man stets den aktuellen Bestand. Das Feld "Menge an Lager" ist dann überflüssig, denn der Bestand wird ja errechnet.
Damit kannst Du in einem einzigen Formular (mit einem Ufo) alles verwalten.

Das klingt schon praktisch, aber dann ist die Werteingabe nicht mehr so simpel wie bis jetzt (Lieferantenauswahl z.B. beim eingeben neuer Produkte) und den Bestand kann ich ja auch so errechnen lassen. Hätte die Lieferanten und die Kunden gerne getrennt gehabt...
Titel: Re: Bestellformular erstellen
Beitrag von: MzKlMu am Juli 21, 2010, 17:26:10
Hallo,
ZitatDas klingt schon praktisch, aber dann ist die Werteingabe nicht mehr so simpel wie bis jetzt (Lieferantenauswahl z.B. beim eingeben neuer Produkte)
Nein, da irrst Du Du kannst auch mit einer Tabelle auf Lieferanten beschränken, denn Du hast ja ein Kennzeichen in der Tabelle.
OK, Lieferanten und Kunden getrennt zu halten ist Ansichtssache, aber die Bestellungen/Nachbestellungen würde ich auf keinen Fall getrennt machen.
Zitatund den Bestand kann ich ja auch so errechnen lassen.
Aber mit 2 Tabellen ist das viel aufwändiger.
Titel: Re: Bestellformular erstellen
Beitrag von: weggli1 am Juli 21, 2010, 17:39:09
ZitatNein, da irrst Du Du kannst auch mit einer Tabelle auf Lieferanten beschränken, denn Du hast ja ein Kennzeichen in der Tabelle.
OK, Lieferanten und Kunden getrennt zu halten ist Ansichtssache, aber die Bestellungen/Nachbestellungen würde ich auf keinen Fall getrennt machen.

Also würdest du das so machen? Mit einem Ja/Nein-Wert beim Feld Nachbestellung?

[Anhang gelöscht durch Administrator]
Titel: Re: Bestellformular erstellen
Beitrag von: MzKlMu am Juli 21, 2010, 17:49:52
Hallo,
nein, so würde ich es nicht machen. Die Bestellungen müssen in einer Tabelle erfasst werden. Lieferanten_Bestellung und Kunden_Bestellung = eine Tabelle. Und in diese kommen 2 Felder eines für die KundenID und eins für die LieferantenID (wenn Du schon 2 Tabellen führen willst). Oder nur ein Feld und darin wird entweder die Kunden oder die LieferantenID erfasst. Und in diese gemeinsame Bestelltabelle kommt dann das kennzeichen.
Das wird aber nur gebraucht, wenn Du die IDs in einem Feld speicherst. Wenn Du 2 Felder (KundenID und LieferantenID) anlegst, brauchst Du auch dieses Kennzeichen nicht.

Lade doch statt der Bilder einfach mal die DB hoch (gezippt und komprimiert).
Titel: Re: Bestellformular erstellen
Beitrag von: weggli1 am Juli 21, 2010, 18:18:44
Ok, also hier ist die Datenbank, wie ich sie eigentlich geplant hatte...

[Anhang gelöscht durch Administrator]
Titel: Re: Bestellformular erstellen
Beitrag von: MzKlMu am Juli 21, 2010, 19:13:15
Hallo,
mit Access2007 kann ich leider nichts anfangen, ich habe kein Access2007. Bitte konvertieren in Access2003 oder kleiner.
Titel: Re: Bestellformular erstellen
Beitrag von: weggli1 am Juli 21, 2010, 20:19:19
Sorry, hier ist es konvertiert.

[Anhang gelöscht durch Administrator]
Titel: Re: Bestellformular erstellen
Beitrag von: MzKlMu am Juli 22, 2010, 19:47:31
Hallo,
so, hier habe ich mal einen Vorschlag.
Zunächst, ich habe mal alle Feldnamen geändert. In einer DB sollte es über alle Tabellen keine gleichen Feldnamen geben. Das erleichtert kolossal die Programmierarbeit. Ein Feldname "Name" ist absolut tabu. Alle Fremdschlüsselfelder erhalt ein _F hinten. Die leichte Unterscheidung ob Fremd oder Primärschlüssel ist auch wichtig. Eine PLZ muss ein Textfeld sein, es gibt auch PLZ mit einer 0 vorne. Bei einer Zahl wird die nicht dargestellt.
Es gibt das Formular "frmErfassung" in diesem werden die Aufträge/Bestellungen erfasst. In einem Kombi kann man wählen, welche Vorgangsart (Kundenbestellung/Nachbestellung). Je nachdem was gewählt ist werden die entsprechenden Felder angezeigt.
Die LieferantenID ist eigentlich nicht notwendig, das Feld ist nur da um bei einer Nachbestallung nur die Produkte eines bestimmten Lieferanten auswählen zu können. Das funktioniert aber noch nicht. Der Lieferant ergibt sich zweifelsfrei aus dem Produkt und müsste gar nicht mehr erfasst werden. Der Preis wird bei Auswahl eines Produkt je nach Vorgangsart ermittelt und redundant gespeichert. Wenn der Preis nicht redundant gespeichert wird, haben Preisänderungen Auswirkung auf die alten Datensätze. Entspricht nicht ganz den Regeln, ist aber einfacher.
Ich weis jetzt nicht genau, ob ich alles erwähnt habe.

Das Formular kriegt aber noch keinen Design Preis.

DB anbei, schaue es Dir mal an.


[Anhang gelöscht durch Administrator]
Titel: Re: Bestellformular erstellen
Beitrag von: weggli1 am Juli 22, 2010, 22:29:17
Vielen, vielen Dank. Jetzt blicke ich langsam durch. Habe mittlerweile auch in meiner seltsamen DB ein Bestellformular hingekriegt, aber das ist natürlich um einiges besser hier.  ;D

Danke nochmals, das ist echt super.
Titel: Re: Bestellformular erstellen
Beitrag von: xx82 am August 09, 2018, 16:24:04
Schade, dass die Anhänge nicht mehr existieren, genau so etwas brauche ich aktuell. Habt ihr die Dateien noch?