Neuigkeiten:

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

Mobiles Hauptmenü

Laufzeitfehler 3079 - Filtern im Formular

Begonnen von nimora, Mai 24, 2016, 10:51:19

⏪ vorheriges - nächstes ⏩

nimora

Hallo,

Ich möchte in einem Formular, welches auf einer Abfrage beruht einen eigenen Filterknopf nutzen.

SQL in der Abfrage:

SELECT tblKunden.*, tblProdukte.VerantIDRef
FROM tblKunden INNER JOIN tblProdukte ON tblKunden.ProduktIDRef = tblProdukte.ID;


der Filtercode:

Me.Filter = "tblProdukte.VerantIDRef = 19"
Me.FilterOn = True


Die Tabellen sind über die ID in tblProdukte mit einer RefID in tblKunden verknüpft.

Letztlich möchte ich mir im Formular alle Kunden anzeigen lassen, die Produkte eines bestimmten Produktverantwortlichen gekauft haben

Leider bekomme ich immer wieder den Laufzeitfehler 3079

Das angegebene Feld 'tblProdukte.VerantIDRef' kann sich auf mehre als eine der Tabellen beziehen, die im FROM-Abschnitt der SQL-Anweisungen angegeben werden. Ich hatte gedacht, dass das durch die vorangestellte Tabelle tblProdukt. geregelt würde. Scheinbar ist dem nicht so.

Was mache ich falsch? :(

Danke

MaggieMay

Hallo,

sorge mit Hilfe von Aliasnamen für eindeutige Feldnamen in der Abfrage, das ist die sauberste Lösung.

BTW:
Bist du sicher, dass diese Verknüpfung korrekt ist:
tblKunden.VerantIDRef = tblProdukte.ID
Freundliche Grüße
MaggieMay

nimora

Danke schön.

Das mit den Aliasnamen versuche ich gleich mal.

Zur Verknüpfung: evtl. ist die Namenswahl nicht gut. Es gibt bei den Kunden die Möglichkeit ein Produkt auszuwählen, daher die Verknüpfung mit der ProduktID. In der Tabelle tbl.Produkte ist wiederum eine RefID zu den Verantwortlichen, daher denke ich, dass es korrekt ist.

In der Abfrage an sich kommt es so, wie gewünscht und dort kann ich auch filtern. nur eben im Formular nicht.

Dienen die Aliase nur der Übersicht oder korrigieren sie auch einen inhaltlichen Fehler?

MaggieMay

Ich würde sagen, Aliasnamen dienen meist der Vereinfachung, und in deinem Fall der Eindeutigkeit der Feldnamen.
Freundliche Grüße
MaggieMay

nimora

hat auch funktioniert. :) vielen Dank.

dennoch die Verständnisfrage: warum wird der Feldname nicht akzeptiert, obwohl es diesen sowohl in der Tabelle, als auch in der ganzen db nur einmal gibt?

MaggieMay

Wenn der Feldname eindeutig ist, musst du den Tabellennamen beim Filter weglassen.
An der Stelle weiß Access offenbar nicht, woher das Datenfeld kommt, da liegt nur das Ergebnis der Abfrage vor, nicht aber deren Code - zumindest wäre das eine Erklärung.
Freundliche Grüße
MaggieMay

nimora