Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Abhängige Kombifelder

Begonnen von Franz-70, Januar 07, 2017, 21:59:13

⏪ vorheriges - nächstes ⏩

Franz-70

Ich bin Mitglied in einem gemeinnützigen Verein, der Bedürftige hilft. U.a. machen wir auch das, was auch ,,die Tafel" macht. Wir sammeln von Unternehmen (Landwirte, Einzelhandel etc.) Lebensmittel, und verteilen die an Leuten mit geringen Einkommen. Nun ist es so, dass wir durch unsere Gemeinnützigkeit auch Spendenquittungen ausfüllen können und geben damit
denen die uns helfen, ein wenig zurück. Dem Finanzamt sind wir dann aber den Nachweis schuldig, dass der Betrag auf der jeweiligen Spendenquittung in einem gesunden Verhältnis zur den Warenlieferungen steht.

Damit das gelingt, habe ich diese DB geschaffen (mit Acc2007)
Es sind im Wesentlichen 3 Tabellen, die folgendermaßen aufgebaut sind:
tblJahr                                           
Jahr_Key     (1, 2, ...)                   
Jahre            (2013, 2014,...)

tblLieferanten
Lief_Key       (1, 2, ...)
Firma_Kurz   (Firma1, Firma2,...)

tblWareneingang
War_Key
Lief_Key   
Jahr_Key 
Lieferdat   (Datum)
Brot 
Gem 
Obst
etc.   

z. B.: tblWareneingang

War_Key    Lief_Key   Jahr_Key    Lieferdat     Brot    Gem   Obst
101          1           1             03.01.2013      10       15         8
581             2         2                      06.05.2014        0       0         1   
752        4          3                07.02.2015       5       5           7

Ich möchte nun mit 2 Kombifelder eine Jahreszusammenstellung aufrufen können, in der jeweils gelistet nach Lief_Key (Firma) und nach Jahr_Key (Jahre) alle Wareneingänge aufgeführt sind.
Z.B. alle Wareneingänge der Firma XYZ aus dem Jahr 2013.
Ich habe bisher einiges angestellt, drehe mich anscheinet immer im Kreis.
Einer meiner letzten Versuche sieht folgendermaßen aus:

Das 1. Kombifeld (cbo_Jahr) hat folgende Datenherkunft:
SELECT [tblJahr].[Jahr_Key], [tblJahr].[Jahre] FROM tblJahr ORDER BY [Jahr_Key];

Private Sub cbo_Jahr_AfterUpdate()
Me!cbo_Lieferant.RowSource = "Select tblWareneingang.War_Key, tblWareneingang.Lieferdat, tblWareneinang.Brot, tblWareneingang.Gem, tblWareneingang.Obst " & " FROM tblWareneingang " & " WHERE War_Key=" & Me!cbo_Lieferant
End Sub


Beim  2. Kombifeld (cbo_Lieferant) ist es so:
SELECT [tblLieferanten].[Lief_Key], [tblLieferanten].[Firma_Kurz] FROM tblLieferanten ORDER BY [Lief_Key];

Private Sub cbo_Lieferant_AfterUpdate()
Me.RecordSource = "SELECT * FROM tblJahr WHERE ([Jahr_Key]) = FORMS![tblJahresansicht]![cbo_Lieferant])"
End Sub

Es erscheint folgende Fehlermeldung:
Syntaxfehler (fehlender Operator) in Abfrageausdruck ,War_Key='.

Nun bitte ich euch, mir zu helfen.

Gruß
Franz-70


MzKlMu

#1
Hallo,
kann man das Jahr nicht aus dem Lieferdatum ableiten ?
Oder ist das Jahr unabhängig vom Lieferdatum?
Weiterhin ist die Tabelle für den Wareneingang falsch. Es fehlen noch 2 Tabellen, eine Tabelle für die Waren und eine Tabelle in der die Waren dem Lieferdatum (=Wareneingang) zugeordnet werden. In dieser Tabelle ist dann jede eingegangene Ware ein Datensatz. Die Felder Brot    Gem   Obst usw. entfallen ersatzlos.
Gruß Klaus

Joss

Hallo Franz-70,

ZitatIch möchte nun mit 2 Kombifelder eine Jahreszusammenstellung aufrufen können, in der jeweils gelistet nach Lief_Key (Firma) und nach Jahr_Key (Jahre) alle Wareneingänge aufgeführt sind.

Für diese Aufgabe sind Berichte gedacht.
Aber zuerst musst du die Hinweise von Klaus umsetzen.

Gruß
Josef

Franz-70

Hallo zusammen,
vielen Dank für die schnellen Antworten.
@Klaus
Vorab, ich bin Wiedereinsteiger, habe vor >15 Jahren mit Acc97 einige Zeit gearbeitet und bin
jetzt durch eine gewisse Zwangslage zum Wiedereinstieg gekommen.
Der Einstieg in Acc2007 war gelinde gesagt brutal.
An meinen Benutzernamen erkennt man übrigens nicht nur den Vornamen, sondern auch mein Alter.
Jetzt zu deinen Hinweisen:
Das Jahr entspricht auch das Lieferjahr. Mir erschien es einfacher, mit einer 4er Jahreszahl.
Sie entsteht in einer Abfrage und daraus in einem Formular der Jahr_Key.
(Ich habe gedacht, mit meinen Fähigkeiten durchzukommen, bei den Kombifelder hakt es gewaltig).
Die tblWareneingang habe ich verkürzt dargestellt. Wir unterscheiden noch bei jeder Produktgruppe
die erhaltene Packungsgröße (Sack/Kiste/Kartonage), so dass sich bei mir jetzt ein Datensatz wie
folgt darstellt:
Supermarkt-X,  Lieferdatum, Brot-S,  Brot-Ki,  Brot-Ka, Gem-Ki, Gem-Ka, (Gem = Gemüse)
usw. mit Obst, Feinkost, Gefrierkost, Wurst, Süßigkeiten.
Ich sehe so, was wir an einen Tag, von welcher Firma (in einen Datensatz abgebildet) erhalten haben.
In den letzten Wochen habe ich die Datenbank mit etwa 1350 Datensätze (von 2013 an) gefüllt.
Daher wäre es extrem wünschenswert, wenn es auch in dieser dann nicht so optimalen Verfassung ginge.

@Josef
Ist schon klar, die Daten müssen aber erst einmal extrahiert werden.
Gruß
Franz

MzKlMu

#4
Hallo,
ZitatSupermarkt-X,  Lieferdatum, Brot-S,  Brot-Ki,  Brot-Ka, Gem-Ki, Gem-Ka, (Gem = Gemüse)
Das ist jetzt noch schlimmer. Du brauchst eine Tabelle für die Waren, jeweils ein Datensatz und eine Tabelle für die Verpackungsgrößen.
Die Tabelle für das Jahr ist schlicht und ergreifend überflüssig. Das Jahr lässt sich völlig problemlos aus dem Lieferdatum ermitteln und ggf. auch filtern.
In der Erfassungstabelle für die gelieferten Waren (die auch noch erstellt werden muss) gibt es dann einen Fremdschlüssel (FS) zum Wareneingang, einen FS zur Ware und einen FS zur Verpackungsgröße. Sowie ein Feld für die Menge.
Apropos Menge, brauchst Du keine einheitliche Mengenangabe, also auch bei Sack eine Umrechnung in Kg z.B. ?
Aus dieser Tabelle kannst Du alle Auswertungen über verschiedene Gruppierungen ableiten.
ZitatDaher wäre es extrem wünschenswert, wenn es auch in dieser dann nicht so optimalen Verfassung ginge.
Das halte ich für ausgeschlossen. Das gibt aufwendiger Krampf, sonst nix.
Stelle Dir mal vor, es kommt noch eine Ware (oder Verpackungsgröße) hinzu, kannst Du Dir den Aufwand vorstellen zur Anpassung. Und sag niemals nie.
Wobei ich denke, die erfassten 1350 DS lassen sich mit etwas Aufwand in die normalisierte Struktur importieren.

Übrigens, ich bin älter.  :P
Gruß Klaus

Franz-70

Hallo Klaus,

und ich habe gedacht, ich wäre hier der Saalälteste.

Ich verstehe ehrlich gesagt nicht, was du meinst.
Gibt es da eine Möglichkeit, der grafischen Darstellung?

Gruß
Franz

MzKlMu

Hallo,
hier mal das Beziehungsbild meines Vorschlags zur Umsetzung.
Abhängige Kombis werden hier nicht benötigt.
Und wie gesagt, das Jahr wird aus dem Datum ermittelt.

Übrigens, die Beantwortung von Fragen wäre auch nicht schlecht.
Zitatbrauchst Du keine einheitliche Mengenangabe, also auch bei Sack eine Umrechnung in Kg z.B. ?
Gruß Klaus

Franz-70

Hallo Klaus,

ich bin schon der Schnelligkeit wegen verwirrt, so dass ich Deine Fragen nicht
wahrgenommen habe.
Zu den Packungsgrößen: wir haben so Erfahrungswerte, die wir einsetzten.
Wenn wir noch wiegen müssten, könnten wir aufhören.
(Es gibt eine Abstufung je nach Produktgruppe: Sack-Kiste-Kartonage)
Wir bewegen in unserem Alter Tonnen!
Also erst einmal vielen Dank, sehe aber dass in Zukunft noch Fragen übrigbleiben.
Werde mich dann wieder melden.
Gruß
Franz

Franz-70

Hallo Klaus und auch Andere,

das Bedürfnis Fragen zu stellen, kommt schneller als erwartet.
Ich habe jetzt mind. 8 Std. versucht, die Vorgaben von Klaus in die Tat umzusetzen. Keine Chance.
Aus den 5 Tabellen habe ich eine Abfrage zusammengestellt mit allen Feldnamen aus
Tabelle tblWarenEingPos    und aus den anderen Tabellen: 
Lief_Key_F
Lieferdat
Firma_Kurz     
PackGroesseBez.  und die
Waren_Bez

Wenn ich die Abfrage (auch über ein Formular) mit Daten füttere, kommt entweder die Fehlermeldung: ,,Access Datenbankmodul kann in der Tabelle ,tblWaren' keinen Datensatz mit passendem Schlüsselfeld ,Waren_Key_F' finden.
(Es sollte auch nicht, weil nicht eingebaut), oder aber wenn ich die Verknüpfungen ändere,  und es offensichtlich läuft, werden in den Tabellen mit ,,festen" Inhalten die vorgegebenen Inhalte nochmals angefügt, was auf eine nicht korrekte Verknüpfung schließen lässt, (z.B. in tblLieferanten werden nochmals die Firmen, oder in tblPackGroessen Sack, Kisten usw. angefügt).
Was mache ich nur falsch?

Gruß
Franz

MzKlMu

#9
Hallo,
zeige bitte das aktuelle Beziehungsbild.
Zitatoder aber wenn ich die Verknüpfungen ändere
Das kannst Du gleich wieder vergessen, die Verknüpfungen stimmen so und müssen nicht geändert werden, auch nicht in der Abfrage.
Abgesehen davon, dürfte es ausgeschlossen sein, dass Du in der Abfrage mit den 5 Tabellen Daten eingeben kannst. Zum einen sind grundsätzlich Formulare zur Dateneingabe erforderlich und zum anderen muss hier ein Hauptformular zur Anzeige der Wareneingangsdaten verwendet werden. In diesem Hafo wird der Wareneingang mit Datum erfasst und der zutreffende Lieferant per Kombi ausgewählt. Für dieses Hafo wird nur die Tabelle "tblWareneingang" benötigt. In dieses Formular wird ein Unterformular integriert das über die Schlüsselfelder (WarEing_Key und WarEing_Key_F) verknüpft werden muss. Datenquelle für dieses Ufo nur die Tabelle "tblWarenEingPos". Die Ware und die Packgröße werden jeweils per Kombi gewählt. Dann muss nur noch die Menge eingetragen werden.


Nachtrag:
Ich habe Dir das mal schnell eingerichtet. Schaue Dir auch mal die gruppierte Abfrage an.
Gruß Klaus

Franz-70

Hallo Klaus,

wow, das ist ja wirklich SUPER!!
Ich meine jetzt besonders das UFO-Endlosformular.
Ich habe ja, wie schon berichtet, etwa  1300 (Block) Datensätze, wo mindestens 2 Warengruppen enthalten sind (z. B. Obst und Gemüse). Von den Lebensmittelgeschäften bekommen wir aber bis zu 7 verschiedene Produkte, so dass aus den 1300 schnell >4000 hätten werden können. Das war noch bis vor einigen Minuten meine Annahme.
Mit dieser Anordnung aber, bleiben es nur 1300 und das ist für einen Ruheständler noch verkraftbar.
Bei der gruppierten Abfrage sehe ich ein reines Jahresdatum (4 stellig), so hatte ich es auch in meiner alten DB und eine Summierung der Mengen.
Was ich demnächst jedoch brauche, ist die Möglichkeit zu einer Jahreszusammenstellung zu gelangen, woraus hervorgeht, welche Lebensmittel wir (möglichst) zu welchem Lieferdatum und von welcher Firma erhalten haben.


Ich habe es übrigens zum Laufen bekommen. Ich bin auf den Vereinsrechner umgestiegen, da ist Acc2010 drauf. Da lief es auf Anhieb.

Vielen Dank Klaus das du uns hilfst.
Franz

MzKlMu

Hallo,
ZitatWas ich demnächst jedoch brauche, ist die Möglichkeit zu einer Jahreszusammenstellung zu gelangen, woraus hervorgeht, welche Lebensmittel wir (möglichst) zu welchem Lieferdatum und von welcher Firma erhalten haben.
Genau das macht die gruppierte Abfrage. Da ist noch eine Gruppierung auf die Packungsgröße enthalten, die Du entfernen kannst.
Ich glaube, Du hast die Abfrage nicht richtig verstanden.
Gruß Klaus

Franz-70

Hallo Klaus,

entschuldige, ich habe es nur es überflogen und gleich geantwortet.

Bin erleichtert, dass die Verarbeitung der alten Daten sich noch im Rahmen
halten, so dass ich einen "Tunnelblick" bekam.

Ich werde das gleich nachholen und es so übernehmen.

Nochmals herzlichen Dank

Franz

Franz-70

Hallo Klaus,

nachdem ich nun die Daten komplett eingetippt habe, alles wunderbar
funktioniert hat und auch die Berichte keine Fragen offen lassen,
möchte ich nochmals herzlich bedanken.

Franz