28. juni 2001 - 16:16Der 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
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
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.
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?
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.