Sortering tabel

Status
Niet open voor verdere reacties.

test1000

Gebruiker
Lid geworden
7 jul 2017
Berichten
258
Hoi,

Op een formulier heb ik een knop om gegevens in een tabel te importeren.
Dit werkt.
Maar nu wil ik deze tabel ook sorteren op bepaalde velden en dan de tabel opslaan.
Als ik 'msgbox' gebruik zie ik dat de sortering goed gaat maar hij slaat de tabel niet op.

In het formulier staat hier de code om te importeren.
Het is een bestaande tabel waar gegevens worden ingevoegd.
En dan de code om de tabel te sorteren en op te slaan.
De tabel of het formulier waar de tabel wordt gebruikt is nog niet geopend.

Code:
    DoCmd.OpenTable "Personeelsleden", acViewNormal
    DoCmd.SelectObject acTable, "Personeelsleden"
    DoCmd.SetOrderBy "[Naam] ASC, [Voornaam] DESC"
    DoCmd.Close acTable, "Personeelsleden", acSaveYes

Iemand enig idee wat er fout gaat ?
 
Ik denk misschien de oplossing zelf te hebben gevonden.
Ik heb het commando
Code:
docmd.save
toegevoegd.

Code:
    DoCmd.OpenTable "DSV_RowtagID"
    DoCmd.SelectObject acTable, "DSV_RowtagID"
    DoCmd.SetOrderBy "[Shippers reference               35] ASC, [Weight (kg)] DESC"
    DoCmd.Save
    DoCmd.Close acTable, "DSV_RowtagID", acSaveYes

Nu lijkt het wel te werken. Misschien dat anderen een betere oplossing hebben ?
 
Blijkbaar toch niet opgelost.
De gebruikers werken op een runtime versie van Access.
De Access ontwikkel pc heeft een full Access licentie.

Iemand enig idee of dit met de Runtime versie te maken heeft ?
 
Ja, niet doen. Waarom zou je de sortering in een tabel opslaan? Ik doe dat dus nooit, want je sorteert net zo makkelijk op je formulier, in queries, in rapporten.... Tabellen zijn voor mij niet meer dan de bakken waar de spullen in staan. Daar doe ik verder niks mee. Ik vind het dus verspilling van energie wat je nu doet :D.
 
Een tabel is een object dat data in kolommen en rijen bewaart. Eén van de essentiële eigenschappen is dat een tabel geen volgorde bevat, noch in de rijen, noch in de kolommen. Dit wil zeggen dat je de kolommen in een willekeurige orde kan opvragen en dat een volgorde in de rijen slechts kan afgedwongen worden door een ORDER BY clausus in een SQL instructie. Als je een filter of een order by in een tabel opslaat dan maak je intern dus een query die je later opnieuw kan activeren om de gegevens via die SQL instructie op te vragen. Het is dus beter om een query te maken en op te slaan en deze als basis voor je formulier te gebruiken. Via VBA kan je dan eventueel de query aanpassen zodat deze de laatste keuze van de gebruiker reflecteert.
 
OK. Thx voor de deskundige uitleg.
Als 'beginner' dacht ik de tabel al te sorteren omdat de tabel wordt geëxporteerd naar een .xlsx bestand.
En dacht dat een query maken een actie 'teveel' was.
En de ontvanger van het bestand verwacht een bepaalde sortering.
Maar geen probleem, heb een query gemaakt met de juiste sortering en die exporteer ik.
Dus iedereen gelukkig :)
 
Ook in Excel is prima te sorteren :). Daarnaast: als je het bestand in Excel één keer sorteert en opslaat, ben je je oorspronkelijke sortering sowieso kwijt. Het maakt m.i. ook totaal niet uit hoe je gegevens exporteert. Het is daarna aan de gebruiker hoe de tabel wordt gebruikt en geïnterpreteerd. Ik vraag me overigens af of je de sortering meeneemt in de export. Daarvoor zul je toch een query moeten exporteren vermoed ik. En dat doe je ook :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan