Neuigkeiten:

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

Mobiles Hauptmenü

Abfragekriterium aus Tabelle einlesen

Begonnen von Rinaldobachi, Dezember 09, 2010, 21:21:50

⏪ vorheriges - nächstes ⏩

Rinaldobachi

Hallo !
Ich habe nach langer Suche in den vorhandenen Beiträgen aufgegeben, ich bin Anfänger und verstehe einen Teil davon nicht.
Deshalb hab ich warscheinlich auch nichts gefunden, was ich auf mein Problem übertragen könnte.

In meiner Abfrage gibt es u.A. das Feld "Kundennummern".
Momentan steht dort im Feld für Kriterien sowas wie:  <>1355 und <>1218 und <>1325 und <>895 etc.,
d.h. ich schliesse bestimmte Kunden vom Ergebnis aus.
Ausserdem gibt es das Feld "Artikel",
dort gibt es das Kriterium  wie "CAM*" oder wie "MON*" oder wie "*TAST*",
d.h. ich will nur ein paar bestimmte Artikelarten anhand von Teilbegriffen herausfiltern.

Kann ich das komfortabler, indem ich eine Tabelle mit den Kundennummern bzw. im anderen Fall den Teilbegriffen erstelle
und diese im Kriterienfeld angebe ?

sorry, falls das Thema schon ähnlich behandelt wurde

Vielen Dank im voraus für jede Art von Hilfe



oma

Hallo,

wenn du mehrere Werte ausschleißen willst, kannst du für die Kundennummer als Kriterium schreiben

Nicht In ("1355";"1218";"1325")  falls die Nummern Text sind , bei Zahl ohne Anführungszeichen.

In SQL sieht das dann so aus:

WHERE Kundennummer Not In ("1355","1218","1325")

Das mit den Tabellen habe ich nicht verstanden?


Gruß Oma
nichts ist fertig!

Rinaldobachi

Hallo,
danke für die Antwort.

Ich möchte die einzelnen Werte, die normalerweise im Feld "Kriterium" eingetragen werden (=Kundennummern, die von einer Umsatz-summierung ausgeschlossen werden sollen)
stattdessen in einer Tabelle ablegen z.B. "tblAuszuschliessende_Kunden_bei_Umsatzabfrage"

Access soll nun diese Werte aus der Tabelle als Kriterium für die Abfrage verwenden.

So könnte ich eine Liste von Kunden anlegen, die für den Vertriebsumsatz nicht relevant sind.

Wenn ich eine weitere Abfrage gestalte, muss ich die ganzen Kundennummern nicht wieder neu im Feld "Kriterium" eingeben, sondern verweise auf die Tabelle, in der die Werte stehen.

Viele Grüße und danke im voraus


database

Hallo,

ZitatAccess soll nun diese Werte aus der Tabelle als Kriterium für die Abfrage verwenden

WHERE Kundennummer Not In (SELECT Kundennummer FROM tblAuszuschliessende_Kunden_bei_Umsatzabfrage)

HTH
Peter


Rinaldobachi

Hallo,
danke für die Hilfe.

Es funktioniert schon mal mit den Kundennummern.  :)

Bei der anderen Tabelle, die für die Eingrenzung von Artikeln vorgesehen ist, wird nicht nur nach Nummern verglichen,
sondern es kommen auch Teilbegriffe vor,
das heisst z.B.  "CAM*" oder "*TAST*".

Das funktioniert leider noch nicht.

Muss ich die Wildcards irgendwie anders angeben/ vom feststehenden Begriff trennen/ mit oder ohne Hochkomma ?

vielen Dank schon mal

Jonny

Hallo
in deinen ersten Beitrag hast du dir selber schon die richtige Antwort gegeben
Im Kriterium muss es heisen     wie "*abc*"
Das Schlüsselwort wie leitet eine Teilwertsuche bzw. einen Teilwertfilter ein.

Gruß

Johann

Rinaldobachi

Danke für die bisherige Hilfe !

Meine Auswertung ist jetzt fast fertig.


Nachdem ich alles probiert habe, was mir dazu einfiel, bleibt noch ein Problem:

Ich möchte meine 3 Abfragen (nebeneinanderstehend) in einem Übersichtsformular darstellen.

Es soll unter jeder Abfrage zugehörig die Gesamtsumme des Feldes "Umsatz pro Artikel" stehen.
(Das Feld ist in der Abfrage summiert, die Artikel sind nach ihrem Namen gruppiert.)

