Opgelost Sorteer button in Formulier

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

Korstjens

Gebruiker
Lid geworden
9 jul 2023
Berichten
34
Van VBA heb ik (nog) geen verstand maar ik hoop dat iemand mij tóch kan helpen met de volgende vraag. Ik gebruik Windows 11 en Ms Access Office 365.

Normaal gesproken werk ik in een Formulier met ongeveer 1.000 records. Ik zou daar graag twee buttons aan toe willen voegen waarmee ik twee sorteer (dus niet filter!) sorteeropdrachten kan laten uitvoeren. Bij de button wizzard kan ik geen sorteer functie vinden.
Sorteren moet niet op één veld (want dat kan makkelijk via een opdracht in het "lint"), maar op meerdere opeenvolgende velden gedefinieerd kunnen worden. Dus bijvoorbeeld de ene sorteeropdracht op achternaam en vervolgens op woonplaats en de andere sorteeropdracht op woonplaats en daarna op achternaam.

Alvast bedankt voor de hulp.
Aart Korstjens
Oosterhout
 
Ook bij het studeren bij Macro's voor Access kom ik er niet uit! Of zoek ik niet goed/diep genoeg?
 
In VBA is het relatief eenvoudig. Zet onder de knop iets als:
Code:
Me.OrderBy = "Achternaam, Woonplaats"
Me.OrderByOn = True
 
Beetje kort door de bocht, want dat is een veel te simpele voorstelling van zaken. Je wilt dus variabele sorteringen kunnen maken? Dat betekent dat je dus éérst de velden (en de sorteer orde) moet kiezen en die gegevens in een string moet zetten die je aan Me.OrderBy kan toewijzen.
Zelf maak ik sorteringen op een doorlopend formulier d.m.v. de Labels boven de kolommen. Klikken op een label is Oplopend of Aflopend sorteren (afhankelijk van de vorige waarde) en op een volgend label klikken voegt dan het nieuwe veld toe aan de sortering. Op die manier bouw je de sortering op. Met een aparte knop kun je de sortering verwijderen, en opnieuw beginnen.

Veel makkelijke alternatieven zijn er niet, want hoe je het ook wendt of keert: je zult altijd de velden waarop je wilt sorteren moeten aangeven (kan met een keuzelijst) maar ook of je oplopend of aflopend wilt sorteren op dat veld (en dat kan niet in dezelfde keuzelijst). Je zit dus denk ik vast aan een (meervoudige) keuzelijst met de veldnamen en voor alle velden een Ja/Nee veld voor Oplopend/Aflopend.

Zelf vind ik de labels i.c.m. een flexibele functie dus de meest handzame en geschikte optie.
 
Het antwoord van xps351 werkt! Precies wat ik zocht.
Bedankt!

Voor het antword van OctaFish moet ik steeds eerst naar de tabel als ik de sorteervolgorde wil veranderen en dat is juist wat ik niet wil. Ik wilde een button op het formulier. (Of heb ik jouw antwoord verkeerd begrepen?)

Ik zou nog wel wat meer willen leren van VBA. Wie heeft voor mij een tip voor een goede (gratis) video cursus op YouTube?
 
Sorteren moet niet op één veld (want dat kan makkelijk via een opdracht in het "lint"), maar op meerdere opeenvolgende velden gedefinieerd kunnen worden. Dus bijvoorbeeld de ene sorteeropdracht op achternaam en vervolgens op woonplaats en de andere sorteeropdracht op woonplaats en daarna op achternaam.
Lezen is een hele kunst, ik hoop niet dat jij tot de 35% hoort die de kunst niet beheerst…. Ik heb dus nergens gezegd of geschreven dat je steeds naar de tabel moet om de sortering te veranderen. Sterker nog: dat wérkt niet eens! Dus ja, je hebt het verkeerd gelezen of begrepen. Ik schreef namelijk dat ik de labels gebruik om (heel flexibel) te sorteren. En die vind je niet in een tabel, maar wel op een (doorlopend) formulier.

Daarnaast kan de oplossing van Peter (of die nou werkt of niet) gezien jouw initiële vraag nooit een afdoende oplossing voor jou zijn, omdat die oplossing zo star is als een blok beton. Werkt maar voor één type filter, en wil je er meer, dan heb je dus meer knoppen nodig. Lekkere oplossing 😊. Maar goed, jij bent tevreden, dus wat zeur ik nog? 😀
 
Lezen is een hele kunst, ik hoop niet dat jij tot de 35% hoort die de kunst niet beheerst.
Nee hoor, ik ben nèt 77 geworden en kan heus wel lezen ;). Maar aangezien ik (ondanks mijn leeftijd) nog een beginnend Acess-er ben heb ik het gewoon niet goed begrepen omdat je er niet bij hebt vermeld HOE ik dan een label zou moeten gebruiken.
Ik heb maar behoefte aan twee standaard sorteeropdrachten (dat heb jij dus weer niet goed gelezen :mad:) en twee buttons zijn dus genoeg.

Maar goed, alles werkt nu zoals ik dat wilde en ik heb weer wat geleerd inzake VBA. Ik heb zelfs nu ook zelf VBA ( in plaats van embedded macro's) gebruikt voor andere knoppen zoals Eerste/Vorige/Volgende/Laatste record en een voor Dupliceer record.

Groet vanuit een zonnig Oosterhout.☀️
 
Ik heb maar behoefte aan twee standaard sorteeropdrachten (dat heb jij dus weer niet goed gelezen :mad:) en twee buttons zijn dus genoeg.
Dan zijn we dus allebei van een generatie die nog met een leesplankjes heeft geleerd 😉.Maar lees je eigen vraag nog eens door, of de tekst die ik daar in bericht #6 uit geciteerd heb. Waar staat daar dat je maar twee sorteringen nodig hebt? Hier nogmaals die tekst:
Sorteren moet niet op één veld (want dat kan makkelijk via een opdracht in het "lint"), maar op meerdere opeenvolgende velden gedefinieerd kunnen worden. Dus bijvoorbeeld de ene sorteeropdracht op achternaam en vervolgens op woonplaats en de andere sorteeropdracht op woonplaats en daarna op achternaam.
Op geen enkele manier is hier te lezen dat je maar twee sorteringen nodig hebt. OK, Peter had dat wél door, maar die komt dan ook van een andere planeet. Daar kan ik niet aan tippen 😂.
 
Ik zou daar graag twee buttons aan toe willen voegen waarmee ik twee sorteer (dus niet filter!) sorteeropdrachten kan laten uitvoeren.
Je hoeft niet van een andere planeet te komen om dit te begrijpen :D
En een generatieverschil kan het ook al niet zijn 🥸
 
Kan zijn, dan heb ik daar overheen gelezen, maar dat staat dus in schril contrast met wat er onder staat. Bovendien: waarom gaan voor een starre oplossing, als het ook dynamisch kan? Maar het gaat uiteraard om wat TS wil, en die is tevreden. Ik steek er in ieder geval geen tijd meer in.
 
Beste Octafish,
De ene en de andere, dat zijn er volgens mij samen twee. Sterker nog, eigenlijk is het er maar één.
De ene is de standaard zoals de database "normaal" staat, de andere is een "tijdelijke" sorteervolgorde.
De eerste button is dus eigenllijk: Ga terug naar de standaard volgorde.
 
Dan heb je dus maar één knop nodig, geen twee. En is er dus geen sprake van 'meerdere sorteringen' :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan