collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 86
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 3
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 13808
  • stats Beiträge insgesamt: 64126
  • stats Themen insgesamt: 8674
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Abfragekriterium auf Formularinhalt beziehen  (Gelesen 2590 mal)

Offline -Rockbiest-

  • Newbie
  • Beiträge: 43
Abfragekriterium auf Formularinhalt beziehen
« am: Oktober 23, 2014, 15:35:16 »
Hi,

bin neu hier, hab einige Foren durchforstet nach einer Lösung für mein spezieles Problem, konnte jedoch nichts hilfreiches finden. Entweder bin ich zu doof (bin Neuling in Acces und jeglicher Art von Programmierung) oder es ist tatsächlich kniflig, hoffe auf Hilfe.

Mein Problem:

Ich hab ein untergeordnetes Formular, dass sich nach drücken eines Buttons in einem übergeordneten Formular, öffnet. In dem übergeordneten Formular hab ich die Möglichkeit meine Suche nach bestimmten Aufträgen einzuschränken. Die dann verbliebenen Daten werden als Datensätze im untergeordneten Formular angezeigt. Jeder Datensatz entspricht einem Auftrag.

In diesem untergeordneten Formular habe ich zwei Button:

Der erste: Durch drücken des Buttons öffnet er mir eine Abfrage, wo ich vorweg der Spalte Auftragsnummer das Kriterium zugewiesen habe, nur die Auftragspositionen wiederzugeben, die der gerade geöffnet Auftragsnummer zugewiesen sind.

Dieser Button funktioniert!

Der zweite soll die Auftragspositionen aller herausgefilteter Auftragsnummern (also den Datensätzen des Unterformulars) anzeigen.... dies tut er nicht. Im Grunde habe ich ein Duplikat der ersten Abfrage, dem ich auch ein Kriterium für die Spalte Auftragsnummer zuweisen muss..... ich komm jedoch leider nicht drauf, wie das auszusehen hat...


Beispiel: Ich habe 10 Auftragsnummern mit jeweils X Auftragspositionen
Nach Eingaben im übergeordneten Formular gibt mit das Unterformular 3 Datensätze, die jeweils einer Auftragnummer entsprechen raus:

Unterformular Datensatz 1
Auftragsnummer: 1
Unterformular Datensatz 2
Auftragsnummer: 4
Unterformular Datensatz 3
Auftragsnummer: 7

Abfrage
Abfrage beinhaltet alle Auftragspositionen aller Auftragsnummern:
Also 10 mal X
Kriterium in der Spalte Auftragsnummer soll bewirken, dass nur die Positionen der zuvor herausgefilterten Datensätze aufgezeigt werden:

Auftragsnummer           Auftragnummerposition
1                                 X1
1                                 X2
1                                 X3
4                                 Y1
4                                 Y2
4                                 Y3
7                                 Z1
7                                 Z2
7                                 Z3

Bitte bitte, Hilfe!
« Letzte Änderung: Oktober 23, 2014, 17:03:33 von -Rockbiest- »
 

Offline MaggieMay

  • Global Moderator
  • Access Guru
  • *****
  • Beiträge: 3107
Re: Abfragekriterium auf Formularinhalt beziehen
« Antwort #1 am: Oktober 23, 2014, 16:56:37 »
Hallo,

so ganz habe ich es noch nicht verstanden. Zeig doch bitte mal den Code der beiden Abfragen und erkläre was an der zweiten Abfrage falsch läuft.
Zitat
Die dann verbliebenen Daten werden als Datensätze im untergeordneten Formular angezeigt.
Wie hast du das umgesetzt, gibt es VBA-Code dazu?
Freundliche Grüße
MaggieMay
 

Offline -Rockbiest-

  • Newbie
  • Beiträge: 43
Re: Abfragekriterium auf Formularinhalt beziehen
« Antwort #2 am: Oktober 23, 2014, 17:08:28 »
Hi hab mein Problem versucht noch ein wenig zu veranschaulichen.
Einfach nochmal oben schauen.

In der Abfrage ist eine Auflistung aller Auftragspositionen aus allen Aufträgen
Ansonsten Naja der erste Button funktioniert simpel:

Wie [Forms]![Frm_Unterformular].[Auftragsnummer]

Dann zeigt er mir nur die Auftragspositionen der Auftrags, welches im Formular gerade geöffnet ist.

Der zweite Button soll aber alle Auftragspositionen der Aufträge (Datensätze) anzeigen, die eben in dem Unterformular gelistet sind.
 

Offline MaggieMay

  • Global Moderator
  • Access Guru
  • *****
  • Beiträge: 3107
Re: Abfragekriterium auf Formularinhalt beziehen
« Antwort #3 am: Oktober 23, 2014, 17:19:59 »
Zitat
Nach Eingaben im übergeordneten Formular gibt mit das Unterformular 3 Datensätze, die jeweils einer Auftragnummer entsprechen raus
Ich wiederhole meine Frage: Wie setzt du das um?

Basierend auf dieser Auswahl sollte doch Button-2 die Positionen anzeigen, also ist es nicht uninteressant wie die Auswahl der Aufträge bzw. die Filterung des Unterformulars vorgenommen wird.
Freundliche Grüße
MaggieMay
 

Offline -Rockbiest-

  • Newbie
  • Beiträge: 43
Re: Abfragekriterium auf Formularinhalt beziehen
« Antwort #4 am: Oktober 23, 2014, 17:32:43 »
Oki hatte gehofft die Infos sind ausreichend.
Dann wird es jetzt wohl sehr komplex:

In diesem übergeordneten Formular hat man sowohl die Möglichkeit zu filtern...mit einem Button, also auch einen neuen Auftrag anzulegen über einen anderen Button.

Die ganzen Informationen nach dennen man später filtern kann, werden zu Anfang in einem weiteren Unterformular angelegt.

Beispiel:

Auftragsnummer: 11
Info X: ABC
Info Y: BCD
Info Z: CDE

diese Informationen werden übernommen und automatisch in Hilfstabellen übertragen.
Danach hat man die Möglichkeit über einer weiteren Tabelle, die Auftragspositionen aus Excel heraus zu importieren.

Die Abfrage sucht sich dann alle Daten zusammen:

Auftragsnummer aus der Tabelle Auftragsdatenbank
Info X aus der entsprechenden Hilfstabelle
Info Y aus der entsprechenden Hilfstabelle
Info Z aus der entsprechenden Hilfstabelle
und die dazu verknüpften Auftragspositionen aus der Tabelle mit allen Auftragspositionen.
Eine Auftragsposition entspricht also jeweils einem Datensatz in der Abfrage.

Und über ein Kriterium in der Spalte "Auftragnummer" möchte ich es einrichten, dass nur die Datensätze (Auftragspositionen) angezeigt werden, die zu den in dem Unterformular herausgefilterten Auftragsnummern passen!

 

Offline MaggieMay

  • Global Moderator
  • Access Guru
  • *****
  • Beiträge: 3107
Re: Abfragekriterium auf Formularinhalt beziehen
« Antwort #5 am: Oktober 23, 2014, 17:35:06 »
Zitat
Dann wird es jetzt wohl sehr komplex
Ich kann es auch einfach auf den Punkt bringen:
Genauso wie du das Unterformular filterst musst du die Abfrage hinter Button-2 filtern.

Zitat
die Möglichkeit zu filtern...mit einem Button
Der Code dieses Buttons könnte hierzu evtl. Aufschluss geben...
Freundliche Grüße
MaggieMay
 

Offline -Rockbiest-

  • Newbie
  • Beiträge: 43
Re: Abfragekriterium auf Formularinhalt beziehen
« Antwort #6 am: Oktober 23, 2014, 17:59:24 »
Ohhhh mist...

hatte gehofft, man kriegt es irgendwie einfacher hin...
Das Problem bei der Filterung ist..... dass viel über Hilfstabellen läuft.
Ich versuch es mal zu Rekonstruieren (bin grad nicht auf der Arbeit):

Übergeordnetes Formular hat ein Kästchen
Info XY: Dort ein Listenfeld aus dem man seine Auswahl wählen kann (verknüpft über eine Hilfstabelle heraus)

Haupttabelle
AuftragsID           Auftragsnummer
1                         110
2                         111
3                         112

Hilfstabelle1
AuftragsID                      HilfsID
1                                    1
2                                    1
3                                    2

Hilfstabelle2:
HilfsID                             InhaltListenfeld
1                                     A
2                                     B
3                                     C


Ich hatte es dann als Kriterium in SQL versucht zu lösen (ohne eine Ahnung von SQL zu haben):

SELECT * FROM [Haupttabelle]
  WHERE AuftragsID IN
   (SELECT * FROM [Hilfstabelle1]
     WHERE HilfsID IN
       (SELECT * FROM [Hilfstabelle2]
         WHERE InhaltListenfeld = [Forms]![ÜbergeordnetesFormular].[InfoXY]

Hat nicht funktioniert :(
 

Offline MaggieMay

  • Global Moderator
  • Access Guru
  • *****
  • Beiträge: 3107
Re: Abfragekriterium auf Formularinhalt beziehen
« Antwort #7 am: Oktober 23, 2014, 18:29:17 »
Die Frage ist und bleibt: Wie filterst du das Unterformular?
Denn es gelingt dir doch offensichtlich, dort nur die im HF ausgewählten Aufträge anzuzeigen.
Freundliche Grüße
MaggieMay
 

Offline -Rockbiest-

  • Newbie
  • Beiträge: 43
Re: Abfragekriterium auf Formularinhalt beziehen
« Antwort #8 am: Oktober 30, 2014, 18:43:54 »
Hallo,
sorry für die späte Antwort.
Das Problem hat sich mitlerweile gelöst, ich hatte einn ganz dämlichen Denkfehler.
Ich hab so wie du es vorgeschlagen hast, in der Abfrage einfach genauso gefiltert wie ich es im Unterformular gemacht habe.

Vielen Danke für die Denkhilfe :D