Ich kriegs nicht hin...

Wer kann mir auf die Sprünge helfen ?

oma

Hallo,

ZitatIch möchte meine 3 Abfragen (nebeneinanderstehend) in einem Übersichtsformular darstellen.


Du meinst sicher mit "Nebeneinanderstehend" , dass alle Felder der Abfragen gemeinsam dargestellt werden.

Du kannst mit einer 4. Abfrage alle Felder der 3 Abfragen darstellen; aber nur, wenn du die 3 Abfragen mit einem Schlüsselfeld (einem ID-Feld das in allen Abfragen enthalten ist) in der 4. Abfrage verknüpfen kannst.


ZitatEs soll unter jeder Abfrage zugehörig die Gesamtsumme des Feldes "Umsatz pro Artikel" stehen.
(Das Feld ist in der Abfrage summiert, die Artikel sind nach ihrem Namen gruppiert.)

"Unter jeder Abfrage" kann man keine Werte schreiben bzw berechnen. Access ist nicht Excel!

Soche Summen kannst in verschiedener Weise darstellen:
1.  Ein Formular mit allen Einzelwerten in DS  u. Summe im Formularfuß
2.  Darstellung der Summe mit Domänenfunktion in Formular
3.  Darstellung der Summe mit Aggregatfunktionen in Abfrage

Gruß Oma
nichts ist fertig!

Rinaldobachi

Hallo und danke nochmal für die bisherige Hilfe.

Ich weiss nicht, wo mein folgendes Problem zugeordnet werden sollte, drum häng ich es einfach hier dran.

Ich habe eine Tabelle, in der die Verkaufszahlen von Spezialkameras abgelegt sind (Anzahl, Kameratyp etc)

Das Problem:
im Feld "Kamera" wurden bisher nicht nur die Kameras selbst, sondern auch sog. Upgrades mit gespeichert.

Beispiel:

2x   KameraA
3x   KameraC
11x KameraD
7x   KameraD_Upgr._Farbversion
5x   KameraC
2x   KameraC_Upgr._Farbversion

Das heisst, der Kunde kauft immer den gleichen Kameratyp,
wenn er nichts weiter bestellt, war die Kamera mit schwarz/weiss -Sensor.
Wenn er aber den Upgrade auf die Farbversion mitbestellte, hatte die Kamera stattdessen einen Farbsensor eingebaut.

Im obigen Beispiel heisst das, es wurden
3x KameraC    mit s/w. Sensor
und
2x KameraC    mit Farbsensor
verkauft.

Was ich suche, ist eine Möglichkeit, die ganze Tabelle entsprechend zu "bereinigen", sie würde danach so wie rechts aussehen:

2x   KameraA                                    =  2x   KameraA
3x   KameraC                                    =  3x   KameraC
11x KameraD                                    =  4x   KameraD (m. s/w Sensor)
7x   KameraD_Upgr._Farbversion     =  7x   KameraD (m. Farbsensor)
5x   KameraC                                    =  3x   KameraC (m. s/w. Sensor)
2x   KameraC_Upgr._Farbversion     =  2x   KameraC (m. Farbsensor)

Die Verkaufsdaten sind archiviert und ändern sich nicht mehr, man kann also z.B. mit Aktualisierungsabfragen arbeiten
(beispielsweise die Farbupgrade-Anzahlen ins negative ändern, nach dem Motto    wenn Kameratyp   wie "*upgr*"  dann [Anzahl] =  -[Anzahl].
Wenn man dann das entsprechende Paar gruppiert, kommt immerhin die richtige Anzahl an s/w-Versionen raus)

Tja, in echt hab ich keine Ahnung, ob das überhaupt geht oder ob das mit gruppieren etc sinnvoll ist.
Vieleicht braucht man auch VBA dazu, da hab ich aber noch weniger Erfahrung :-(

Danke für jede Hilfe !


oma

Hallo,

ich würde das mit Aktualisierungsabfragen realisieren. Zunächst ein neues Feld "Farbversion" bilden.
Dann das Feld aktualisieren:
alle Felder mit Text  "s/w Sensor"  bei denen im Feld Kamera nicht *Upgr* steht
alle Felder mit Text "Farbsensor" bei denen im Feld Kamera ein *Upgr* steht

Danach in Feld Kamera *Upgr* löschen.

Das kommt davon, wenn man solche Felder auffüllt. Heftiger Verstoß gegen 1. Normalisierungsregel!

Gruß Oma
nichts ist fertig!

Rinaldobachi

Hallo,
ich fürchte, ich habe mich unpräzise ausgedrückt.

Lassen wir mal erst den Hintergrund mit Kameras u. Sensoren weg.


Ich habe einfach nur folgende Tabelle:

Anzahl    Verkaufter_Artikel

10           CAMC6
  3           CAMC6UPG
  5           CAMC7
  8           CAMC33
15           CAMC9
  5           CAMC9UPG

Und jetzt will ich die Anzahlen nach folgender Vorgabe "bereinigen":
wenn mit dem gleichen Kameranamen (z.B.CAM6) auch "...UPG"-Artikel verkauft wurden,
verringere die Anzahl der CAM6 um genau diesen Wert.

Also: es wurden 3x CAM6UPG verkauft, darum reduziere die Anzahl der CAM6 auf 7 Stück.

Die Idee unseres Vertriebs war:
Kunde bestellt erst mal eine "Standard"-Kamera (z.B. CAM6), die ist immer schwarz/weiss.
Wenn er Farbe will, kauft er das als "Upgrade" (CAM6UPG).

Und jetzt wollen sie im nachhinein wissen, wieviele farbige und wieviele s/w Kameras verkauft wurden.
Dies ist aber nur aufzudröseln, indem man jeweils verkaufte Kameraanzahl mit zugeh. Upgradeanzahl gegenüberstellt.

Natürlich wäre schöner gewesen, wenn sie eine s/w Kamera als "CAM6-s/w" und eine farbige als "CAM6-c"
verkauft worden wären, dann bräuchte ich nur noch zusammenzählen :-)

Ich hoffe, das hilft,
ist etwas verzwickt, aber ich hab die Verkaufsmethode nicht erfunden...

Viele Grüße
Rinaldobachi

database

Hallo,

ich habe mal versucht dein dargestelltes Verkaufszahlenproblem (schönes Wort oder?) in einem kleinen Beispiel darzustellen.
Schau dir den Lösungsvorschlag mal an ob der für deine Zwecke so geeignet ist?

Hintergrund:
2 Abfragen, die eine (qryOriginale)  holt die Originale, also jene Cams + Stückzahl aus der Tabelle tblVerkauf,
deren Name kürzer als 8 Zeichen ist - damit sind Namen mit UPG am Ende ausgeschlossen.

Die andere (qryUpgrades) holt jene Datensätze aus der Tabelle tblVerkauf, bei denen der Artikelname mit "UPG" endet,
also jene Cams und Stückzahlen, die in der Folge - in der qryVerkaeufe von den Stückzahlen der Originale abzuziehen sind.

In dieser 3. Abfrage (qryVerkaeufe) sind dann die beiden ersten Abfragen über die Artikelbezeichungen des Originals in Beziehung gesetzt.

Vielleicht kannst du es verwenden ?  ;)

Grüße
Peter

[Anhang gelöscht durch Administrator]

Rinaldobachi

Hallo database,
danke für die Unterstützung.
Ich habe gestern vergeblich versucht, abends weiterzukommen und u.a. deinen Vorschlag auszuprobieren.

Irgendwie war ich zu müde, um das Gewusel an Abfragen und Tabellen noch durchzublicken :-(

Drum eine Frage, die mich schon lange beschäftigt:
wie kann ich meine teilweise grausligen Namen ändern (z.B. qryUmsatzstatistik_Vertrieb_gruppiert_nach_CamNam),
ohne die Funktion der Datenbank zu stören (ich würde gern übersichtlichere Namen für meine Tabellen, Formulare etc. verwenden)


Ausserdem hätte ich gerne eine grafische Darstellung aller vorhandenen Beziehungen der Abfragen u. Tabellen untereinander,
kapiere aber nicht, ob und wie ich die Funktion unter "Extras" "Beziehungen" verwenden kann.

Hab ich die Möglichkeit, mir den kompletten Istzustand darzustellen ?
Ich kann zwar die vorhandenen Tabellen etc. in die Übersicht übernehmen, aber ich hatte mir gedacht, mit "Alle Beziehungen anzeigen" sehe ich die existierenden Verbindungen als Striche.
Stattdessen passiert beim drücken des Buttons garnix.

Langsam verliere ich den Überblick über den Bereich mit den Vertriebsabfragen (Welche Tabellenerstellungsabfrage war das nochmal, die mir die Tabelle xy aus dem Formular yz erzeugt ?)

Ausserdem:
wie kann ich in einem Abfrageentwurf die Breite der Spalten automatisch so einstellen, daß ich alles lesen kann ?

viele Grüße und sorry, wenn ich alle möglichen Themen mische, aber als Anfänger hat man ziiiiemlich viele Fragen gleichzeitig



database

Hallo,

leider finde ich auch nicht immer Zeit ALLE Fragen sofort zu beantworten ... ich geb' mir aber dennoch Mühe.

Zitatwie kann ich meine teilweise grausligen Namen ändern
Ich kenne das Problem nur zu gut - da bist du nicht alleine!
Das Problem ist erst so richtig entstanden als sich Microsoft entschlossen hat die erlaubten Bezeichnungslängen drastisch zu erhöhen. Davor war es klar, dass man sich auf aussagekräftige
Kurzbezeichnungen beschränkt. Langatmige Beschreibungen konnten auch damals in den Eigenschaften der Datenbankobjekte vermerkt werden.

Das mit der Namendsänderung ist so eine Sache! Wenn du da nicht SEHR vor- und umsichtig ans Werk gehst kann es schnell passieren, dass gar nix mehr geht.
Wenn du es versuchen willst bist du besonders gut beraten nach jedem erfolgreich abgeschlossenen Schritt eine Kopie der DB zu archivieren um nichts zu verlieren, wenn was schief geht.
Im Allgemeinen kann ich dir dabei raten, IMMER nur ein Objekt zu verändern und dann schrittweise JEDES Vorkommen des Objekts in der Datenbank aufzuspüren und peinlich genau zu ändern.
Das Problem liegt darin, dass du nichts durchgehend durchprobieren kannst, wenn nicht absolut ALLE Objekte eines Durchgangs geändert wurden.

Die graphische Darstellung der Beziehungen, die du da ansprichst nennt sich in der Fachprache DATENBANKDIAGRAMM.
Es zeigt in geordneter Weise alle Tabellen mit allen Feldern und den Beziehungen samt deren Wertigkeiten.
Zitat...sehe ich die existierenden Verbindungen als Striche...
wirst du auch sehen - nachdem du die Beziehungen hergestellt hast.
Einzig das Deklarieren von Primär- und Fremdschlüssel zeigt keine Beziehungslinien an.
Dazu ziehst du mit gedrückter linker Maustaste den Primärschlüssel auf den Fremdschlüssel der Detailtabelle und bestätigst danach die referenzielle Integrität.
Vorausgesetzt, dass Primärschlüssel und Fremdschlöüssel vom gleichen Datentyp sind sollte das recht einfach und schnell bewerkstelligt sein.
Wenn du das mit allen beteiligten Tabellen durchführst, wirst du ein übersichtliches Datenbankdiagramm 'zusammenschieben' können.
Sie hierzu mal auch in die Onlinehilfe von Access...

Zitatwie kann ich in einem Abfrageentwurf die Breite der Spalten automatisch so einstellen, daß ich alles lesen kann
Automatisch gar nicht - aber du kannst auf die Spaltentrennlinie zwischen Spalten, von denen du die linke nicht vollständig siehst, doppelklicken - dann stellt sich die Spaltenbreite auf den Eintrag ein.

Ich denke aber trotz jeder Bereitschaft dir Dinge näher zu bringen, dir Erklärungen und Tipps zu liefern - wichtig für dich wird es sein, dich INTENSIV mit den Grundlagen von Access zu beschäftigen.
Der Fachbuchmarkt bietet da wirklich alles, was das Herz begehrt, vom Einsteiger bis zum Profi - jeder findet heute seine Bücher!
Wobei es IMMER wichtig ist und auch bleiben soll - es ist keine Schande was lernen zu wollen.

Wir sind hier im Forum wirklich gerne bereit JEGLICHE Hilfestellung zu geben - nur Grundkurse können wir halt auch schon aus Zeitgründen nicht abhalten.
Ich denke dass nicht nur die Fragesteller einer geregelten Beschäftigung nachgehen sondern auch diejenigen, die hier die Antworten (meist sehr erfolgreich) zu geben versuchen.
Soll absolut KEINE ermahnende oder abwertende Kritik an deinen Fragen darstellen sondern bitte einfach auch nur wieder mal als Erinnerung dienen,
dass sich Access-o-Mania auch als eine Plattform versteht, die Hilfe zur Selbsthilfe bietet.