noguards Geschrieben 2. Juni 2008 Teilen Geschrieben 2. Juni 2008 Hallo Leute, ich habe folgendes Problem: Ich hab in einer Tabelle für hunderte von Kunden deren Aufträge erfasst. Jetzt sollen (unter anderem) aus diesen Daten die Rechnungen zusammengebaut werden. Nu habe ich eindeutige Auftragsnummern pro Datensatz, dem Kunden zugeordnet wird der Satz über die miterfasste Kundennummer und es muss natürlich vermerkt sein in welcher Rechnung dieser Auftrag rausging. Also drei wichtige Felder: AuftragsNr, KuNr, RgNr Es sollen jetzt alle Auftragsnummern eines Kunden auf genau einer Rechnung mit genau einer Rechnungsnummer erfasst werden. Wie kriege ich Access erklärt das er die Daten nach KuNr zusammenfassen soll und allen Datensätzen mit gleicher KuNr die gleiche RgNr zuweisen soll? Und woher weiß ich wie die aktuelle RgNr lauten muss? Die Tabelle ist ja nicht danach sortiert, wie finde ich raus welche RgNr schon vergeben sind? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 2. Juni 2008 Teilen Geschrieben 2. Juni 2008 ich gehe davon aus, dass du für kunden sowie für rechnungen/aufträge eine eigene tabelle hast. du musst dann eigentlich nur die tabellen mit den passenden feldern JOINen, allenfalls darauf noch einen filter setzen und das ganze nach kundennr gruppieren (GROUP BY). wie das ganze in access-SQL aussieht weiss ich nicht, da mir der überblick über die tabellen fehlt. im abfragentwurf sollte das aber selbst für anfänger recht einfach und schnell zu bewerkstelligen sein. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
noguards Geschrieben 2. Juni 2008 Autor Teilen Geschrieben 2. Juni 2008 Für die Abfrage ist dass eine gute Lösung. Aber ich muss ja auch noch eine gültige Rechnungsnummer erst errechnen und dann zuweisen* und dummerweise interessiert sich Access dabei überhaupt nicht mehr für die Sortierung so das für einen Kunden viele verschiedene Rechnungsnummern zustande kommen. *Das mache ich momentan per Sourcecode indem ich via Recordset und while Schleifenkonstrukt die Datensätze durchlaufe und das entsprechende Feld fülle.. (für eine andere Lösung bin ich gerne zu haben - kenn mich bloß mit den von Access bereitgestellten Funktionen nicht aus) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
noguards Geschrieben 3. Juni 2008 Autor Teilen Geschrieben 3. Juni 2008 (bearbeitet) hmmm.. mitlerweile ist noch ein anderes Problem aufgetaucht. Vielleicht weiß dabei einer Rat: Bei der Berichtserstellung hab ich nach KuNr Gruppiert. Im Gruppenkopf: die Überschrift im Detail: die Datensätze im Gruppenfuß: die Summen, etc. Das Problem: Alle Datensätze werden doppelt ausgegeben. Wie ändere ich das? Bearbeitet 3. Juni 2008 von noguards Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
noguards Geschrieben 5. Juni 2008 Autor Teilen Geschrieben 5. Juni 2008 Ich könnte das RgNr Problem mit einer SELECT Max() Anweisung lösen, ich hab aber leider keine Ahnung wie ich sql Anweisungen im VBA Source code absetze. Ich hoffe das weiß einer von euch.. Bitte gebt mir mal einen Hinweis Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Reinhold Geschrieben 5. Juni 2008 Teilen Geschrieben 5. Juni 2008 Ich könnte das RgNr Problem mit einer SELECT Max() Anweisung lösen, ich hab aber leider keine Ahnung wie ich sql Anweisungen im VBA Source code absetze. Ich hoffe das weiß einer von euch.. Bitte gebt mir mal einen Hinweis Du kannst ein SQL-Statement (wenn es um Select geht) als Datenquelle eines Recordsets benutzen. Wie das geht weisst du offenbar, da du es mit Tabellen ohnehin machst, wie du oben geschrieben hast. hth Reinhold Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
noguards Geschrieben 11. Juni 2008 Autor Teilen Geschrieben 11. Juni 2008 jaaaa super. Danke für den Tip. Jetzt hab ich bloß noch das Problem der doppelten Datenausgabe... der Hund liegt aber nicht im Bericht begraben sondern bereits in der Abfrage. SELECT TABKUNDE.(diverse Felder), TABRECH.(diverse Felder), TABDATA.(diverse Felder) FROM TABDATA, TABKUNDE INNER JOIN TABRECH ON TABKUNDE.kunr = TABRECH.kunr ORDER BY TABKUNDE.kunr; Kann mir jemand sagen warum diese Abfrage alle Werte doppelt liefert?! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 11. Juni 2008 Teilen Geschrieben 11. Juni 2008 du hast drei tabellen TABDATA, TABRECH und TABKUNDE, aber nur einen JOIN. steht die tabelle TABDATA in keinem verhältnis zu einer der anderen? übrigens sei hier auch der hinweis auf DISTINCT gegeben. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
noguards Geschrieben 12. Juni 2008 Autor Teilen Geschrieben 12. Juni 2008 Richtig, die Tabelle TABDATA hat kein Verhältnis mit den anderen beiden. DISTINCT ist gut und schön (funktioniert auch), veträgt sich aber leider nicht mit ORDER BY und so geht mir dann die erwünscht Sortierung verloren.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.