4.7k Aufrufe
Gefragt in Datenbanken von
Hallo!
Ich habe ein Problem mit meiner Access Datenbank an der ich zurzeit arbeite. Ich habe historische Jahreszahlen in ein Feld eingegeben, welches ich vorher als Text definiert habe, weil ich sowohl Zahlen als auch Text verwendet habe um die Jahre vor bzw. nach Christus zu verdeutlichen. Ich möchte jetzt gerne die ganze Tabelle chronologisch ordnen (Bsp. von 280 BC bis 272 AD, wobei BC für "vor Christus" stehen soll und AD für "nach Christus"). Jetzt stehe ich nur vor dem Problem, dass ich keine Ahnung habe wie sowas geht. Ich bräuchte eine geeignete Sortierformel für die Filterfunktion, oder ein VBA Macro damit mir dies gelingt. Da ich aber nicht sehr viel davon verstehe, hoffe ich, dass mir hier jemand helfen kann.

Danke

18 Antworten

0 Punkte
Beantwortet von marie Experte (2k Punkte)
Tja, sortieren wo es nichts zu sortieren gibt ist natürlich nicht so einfach. Mach Dir eine Abfrage mit einem zusätzlichen Feld, welches Du dann sortierst. Aber um Dir weiterzuhelfen müsste ich erstmal wissen was da noch alles drinsteht. man kann sehr viel machen, wenn Du überall BD oder AD dahinterstehen hast, dann würde ich es in der sortierten Spalte davorstellen, dann hast Du schon eine Sortierreihenfolge.

gruß marie
0 Punkte
Beantwortet von
Hallo Marie!

Erst einmal danke für deine Antwort! Ich glaube aber du hast mein Problem nicht ganz richtig verstanden. Ich versuche es mal etwas deutlicher zu erläutern. Ich habe eine Datenbank über das römische Imperium erstellt. Des weiteren habe ich eine Tabelle mit allen wichtigen Schlachten der Antike errstellt. Jetzt nochmal zu meinem Problem. Diese Tabelle ist jetzt alphabethisch geordnet, d.h. sie folgt keiner zeitlich-chronologischen Ordnung. Jetzt will ich aber genau das haben. die spalte sieht so aus:
Year
100 AD
272 BC
46 BC
9 AD
usw. (BC steht für v. Chr. und AD für n. Chr.)
Die spalte habe ich als "Text" definiert, da ich ja Zahlen und Text in der Zelle hineinschreibe. Wenn ich diese jetzt absteigend sortieren will klappt das nur mit einer Formel für die Filterfunktion oder mit einer VBA Macro, weil Access nicht versteht, dass 200 BC viel früher ist als 200 AD (weil ja 200 vor Christus und 200 nach Christus 400 Jahre auseinander liegen).
Ich möchte jetzt gerne wissen ob es möglich ist diese Daten zeitlich-chronologisch zu sortieren, und wenn ja wie man das macht.

Danke für die Beiträge

LG, Main
0 Punkte
Beantwortet von marie Experte (2k Punkte)
Ich habe Dich schon verstanden, wollte mich aber nicht hinsetzen und Dir etwas zusammenschreiben bevor ich genau weiß, ob Du überall AD oder BC dahinterstehen hast, sonst ist meine Arbeit für die katze.

Du kannst auch reine Zahlen nicht sortieren, wenn Du sie als Text geschrieben hast. Du musst das ohnehin aufspalten, aber wenn ich jetzt sicher bin, dass Du nur diese beiden Buschatebenfolgen und sonst nur Zahlen hast, dann bastele ich Dir eine Abfrage.

Bis dann

Gruß marie
0 Punkte
Beantwortet von
Ok, sorry.... Wollt das Problem nur noch einmal genau darstellen.

Danke Marie, ich freue mich auf deinen Beitrag!

LG, Main
0 Punkte
Beantwortet von marie Experte (2k Punkte)
SELECT deinetabelle.year
FROM deinetabelle
WHERE (((deinetabelle.year) Is Not Null))
ORDER BY IIf(Right$([year],2)="BC",-Val([year]),Val([year]));


Hier bitte, funktioniert. Gruß marie
0 Punkte
Beantwortet von
Hallo Marie!

Danke für deine Hilfe! :) Wo gebe ich diese Befehlabfolge jetzt ein? Im VBA Eingabemodul von Access funktioniert es nicht (wörter sind rot eingeärbt).

Gruß, Main
0 Punkte
Beantwortet von marie Experte (2k Punkte)
Statt "deinetabelle" muss der name deiner Tabelle stehen und das gibst Du dann in die SQL-Ansicht einer Abfrage wörtlich ein. Danach kannst Du Dir die Entwurfsansicht anschauen und kapierst vermutlich wie das zustande kommt und kannst noch andere Felder dazumachen. Brauchst Du felder, wo Year leer ist, dann geht das so nicht, dann musst due es sagen, dann müssen wir da noch eine null einsetzen, weil zum Sortieren in jedem feld eine Zahl stehen muss.

Sag bitte ob Du klarmkommst oder frag weiter.

Gruß marie
0 Punkte
Beantwortet von
Ok, ich probier's!

Danke vielmals für deine nette und schnelle Hilfe!

LG
0 Punkte
Beantwortet von marie Experte (2k Punkte)
Nochmal: Abfrage, neu, Ansicht SQL, meinen Text einkopieren exakt wie er ist, das Wort deinetabelle durch Deinen Tabellennamen ersetzen, schließen, speichern öffnen. :-))

danach in der Entwurfsansicht betrachten und die restlichen Felder, die Du noch brauchst, dazuklicken. Immer wenn Du diese Sortierung brauchst dann nicht die Tabelle, sondern diese Abfrage öffnen.

Nochmal gruß marie
0 Punkte
Beantwortet von
Hallo Marie!

Es hat funktioniert, nur leider habe ich jetzt nur die Jahreszahlen ohne die restlichen Daten. Ich hätte mir das eher so vorgestellt, dass ich die Haupttabelle nach diesem Muster ordne und und nicht bloß eine query erstelle. Wenn ich die Haupttabelle zeitlich ordne, kann ich praktisch sehen wo, gegen wem usw. die früheste Schlacht der Antike stattfand und wo die späteste. Ich will sozusagen die Tabelle von 280 v. Chr. nach 272 nach Christus hin ordnen. Ist dies möglich?

LG, Main
...