Avatar billede tville Juniormester
28. juni 2001 - 16:16 Der er 4 kommentarer og
2 løsninger

Problemer med anvendelse af filter on/off

Jeg har en formular \"Rekvisition_opret\" hvor jeg har oprettet en knap. Når man klikker på den får man et pop-up formular, hvor man kan indtaste nogle søgekriterier. Når man klikker OK til disse kriterier, skulle formularen \"Rekvisition_opet\" kun indeholde poster der opfylder de indtastede kriterier, men det kan jeg ikke rigtig få til at fungere. Min kode ser således ud:

Private Sub Knap_OK2_Click()
On Error GoTo Err_Knap_OK2_Click

    Dim stDocName As String
    Dim stLinkCriteria As String
    Dim antalposter As Integer
   
    stDocName = \"rekvisition_opret\"
   
With CodeContextObject
        .Visible = False
    DoCmd.OpenForm stDocName, , , stLinkCriteria
   
    Forms!rekvisition_opret.Filter = \"[rekvid] = forms!kriterier!rekvnr and [bestiltdato] > forms!kriterier!startdato and [bestiltdato] < forms!kriterier!slutdato and [levnavn] like forms!kriterier!leverandør and [afdnavn] like forms!kriterier!afdeling\"
    Forms!rekvisition_opret.FilterOn = True
       
    antalposter = Forms!rekvisition_opret.RecordsetClone.RecordCount
    If antalposter = 0 Then
        MsgBox \"Der er ingen poster der opfylder de indtastede kriterier. Prøv igen.\", vbInformation, \"Ingen data!\"
    End If
End With
                 
    DoCmd.Close acForm, \"kriterier\", acSaveYes
   
Exit_Knap_OK2_Click:
    Exit Sub

Err_Knap_OK2_Click:
    MsgBox Err.Description
    Resume Exit_Knap_OK2_Click
End Sub

Hva gør jeg forkert??
28. juni 2001 - 17:45 #1
Hej Tville,

Som jeg forstår det, så er denne knap placeret på Kriterier-formularen?

Koden bør så se således ud:

Private Sub Knap_OK2_Click()
On Error GoTo Err_Knap_OK2_Click

    Dim stDocName As String
    Dim stLinkCriteria As String
    Dim antalposter As Integer
   
    stDocName = \"rekvisition_opret\"
   
With CodeContextObject
        .Visible = False
    DoCmd.OpenForm stDocName, , , stLinkCriteria
   
    Forms!rekvisition_opret.Filter = \"[rekvid] = \" & Me!rekvnr & \" and [bestiltdato] > #\" & Me!startdato  & \"# and [bestiltdato] < #\" & Me!slutdato & \"# and [levnavn] like \'\" & Me!leverandør & \"\' and [afdnavn] like \'\" & Me!afdeling & \"\'\"
    Forms!rekvisition_opret.FilterOn = True
       
    antalposter = Forms!rekvisition_opret.RecordsetClone.RecordCount
    If antalposter = 0 Then
        MsgBox \"Der er ingen poster der opfylder de indtastede kriterier. Prøv igen.\", vbInformation, \"Ingen data!\"
    End If
End With
                 
    DoCmd.Close acForm, \"kriterier\", acSaveYes
   
Exit_Knap_OK2_Click:
    Exit Sub

Err_Knap_OK2_Click:
    MsgBox Err.Description
    Resume Exit_Knap_OK2_Click
End Sub

Problemet er at du er nødt til at adskille kontrolelementerne og tekststrengene, som jeg har gjort det.

Jeg har brugt Me istedet for Forms!Kriterier. Det fylder mindre.
Afhængigt af hvordan felterne er defineret, er det muligt at du kan/skal fjerne #\'erne.

/Thomas

PS: Jeg har rettet direkte her på skærmen, så der kan godt mangle et tegn eller 2.
Avatar billede tville Juniormester
29. juni 2001 - 08:42 #2
Tak Thomas - det virker.
Nu har jeg blot problemer med det ene datokriterier. På kriterie formularen har jeg 2 datofelter: startdato og slutdato. Ændringer i startdato accepteres fint, men så snart jeg ændrer i slutdatoen kan den ingen poster finde. Hvad kan være galt?
29. juni 2001 - 14:17 #3
hmm, prøv at fjerne #\'erne omkring Me!Slutdato

Avatar billede tville Juniormester
29. juni 2001 - 14:25 #4
Jeg har fjernet alle # - det gav syntaksproblemer.
Jeg har også prøvet at anvende between xx and, men det virker heller ikke.
Avatar billede terry Ekspert
05. juli 2001 - 15:27 #5
tville> The date formats must be in USA Format MMDDYYYY. So change your Me!startdato to format(Me!startdato, \"MM/DD/YYYY\") and also your slutdato.
Avatar billede tville Juniormester
30. juli 2001 - 09:11 #6
Så virker det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester