Avatar billede dougheffernan Nybegynder
31. august 2006 - 09:16 Der 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.
Avatar billede -anders- Juniormester
31. august 2006 - 17:21 #1
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:

DoCmd.ApplyFilter False
Avatar billede -anders- Juniormester
31. august 2006 - 17:26 #2
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
Avatar billede dougheffernan Nybegynder
07. september 2006 - 12:17 #3
Det lyder godt, men virker ikke i praksis.

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
!!! :( :( :(
Avatar billede dougheffernan Nybegynder
07. september 2006 - 12:23 #4
Hvis jeg lige efter
DoCmd.ApplyFilter False

skriver
debug.print me.filter

er filteret for formularen tomt, men det er det ikke i "egenskaber for formular" -> fanen Data -> egenskaben Filter... :(
Avatar billede -anders- Juniormester
07. september 2006 - 19:38 #5
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)
Avatar billede dougheffernan Nybegynder
08. september 2006 - 10:44 #6
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.
Avatar billede dougheffernan Nybegynder
08. september 2006 - 10:45 #7
Sagen er at jeg ikke umiddelbart kan forhindre at der sættes et "forkert" filter på formularen (som vil resultere i ovennævnte fejl)
Avatar billede dougheffernan Nybegynder
25. september 2006 - 09:43 #8
Lukker spørgsmålet igen - stadig ingen løsning.
Avatar billede dougheffernan Nybegynder
04. oktober 2006 - 10:41 #9
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.
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