foutmelding bij sorteren in formulier

Status
Niet open voor verdere reacties.

tkint

Gebruiker
Lid geworden
5 dec 2011
Berichten
776
Beste,

Ik krijg volgende foutmelding (kan methode of gegevenslid niet vinden) in de 3de regel bij het openen van een formulier. Ik werk met de 2007-versie
Code:
Private Sub Form_Open(Cancel As Integer)
    ClearHeaders
    lblLabel.BackColor = RGB(155, 185, 95)
    [COLOR="#FF0000"]DoCmd.SetOrderBy "id ASC"[/COLOR]
    txtdummy.SetFocus
End Sub

Iemand die met een hogere versie werkt, krijgt die foutmelding niet. Heeft iemand een idee welke instructie in de 3de regel gebruikt wordt in de 2007-versie?
 
Laatst bewerkt:
Ik gebruik 2010, dus ik kan het je niet zeggen. Maar JohanRVT gebruikt ook 2007, dus wellicht dat er nog een antwoord komt :). Overigens is het commando niet veranderd sinds Access 97, dus ik zou niet weten waarom het niet werkt. Ik denk eerder dat er een ander foutje in je db zit. Compileer hem maar eens om dat te checken.
 
Beste Octafish,

Wat bedoel met database compileren en hoe doet je dat?
 
Soms, als er ergens één fout in de db zit, krijg je foutmeldingen op plaatsen die niets met het echte probleem te maken hebben. Die foutmeldingen zijn dan weg als je het probleem oplost.
Dat controleer je in het VBA venster in het menu <Foutoplossing>, <Database compileren>.
 
Beste Octafish,

Bij het compileren van de database, krijg ik dezelfde fout als in post#1.
 
Dan moet je de regel er (al dan niet tijdelijk) tussen uit slopen en verder compileren. Overigens zie ik niet waarom je de sortering met VBA wilt instellen, dat kun je gewoon bij de Formulier eigenschappen doen. Wat is de winst?
 
Beste,

Ik heb de regels die de fout veroorzaken, uitgeschakeld.
Het is net datgene (via eigenschappen formulier) wat niet lukt. Ofwel lukt het niet ofwel draait mijn formulier in de soep. Kan jij aangeven welke stappen ik moet toepassen?
 
Laatst bewerkt:
Zoals Michel zegt gewoon bij de eigenschappen van je formulier bij "sorteren op" zet je Id ASC als je je formulier wilt openen bij het eerste Id (zie voorbeeldje waar het bij mij DESC omgekeerd gebeurd en waar de tabel kortverblijf geopend wordt met de laatst toegevoegde kortverblijfperiode wat in ons geval een stuk interessanter is). Dus geen VBA hiervoor nodig en zou moeten werken of er is nog iets anders fout met je formulier
 

Bijlagen

  • Knipsel5.JPG
    Knipsel5.JPG
    43,6 KB · Weergaven: 24
Beste,

Ik wil sorteren op de 2de kolom (zie plaatje). Indien ik bij sorteren soort ASC invul, vraagt Access naar een parameter
eigenschappen formulier.jpg
Edit : soort is de formulierkoptekst. Op soortnaam sorteren lukt dus wel.
Bedankt voor de tip.

Een vraagje : in de oorspronkelijke applicatie kon je door dubbelklikken op een kolom een subroutine starten om de kolom te sorteren en daar loopt de VBA-code vast op dezelfde code vast : DoCmd.SetOrderBy "merknaam ASC". Enig idee welke de correcte vba-code is voor de 2007-versie?
 
Laatst bewerkt:
Je sorteert op velden, niet op labels. En al helemaal niet op de Caption van een label :). Wat het sorteren betreft: waarom dubbelklikken op het label? En niet enkele klik gebruiken? Wil je het de gebruiker extra lastig maken?
Ik gebruik een sorteerfunctie die overal voor is te gebruiken. En die oplopend en aflopend sorteert op basis van een klik.

Code:
Function fSort(frmName As String, fldName As String, Optional Label As String)
Dim sTmp() As String, i As Integer, sSort As String
Dim frm As Form
sSort = ""

    Set frm = Forms(frmName)
    With frm
        If InStr(1, .OrderBy, "DESC") > 0 Then
            sSort = sSort & fldName & " ASC"
            With frm("pngUp")
                .Visible = True
                frm("pngDown").Visible = False
                .Left = frm(Label).Left + frm(Label).Width + 10
                .Top = frm(Label).Top + frm(Label).Height - .Height
            End With
        Else
            sSort = sSort & fldName & " DESC"
            With frm("pngDown")
                .Visible = True
                frm("pngUp").Visible = False
                .Left = frm(Label).Left + frm(Label).Width + 10
                .Top = frm(Label).Top + frm(Label).Height - .Height
            End With
        End If
        .OrderByOn = True
        .OrderBy = sSort
    End With
End Function

Op een knop zet je dan deze code:
Code:
Private Sub Knop89_Click()
    Set ctl = Screen.ActiveControl
    fSort Me.Form.Name, ctl.Tag, ctl.Name
End Sub

De functie is wellicht wat uitgebreider dan je nodig hebt; ik gebruik 2 plaatjes van pijlen om achter de knop (ik gebruik ook knoppen en geen labels) aan te geven hoe de sorteerrichting is. Die routine kan er uiteraard makkelijk uit.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan