31. august 2006 - 09:16Der er
8 kommentarer og 1 løsning
Me.Filter (sæt til tom) virker ikke
Er ved at være godt træt af at skulle fjerne filtret på en af mine formularer manuelt.
Her er koden:
Private Sub Form_Close() With Me .Filter = "" .FilterOn = False End With
End Sub
Private Sub Form_Load()
With Me .Filter = "" .FilterOn = False End With
End Sub
Private Sub Form_Open(Cancel As Integer) . . . . With Me .Filter = "" .FilterOn = False End With . . .
End Sub
Når jeg lukker formularen, huskes filteret - det ønsker jeg ikke! Det filter som sættes på formularen afhænger af hvad der er valgt i de andre dropdown-bokse på siden og når formularen åbnes vil deres værdi resultere i et filter som ikke "findes" og derfor fejler programmet. Betyder ikke så meget når man har Access installeret, men vores brugere har kun Access runtime.
Hej, prøv at skrive nedenstående kommando på formens OnOpen hændelse, kommandoen sletter et nedarvet filter på en given form altså det der står under filter på fanebladet data:
Kommandoen DoCmd.ApplyFilter False svare til at du vælger filterkomandoen "Avanceret filter, og her klikker på ryd gitter, og til til sidst klikker på Anvend filter. Hvis du i Access hjælpen søger på "Fjern filter" kommer der en del hist på problematikken bla. nedenstående:
Slette et filter i en formular eller et dataark
Brug denne procedure til at slette en hvilken som helst type filter, uanset hvilken metode du har benyttet til at oprette det.
Klik på den formular, underfomular, det dataark eller underdataark, som du vil slette filteret for. Skift til vinduet Avanceret filter/sortering. Klik på Ryd gitter i menuen Rediger. Klik på Anvend filter på værktøjslinjen.
Hel denne smøre kan altså klares i VBA med en omtalte DoCmd, metode
Hvis jeg f.eks. i egenskaben Filter (fanen Data) for en formular skriver MONTH = 200808
og så tilføjer dette til formularen
Private Sub Form_Open(Cancel As Integer) DoCmd.ApplyFilter False End Sub
og jeg så åbner formularen (efter at have gemt den, selvfølgelig) og så tager formularen i Designvisning, vil egenskaben Filter STADIG indeholde MONTH = 200808 !!! :( :( :(
Hmm, det lyder mystisk, jeg tjekkede før jeg svarede, og det virkede perfekt her, og gør det stadig. Jeg har desværre ikke flere bud, måske der kommer andre forbi, held og lykke med det :o)
Det var i hvert fald et forsøg - et godt et af slagsen. Problemet er at Access melder fejl allerede inden nogle af Form_Active, Open eller Load bliver afviklet.
En lille opdatering på sagen - når jeg sætter et filter som "godt kan lade sig gøre", virker det FINT med DoCmd.ApplyFilter = False
Men når filteret er "ødelagt/forkert", som hvis det f.eks. indeholder ARB=' (dvs. der mangler en "slut-singlequote", så checker Access formularens filter LÆNGE før noget som helst kode afvikles og derfor virker løsningen ikke for mig.
Synes godt om
Ny brugerNybegynder
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.