toepassen Me.Filter

Status
Niet open voor verdere reacties.

ernstcramer

Gebruiker
Lid geworden
14 dec 2015
Berichten
66
ik heb de volgende code gebruikt:

Code:
For II = 1 To 14
        If II < 8 Then
            If Me("FilterKnop" & II).Name = FK Then
                curFK = FK
                Me("FilterKnop" & II).ForeColor = "32768"
                Me.Filter = "[materieelsoort]=" & II
                Me.FilterOn = True
            Else
                Me("FilterKnop" & II).ForeColor = "16711680"
            End If
        End If
        If II = 8 Then
            tbHidden.SetFocus
            Forms![F_MBC]![hF_grpPATHbtn].Visible = False
            Me.dbTitle.Visible = True
            For I = 1 To 9
                Me("FilterKnop" & I).Visible = True
            Next I
            Me.FilterKnop8.Visible = False
        End If
Next II

Die werkt perfect: bij activeren van de filterknop wordt nummer 1-6 als keuze voor [materieelsoort] ingevuld en wordt de DB gefilterd.

Nu heb ik de volgende code toegevoegd voor een nieuw filter:
Code:
       If II = 9 Then
            tbHidden.SetFocus
            TestArt = InputBox("Geef-deel van-Artikelnr", "art.nr?", "*")
            Me.Filter = "[art]=" & TestArt
            Me.FilterOn = True
            
        End If

Ik vraag dus een (deel van) een artikelnummer, en koppel dat aan [art] ui de database.
maar nu krijg ik een foutmelding:
foutmelding-access-20170725.JPG

wat doe ik fout? want je ziet volgens mij het correcte filter staan?
 
[art] is tekstveld
[materieel] is numeriek

als ik de code tijdens de uitvoering check staat er: art = "3065" , dus tussen aanhalingstekens.
 
Ik snap niet hoe jij met deze code dit: art = "3065" als resultaat krijgt. Dat zou in mijn databases nooit lukken, daar is het resultaat dit: art = 3065
Hoe dan ook: elke variant is fout, want filtert op een tekst die gelijk is aan de zoektekst. En jij wilt random zoeken. dat kan alleen zo:
Code:
Dim TestArt As String
    TestArt = InputBox("Geef-deel van-Artikelnr", "art.nr?", "*")
    Me.Filter = "[art] Like ""*" & TestArt & "*"""
    Me.FilterOn = True
 
Dag Octafish, dank voor je reactie

Ik snap niet hoe jij met deze code dit: art = "3065" als resultaat krijgt.
Ik ook niet...:shocked: en ik had het nog gecheckt voordat ik het postte...

maar ik heb de = vervangen door "like" en dat lijkt te werken.
Ik moet alleen een stukje code aanpassen door If...Then voor Select Case... want zoals ik het nu gedaan heb wordt II altijd uitgevoerd en dat is dus niet de bedoeling...

Ik meld me als ik het werkend heb.
 
vanavond code aangepast:

Code:
        Case "Filterknop9" 'zoekt artikelnummer
            tbHidden.SetFocus
            TestArt = InputBox("Geef-deel van-Artikelnr", "art.nr?", "*")
            Me.Filter = "[art] Like ""*" & TestArt & "*"""
            Me.FilterOn = True

werkt perfect. dank!
 
Die Select Case had ik ook al gezien; je hele procedure liep niet logisch. Blij dat het werkt :).
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan