Neuigkeiten:

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

Mobiles Hauptmenü

Duplikate sortieren (an den Anfang oder das Ende stellen)

Begonnen von Erzfreund, August 11, 2010, 08:51:43

⏪ vorheriges - nächstes ⏩

Erzfreund

Hallo liebe Office-Profis,

erstmal möchte ich mich hier mal vorstellen! Ich heisse Marcus, komme aus Hamburg, bin 37 Jahre jung und arbeite in einem Massenbriefversand ;)!
Leider habe ich von Access überhaupt keine Ahnung und deshalb denke ich, dass ich hier richtig bin.

Habe auch schon (wie in Foren üblich) die Suchfunktion benutzt, doch leider keine Antwort auf meine Frage erhalten. Deshalb jetzt einmal zu meiner Frage:
Ich habe eine Access Datenbank von unserem Kunden bekommen mit ca. 16.000 Adressen. Nun habe ich das Problem, dass diese Datei viele doppelte Adressen enthält (was auch richtig ist).
Aus dieser Datei muss ich einen Serienbrief machen und dann mit der Post verschicken. Leider soll ich die doppelten Adressen nicht einzeln verschicken, sondern alle gemeinsam in einem großen Umschlag. (Einige bekommen 50 Briefe, einige 49, einige 48... usw.)
Es wäre schön, wenn mir jemand erklären könnte wie ich diese doppelten Adressen sortieren kann und an den Anfang oder an das Ende der Tabelle stellen kann, so dass ich die Adressen die einzeln vorkommen maschinell kuvertieren kann und die Dubletten manuell abgreifen kann. Und am allerbesten wäre es, wenn die Adressen so sortiert werden, dass derjenige der 50 Briefe bekommt oben steht, anschliessend der der 49 Briefe bekommt usw.
Ich hoffe ich habe mich einigermassen verständlich ausgedrückt.

Schon jetzt vielen Dank an Euch für Eure Mühe einem Accesslegastheniker zu erklären wie es geht  :D .

Viele Grüße,
Marcus

Ach ja. Habe vergessen zu schreiben, dass ich Access 2007 habe.

Sulu

Hallo Marcus,

für mich hört sich dein Problem nach einem Fall für eine Gruppierungsabfrage aus.
Database hat hier mal was dafür geschrieben. Vllt. hilft dir das schon weiter.

http://www.access-o-mania.de/forum/index.php?topic=12804.msg71267#msg71267

LG
Sulu

Erzfreund

Vielen Dank für den Link Sulu, doch leider kann ich mit dem Code von Database leider nix anfangen, da ich nicht weiß wie man sowas behandelt. Wie gesagt, ich bin doof wie ein Ei was Access angeht.

Viele Grüße,
Marcus

Sulu

Kannst du mir dann mal sagen, was du für Spalten hast? Also vor allem, welche dann davon auch wirklich am Ende benötigt werden.
ich könnte dir dann mal einen kurzen Code schreiben.
Oder wenn du möchtest eine kleine Demo.mdb ^^

LG
Sulu

Erzfreund

Hallo Sulu,

habe insgesamt 57 Spalten (alle werden benötigt, da es Seriendruckfelder sind), von denen aber nur nach einer oder zwei sortiert werden muss.
Das wäre die "vz_name" (Vorname und Nachname), sowie noch die Straße "strasse_name".

Ich hoffe das ist das was Du meinst  ;)

Viele Grüße,
Marcus

Sulu

#5
Es ist auf jeden fall schon näher dran.

Aber wenn du Name und Straße zum gruppieren nutzt, bleibt doch jeder Eintrag einzeln. Dein ziel war es doch die gleiche Adresse zusammenzufassen und dann sowas herauszubringen wie "an die Bewohner des Hauses" oder habe ich dich da flasch verstanden?
Und noch eine frage hätte ich: Was ist dein Primärschlüssel? hast du auch eine Spalte, in der die Anzahl Exemplare pro DS stehen?
(Also es soll ja Menschen geben, die z.B. 2 gleiche Zeitungen abboniert haben ^^)

LG
Sulu

/edit: Ach noch eine Kleinigkeit: vllt. kannst du kurz ein paar erfundene DSe kreieren, die die Krieterien erfüllen, die du zusammenfassen möchtest, und hier dann hochladen...

Erzfreund

Moin Sulu,

es geht in der Tabelle um Grundstückseigentümer in einem Deichgebiet hier in Norddeutschland. Jetzt sind die Jahresrechnungen fällig und viele Einwohner in der Gemeine haben 2 oder mehr Grundstücke für die sie einen Beitrag zahlen müssen (z.B. die Forstverwaltung Niedersachsen hat 54 Grundstücke dort und würden 54 Briefe bekommen). Angeschrieben werden jedoch nicht die einzelnen Grundstücke, sondern die Adresse des Grundstücksinhabers. Also im Falle der Forstverwaltung bekommt die Forstverwaltung Niedersachsen 54 Briefe an ein und dieselbe Adresse jedoch mit verschiedenen Beträgen der unterschiedlichen Grundstücksgrössen.
Es müssen also alle Adressen erhalten bleiben. Nur wäre es schön, diese so zu sortieren, dass die mehrfach Adressen an den Anfang oder das Ende der Tabelle sortiert werden.
Im Moment ist die Tabelle so aufgebaut, dass zwar die gleichen Adressen immer hintereinander stehen (z.B. Alle 54 gleiche Adressen der Forstverwaltung sind hintereinander), doch leider sind zwischen den Mehrfachadressen auch Einzeladressen (von Leuten die nur ein Grundstück besitzen) und diese würde ich gerne komplett am Anfang oder Ende der Tabelle haben.

So in etwa sieht die Tabelle aus: Das Semkolon soll die Spalte signalisieren

Vorname Nachname; Strasse; PLZ; Ort; Beitrag; Schulden aus Vorjahr
Peter Meyer; Musterstr. 1; 12345; Musterstadt; 100,54 Euro; 25,23 Euro
Peter Meyer; Musterstr. 1; 12345; Musterstadt; 22,54 Euro; 21,23 Euro
Peter Meyer; Musterstr. 1; 12345; Musterstadt; 33,54 Euro; 5,23 Euro
Peter Meyer; Musterstr. 1; 12345; Musterstadt; 44,54 Euro; 19,23 Euro
Max Mustermann; Teststr. 12; 54321 Teststadt; 25,20 Euro; 0 Euro
Jessica Müller; Officestr. 1; 98765 Officestadt; 12,22 Euro; 13,00 Euro
Jessica Müller; Officestr. 1; 98765 Officestadt; 2,22 Euro; 9,00 Euro

Ich hoffe das ist irgendwie verständlich.

Viele Grüße und schon einmal vielen Dank für Deine Mühe.
Marcus



Sulu

Hi Marcus,

jetzt habe ich dein Problem verstanden ;)

Also zuerst einmal ist dein Problem nicht mit einer einfachen Sortierung lösbar.
Allerdings kannst du folgendes versuchen:

Du erstellst eine Abfrage, die deine DS gruppiert und durchzählt und dann eine zweite, die mit der ersten verknbüpft ist, in der du nach der aus Abfrage 1 gezählten Anzahl sortierst. Dann sollten die Daten nach Anzahl sortiert sein.

Ich brauch noch etwas mehr Zeit um dir den Code zu basteln, schreib ihn dir dann aber.

LG
Sulu

PS: haben deine DSe Primärschlüssel?

Erzfreund

Schande über mein Haupt! Was ist DS? und was meinst Du mit "haben Deine DSe Primärschlüssel"?
Mach Dir jetzt bitte nicht in die Hose vor lachen. Bin halt aboluter Accessidiot...!

Viele Grüße,
Marcus

oma

Hallo,

mit 2 Abfragen sollte das einfach klappen ( evt. kannst du beide Abfragen auch verschachteln)

1. Abfrage qryAbfrage1:

select tblAdressen.Namen,
tblAdressen.Straße,
tblAdressen.PLZ,
tblAdressen.Ort,
count (tblAdressen.Namen) AS Anz
from tblAdressen
group by tblAdressen.Namen, tblAdressen.Straße, tblAdressen.PLZ, tblAdressen.Ort


und damit 2.Abfrage qryAdressen2:

select qryAdressen1.Namen,
qryAdressen1.Straße,
qryAdressen1.PLZ,
qryAdressen1.Ort,
qryAdressen1.Anz,
tblAdressen.Betrag1,
tblAdressen.Betrag2
from qryAdressen1 inner join tblAdressen on(qryAdressen1.Ort = tblAdressen.Ort) AND (qryAdressen1.PLZ = tblAdressen.PLZ)
and (qryAdressen1.Straße = tblAdressen.Straße) and (qryAdressen1.Namen = tblAdressen.Namen)
order by qryAdressen1.anz desc



Gruß Oma
nichts ist fertig!

Erzfreund

Hallo Oma,

Du musst mich leider wie einen Fachidioten behandeln.
Wie ich Deine Codes in die Zwischenablage kopiere weiß ich  ;) ... nur leider, was dann? Wo muss ich das bei Access eintragen um ein Ergebnis zu sehen? Und muss ich in Deinen Code die genaue Bezeichnung der einzelnen Spalten eintragen?
z.B. tblstrasse_name, statt tblAdresen.Straße,?
Oh kacke, ich glaube die Leute halten mich jetzt für den dümmsten Menschen der Welt.

Viele Grüße,
Marcus

MzKlMu

Gruß Klaus

oma

#12
Hallo,

1.  Du musst im Code deinen Tabellen- und deine Feldnamen einsetzen wie z.B Namen ersetzen mit den Feldnamen für Vorname Nachname (stehen in einem Feld?)

2. du musst eine Abfrage erstellen; dort in Entwurfsansicht Menüpunkte Ansicht ---> SQL-Ansicht und dort den Code einsetzen

Gruß Oma


PS:  Mit Crossposting machst du dir keine Freunde!
nichts ist fertig!

Erzfreund

#13
@MzKlMu
Ja! Ist auch von mir. Aber da ich dort lange keine Antwort bekommen habe, dachte ich mir es mal hier zu versuchen. Weil das hier wohl ein reines Access Forum ist.

Viele Grüße,
Marcus

Erzfreund

#14
@Oma

Sorry! Das mit dem Posten in verschiedenen Foren wusste ich nicht. Bin leider nicht so firm was die Forenetikette angeht. Aber man lernt ja nie aus. Werde das andere Posting im Office Forum jetzt löschen.
Wenn ich auf Ansicht ---> SQL-Ansicht gehe. Steht dort schon etwas drin. Kann ich das einfach löschen? Oder soll ich den/die Code/Codes einfach unten dranhängen?

Vielen Dank für Eure Hinweise,
Marcus