Sorteerknop maken in een formulier?

Status
Niet open voor verdere reacties.

doesr

Gebruiker
Lid geworden
3 jun 2001
Berichten
123
Ik werk in de zorg en met een formulier vul ik mijn database om behandelingen te administreren.
In het formulier staan o.a. naam van de cliënt en de ECT-status van de behandeling (Aanmelding, A-ECT, Afbouwschema, M-ECT)

Ik wil 4 knoppen op mijn formulier maken genaamd
  • Aanmelding
  • A-ECT
  • Afbouwschema
  • M-ECT
En elke knop sorteert de behandelingen in die fase, alfabetisch op naam client.

Nu doe ik dat steeds met de rechtermuisknop op de status van de behandeling : Sorteren van A naar Z.

Kan dat?
Bij voorbaat hartelijk dank voor het meedenken.
 

Bijlagen

  • rapportage.rar
    38,1 KB · Weergaven: 34
Ik zou het niet met knoppen doen, maar met de labels. Die héb je namelijk al. En daar kun je simpel knoppen van maken. Omdat je een (in mijn ogen erg onhandige) naamstelling gebruikt voor je velden (waarom dubbele punten achter de veldnaam? Nergens voor nodig! Als je een dubbele punt in het label wilt, kun je dat net zo goed in het Bijschrift veld doen. En ik vind het dus érg lelijk, en het slaat in mijn ogen nergens op. Dubbele punten hebben taaltechnisch een heel andere betekenis dan een labelaanduiding. Maar het belangrijkste is dus, dat je jezelf in de voeten schiet, omdat je het programmeren nodeloos ingewikkeld maakt.

Nu de oplossing:
Ik maak twéé labels aan, die worden getriggerd door een Muisklik. Ze verbergen elkaar/maken elkaar zichtbaar, en ze starten de sorteerfunctie.

Code:
Function fSort(frmName As String, fldName As String)
    If Forms(frmName).OrderBy = "[" & fldName & "]" Then
        Forms(frmName).OrderByOn = True
        Forms(frmName).OrderBy = "[" & fldName & "] DESC"
    Else
        Forms(frmName).OrderByOn = True
        Forms(frmName).OrderBy = "[" & fldName & "]"
    End If
    Me.Repaint
End Function

Code:
Private Sub lblECT_status_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    With Me
        .lblECT_status_in.Visible = True
        .lblECT_status.Visible = False
        fSort .Name, .lblECT_status.Tag
    End With
End Sub

Code:
Private Sub lblNaam_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    With Me
        .lblNaam_In.Visible = True
        .lblNaam.Visible = False
        fSort .Name, .lblNaam.Tag
    End With
End Sub

Code:
Private Sub lblNaam_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    With Me
        .lblNaam.Visible = True
        .lblNaam_In.Visible = False
    End With
End Sub

Voor het mooie geef ik het label lblNaam_In een andere achtergrondkleur, waardoor het net lijkt alsof je een knop indrukt. Uiteraard kun je de labels ook vervangen door knoppen. Het effect is hetzelfde. Met wat minder code, dat wel :).
 
Oef dat is wel hogeschool Access voor mij.
Zo ver ben ik nog niet, na mijn gratis gratiscursus.be
Bedankt voor de dubbele punt adviezen in ieder geval. Ik ga met de labels aan de slag.
 
Zoals ik al zei: met een knop gaat het ook, en eigenlijk simpeler. Je krijgt dan dit:
Code:
Private Sub cmdAchternaam_Click()
        fSort Me.Name, Me.Achternaam.ControlSource
End Sub

Je hebt wel dus de functie fSort nodig, die als eerste code blok in mijn vorige bericht stond. De werking is dan vrij simpel: maak een module aan, en plak daar de functie in. De knoppen die je maakt, krijgen dan de code volgens het voorbeeld. In dat voorbeeld heet het tabelveld Achternaam, en dat gebruik je dus om te sorteren.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan