Neuigkeiten:

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

Mobiles Hauptmenü

Doppelte Einträge nicht berücksichtigen

Begonnen von bigrala, November 21, 2010, 02:41:12

⏪ vorheriges - nächstes ⏩

bigrala

Hallo,

ich habe eine Tabelle (tbl-Artikel-Erfassen), hier werden alle Kundenanlieferungen erfasst.
Zur Übersicht möchte ich ein Listenfeld in ein Formular platzieren, welches mir sagt an welchen Tagen der Kunde da war und wie oft insgesammt.

Das Problem, wenn der Kunde mehrere Artikel pro Tag anliefert, ist er auch mehrfach mit einem Datum pro Tag in der Tabelle enthalten.

Wie filtere ich nun aus der Tabelle die doppelten Tage heraus, so dass jedes Tagesdatum nur noch einmal angezeigt wird?

Ich hoffe das mein Problem mit einem Beispiel deutlicher wird.

Tabelle:

KdNr / ArtikelNr / Anlieferdatum

05 / 0815 / 20.05.2010
06 / 0816 / 23.05.2010
05 / 0815 / 23.05.2010
06 / 0915 / 23.05.2010
05 / 0815 / 24.05.2010
05 / 0915 / 24.05.2010
05 / 1015 / 24.05.2010
05 / 0815 / 26.05.2010

Soll: 
Ich möchte alle Tage an denen der Kunde 5 da war und die Anzahl der Besuche (Artikelnummern sind hier egal).

05 / 0815 / 20.05.2010
05 / 0815 / 23.05.2010
05 / 0815 / 24.05.2010
05 / 0815 / 26.05.2010

Anzahl = 4

Jedes Datum nur einmal angezeigt und Anzahl der Einträge = 4.

Wer kann mir sagen wie ich das mache (am besten StepByStep) oder kann mir einen SQL-Code dafür liefern?


Win7 (64bit) prof., Office 2010
__________________________________________
Mit 64 bit kann mein PC alles -
mit 64 Bit kann ich auch fast alles !

Hondo

Hallo,
ich würde bereits beim anlegen der Daten prüfen ob das Datum schon vorhanden ist.
Mach dein Formular dazu ungebunden und speichere die Daten per Einfügeabfrage.

Andreas


database

@bigrala

Unter deinem Profilbild ist zu lesen: "Ich seh alles"

Hmmm... hast du das schon gesehen - oder ignorierst du es nur ... ? http://www.access-o-mania.de/index.php?ind=community&op=netiquette

Wobei - um diesbezügliche Fragen und Unverständniserklärungen auszuschließen - dieser Punkt deine besondere Aufmnerksamkeit erreigen sollte:

ZitatCrossposting, d.h. das Posten der gleichen Frage in mehreren Foren zur gleichen Zeit, ist unerwünscht.

bigrala

Zitat von: Hondo am November 21, 2010, 08:22:42
ich würde bereits beim anlegen der Daten prüfen ob das Datum schon vorhanden ist.
Hallo Andreas,
ich bin gerade dabei für einen Bekannten eine 10 Jahre alte Access-Datenbank neu zu erstellen und muss die bereits vorhandenen Daten weiterverwenden.
Ich würde die Struktur heute auch anders anlegen, wollte jedoch versuchen die vorhandenen Daten nicht alle in neue Tabellen zu verschieben - nur wenns nicht anders geht.

Gruß bigrala
Win7 (64bit) prof., Office 2010
__________________________________________
Mit 64 bit kann mein PC alles -
mit 64 Bit kann ich auch fast alles !

ulli

Hallo,

ich habe gerade mal rumprobiert und folgende Abfrage als Datenherkunft eines Listenfeldes erstellt:

SELECT Tabelle1.KdID, Tabelle1.Tag, Count(Tabelle1.Tag) AS AnzahlvonTag
FROM Tabelle1
GROUP BY Tabelle1.KdID, Tabelle1.Tag
HAVING (((Tabelle1.KdID) Like [Formulare]![Formular1]![KdID]));

Damit zeigt die Liste jedes Datum nur einmal an, und dahinter steht die Anzahl der Besuche pro Tag.

oma

Hallo,

du solltest unsere Hinweise zum Crosssposting ernst nehmen, ansonsten bekommst du keine Antwort mehr.

Gruß Oma
nichts ist fertig!

bigrala

Zitat von: ulli am November 21, 2010, 17:51:15
Damit zeigt die Liste jedes Datum nur einmal an, und dahinter steht die Anzahl der Besuche pro Tag.
Hallo Ulli,
vielen Dank werde Deinen Code sobald wie möglich (vermutlich morgen) testen und Dir hier ein Feedback geben.
Kling und liest sich schon mal sehr gut, ist genau das was ich suche.

Danke bigrala
Win7 (64bit) prof., Office 2010
__________________________________________
Mit 64 bit kann mein PC alles -
mit 64 Bit kann ich auch fast alles !

oma

Hallo Ralf,

ich hoffe du hast meine Antwort auf die PN erhalten u. konntest daraus etwas entnehmen u. wir können das ledige Tema Crossposting zu den Akten legen.

Deine Frage bezüglich der Anzeigen ist einfach zu beantworten. Für dein Listenfeld im Formular kannst du als Datensatzherkunft schreiben:

select KdNr, Anlieferdatum, count(Anlieferdatum) AS Anzahl  from tbl_Artikel group by KdNr, Anlieferdatum


Gruß Oma
nichts ist fertig!

bigrala

Hallo zusammen,

@ ulli
Bei Deinem Code bekomme ich die Meldung "fehlender Operator im Abfrageblock Count fehlt"

SELECT [tbl-Artikel.KundenNr], [tbl-Artikel.AnlieferdatumAlt], Count [tbl-Artikel.AnlieferdatumAlt] AS AnzahlvonAnlieferdatumAlt
FROM [tbl-Artikel]
GROUP BY  tbl-Artikel.KundenNr],  [tbl-Artikel.AnlieferdatumAlt]
HAVING ((( [tbl-Artikel.KundenNr]) Like [Formulare]![frm-Kunden-Erfassen]![KdNr]));


Ich hoffe dass ich alles richtig eingetragen hab.

@Oma
Dein Code läuft super


Danke an alle die sich gedanken gemacht haben und sorry für die Aufregungen.
Wer was näheres wissen möchte kann mir ja mal eine PN schicken.

Gruß an alle
bigrala
Win7 (64bit) prof., Office 2010
__________________________________________
Mit 64 bit kann mein PC alles -
mit 64 Bit kann ich auch fast alles !