Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Spalten sortieren nach Abfrage über Felder

Begonnen von datekk, März 04, 2013, 17:16:42

⏪ vorheriges - nächstes ⏩

datekk

Hallo :)

Ich habe folgende Frage zu Access 2010:

Ich habe folgenden Tabellenkopf:

Kunde; Jan.; Feb.; März; Apr.; Mai bis Dezember

Die Spalten Januar bis Dezember enthalten jeweils ein Häckchen feld welches zeigt, in welchem Monat ein Kunde aktiv wird. Die Daten werden also wie folgt erfasst:

A; x;;;x;;;x
B; x;x;;x;x

Wie schaffe ich es nun, über ein Formular die Kunden in einer Tabelle anzeigen zu lassen, welche z.B. im Februar aktiv sind, welche also im Februar ein häckchen haben. Dabei soll es keine Rolle spielen, ob sie z.B. im Mai auch aktiv sind. Es müsste auch so funktionieren, dass die Tabelle anzeigen soll, welche Kunden u.a. im Februar und im März ein Häckchen haben.

Bisher habe ich es wie folgt versucht:
In einem neuen Formular habe ich für jeden Monat ein Kontrollkästchen Feld eingerichtet, in dem ich die Monate anhaken kann, welche mir später angezeigt werden sollen. Über die o.g. Tabelle habe ich eine Abfrage eingerichtet und in den Eigenschaften in jede Spalte von Jan. bis Dez. dann z.B. [Formulare]![NEU_Formular]![Kont_Jan] als Kriterium eingefügt.

Das funktioniert aber nicht so richtig.

Es sollte einfach so funktionieren, als ob ich in einer Spalte der Abfrage, z.B. im Februar und März einen Filter setze und die anzeigt bekomme, die ein aktiviertes Häkchen in diesen Monaten haben. Dabei sollen aber nicht die Kunden ausgeschlossen werden, die z.B. nur im Februar ein Häkchen haben und keines im März haben.

Nochmal ein Beispiel:

Kunde A hat Häckchen bei Februar, März, Mai, Juni, August, September, November, Dezember
Kunde B hat Häckchen bei Februar, Mai, August, November
Kunde C hat Häckchen bei Januar, April, Juli, Oktober

nun möchte ich selektieren nach Juli und August und müsste folgende Ausgabe erhalten:

Kunde A
Kunde B
Kunde C

oder Februar:

Kunde A
Kunde B

Wie wirds gemacht? Würde mich über Vorschläge freuen.
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MzKlMu

Hallo,
die Grundstruktur ist bereits falsch. Das ist eine n:m Beziehung zwischen Kunde und Monat.
Hierzu sind 3 Tabellen notwendig.

- Kunden
- Monate (einfach als Zahl 1-12)
- Zuordnung Kunde zu Monat

In der 3- Tabelle wird nur die KundenID und die Monatszahl gespeichert in der der Kund aktiv ist.
Hat der Kunde 3 Monate, dann sind das 3 Datensätze.

So sieht das aus:

KundeID         Monat
   1             1
   1             3
   1             5
   2             2
   2             6
   2             9


Dein Wunsch lässt sich dann völlig problemlos realisieren.
In einer Abfrage den Monat 3 als Kriterium und Du hast alle Kunden des Monats 3.

Mit Deinem jetzigen Aufbau kommt Access nicht zurecht, da das nicht datenbankkonform ist.
Gruß Klaus

datekk

Alles klar.. So hatte ich es bereits, fand es aber ziemlich umständlich. Schade, dass dieser Weg nicht funktioniert.
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MzKlMu

Hallo,
der andere Weg ist der Umständliche. Du hast einen enormen Aufwand zur Auswertung und langsam wäre diese auch.
Lege ein Formular für den Kunden an und darin ein Unterformular mit der Zuordnungstabelle.
Und statt Haken trägst Du einfach die Monatszahl ein, die weis man ja auswendig.
Die KundenID wird bei einem verknüpften Unterformular automatisch übertragen.
Gruß Klaus

datekk

#4
OK, bin nun wieder bei der alten Methode. Das Formular sieht nun so aus, dass ich oben ein Kombinationsfeld habe, welches die Monate von Januar bis Dezember aus der Tabelle "Monatsdaten" abruft. Nach der Auswahl wird eine Anfrage aktiviert, welche die Ergebnisse liefert.

Ein anderes Formular soll mir Konkret einen Kunden und seine Monate anzeigen. Auch hier gibt es oben wieder ein Kombinationsfeld, in dem ich den Kunden auswäheln kann. Auch hier wird wieder eine Anfrage aktualisiert und das Ergebnis gezeigt.

Ist allerdings für diesen Kunden noch keine Monatsübersicht erfasst bleiben alle Felder leer und ich kann neue Daten erfassen. Hier ist es allerdings so, dass ich jedes Mal bei einem neuen Datensatz wieder den Kundennamen erfassen muss. Die Daten sind zwar bereits in einer Liste zum auswählen, aber kann das nicht automatisch gleich den Kunden aus dem obigen Kombinationsfeld übernehmen? Es könnte sonst zu fehleingaben kommen...???
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MzKlMu

Hallo,
baue das wie vorgeschlagen mit Hafo und Ufo auf, dann wird die KundenID automatisch übernommen.

Wenn Du nicht klar kommst, beschreibe mal die 3 Tabellen und die relevanten Felder.
Gruß Klaus

datekk

Nein, leider Steht bei ID immer nur "(Neu)". Kann man das einstellen, dass der neue Datensatz die ID der Auswahl des Kombinationsfeldes übernimmt und man sich somit auf die Auswahl der Monate beschränken kann?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MzKlMu

Hallo,
und warum ignorierst Du völlig meine Hinweise auf Hafo und Ufo?

Im Anhang ein einfaches Beispiel. Im Kombi kannst Du den Monat auswählen oder die Zahl eintragen.
Öffne einfach das Formular "Formular1".
Schaue Dir auch die Beziehungen im Beziehungsfenster an.

[Anhang gelöscht durch Administrator]
Gruß Klaus

datekk

Also vielen Dank für die Hilfe... Ich versuche das nun mit dem UFO, aber wie kann ich das UFO an das Kombifeld binden? Es gelingt mir nicht... Im Kobifeld steht in der Layoutansicht immer ungebunden. Wenn ich das Feld "ID" im UFO an das Kombinationsfeld binde, so wird die Auswahl aus dem Kombifeld zwar in das ID Feld übernommen, das wars aber auch. Der entsprechende Datensatz wird nicht aufgerufen.

Wie funktioniert also die Bindung zwischen dem Kombinationsfeld im HFO mit den Datensätzen im UFO?

Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MzKlMu

Hallo,
das Kombi dient nur dem Suchen und muss ungebunden sein.
Das Kombi sucht den Datensatz und stellt diesen dar. Die Verbindung erfolgt über die Verknüpfung von Hafo und Ufo, nicht über das Kombi.
Gruß Klaus

datekk

Ja, aber wie schaffe ich es, dass das Kombi den Datensatz sucht?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MzKlMu

Hallo,
ZitatJa, aber wie schaffe ich es, dass das Kombi den Datensatz sucht?
Ist doch drin in meinem Beispiel, schaue es Dir an.
Das ist mit etwas VBA Code gelöst.
Gruß Klaus

datekk

Ja und wo genau wurde VBA genutz? Ich finde es nicht....
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

datekk

Ahhh ich habs.... Nun, mit VBA kenne ich mich gar nicht aus... Das lässt sich nicht anders lösen?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MzKlMu

Hallo,
lass das Kombi weg, dann kannst Du einfach durch die Kunden blättern, das geht auch, wenn es nicht zu viele Kunden sind.
Ein Kombi zum Suchen geht nicht ohne VBA.
Gruß Klaus