Neuigkeiten:

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

Mobiles Hauptmenü

Datensatzzähler in einer Abfrage

Begonnen von peter, Oktober 28, 2008, 18:05:08

⏪ vorheriges - nächstes ⏩

peter

Hallo!

Gibt es eigentlich die möglichkeit in einer Abfrage ein Feld zu generieren das die Datensätze anzeigt?

mfg

peter

Zisch-Chris

Rettet den Wald! Esst mehr Biber!

oma

Hallo Peter,

du hast 2 Möglichkeiten:

1. ein Feld in einer Abfrage mit einer Unterabfrage: 

Nummer: (Select Count (*) FROM [DeineTabelle] as Temp WHERE [Temp].[DeineID] < [DeineTabelle].[DeineID])+1

2. ein Feld in einer Abfrage mit einer Domänenfunktion: 

Nummer: DomAnzahl("DeineID";"DeineTabelle";"DeineID< " & [DeineID])+1


Gruß Oma

nichts ist fertig!

peter

Haalo!

Das ist die Lösung!

Besten Dank und viele Grüsse aus Wien
Peter

cyorps

Hallo Leute,

existiert eine Möglichkeit in einer Abfrage einen solchen Autozähler ohne Kriterium einzubauen? Denn mein Problem ist, dass die zu zählenden Datenzeilen nach bestimmten Kriterien sortiert werden und dann die so sortierten Zeilen gezählt werden sollen. Daher kann ich nicht die ID als Kriterium benutzen. Da er sonst immer die kleinste ID als Nr. 1; die Zweitkleinste als Nr. 2 etc. setzt. Ein anderes Kriterium kann ich auch nicht benutzen, da bei den anderen Spalten identische Werte vorkommen können. Beipielhaft meine ich es so:

ID Zähler
1      1
4      2
5      3
3      4
2      5

Gruß
cyorps
- Peripherie: Win XP Prof; Office 2000
- VBA Copy&Paste; ansonsten Dummy

database

Hallo,
ist nicht so leicht zu lösen wie es im ursprünglichen Beitrag geschehen ist, da du durch die Umsortierung auch die Nummernvergabe änderst.

Ich würde dir daher dazu raten die Nummernvergabe mittels einer neuen Tabelle zu realisieren, die einen neuen ID Wert generiert (Autowert)
Die Datensätze aus deiner Originaltabelle schreibst du mittels Anfügeabfrage in die neue Tabelle, wobei der neue ID-Wert von 1 an aufsteigend vergeben wird.

Alles nur ein Vorschlag, da ich ja nicht genau weiß was mit den Daten zu geschehen hat.
Die Tabelle kannst du ja theoretisch wieder löschen, wenn du sie nicht mehr benötigst.
Das Anlegen der Tabelle kannst du per VBA und SQL automatisieren, solltest du das Ding öfter benötigen.

HTH

Peter

cyorps

Hallo Peter,

ja, genauso habe ich es im Moment. Im Moment sieht es so aus: Daten Temp-Tabelle löschen -> Autowert zurücksetzen -> Datensatz von Anfrage mit Sortierung einfügen. Das ganze sieht dann so aus:
Function loesche_tab()
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "test_kind", acNormal, acEdit
    'FnSetzeAutowertZurueck "[NameAutowertspalte]", "[Tabelle]"
    FnSetzeAutowertZurueck "[id]", "[count_kind]"
    DoCmd.OpenQuery "test_kind2", acNormal, acEdit
End Function


Doch da diese Funktion bei fast jeder DB-Operation ausgeführt wird, hatte ich gehofft, ich kann es weniger umständlich lösen. Denn die tmp-Tabelle bringt mir noch die Schwierigkeit, dass ich immer das UF, auf dem diese tmp-Tabelle basiert entladen und laden muss, damit das überhaupt funktioniert. Aber jetzt wird's offtopic.

Insofern danke ich erstmal für deine Antwort.

Gruß
cyorps
- Peripherie: Win XP Prof; Office 2000
- VBA Copy&Paste; ansonsten Dummy