Avatar billede schoesler Nybegynder
17. februar 2004 - 09:23 Der er 16 kommentarer og
1 løsning

søge ved hjælp af en combo box

Hej Eksperter.

I min tabel har jeg følgende Yes/No felter(flueben) Captain, ChiefOfficer, ChiefEngineer, FirstOfficer, SecondOfficer og Crew

Hvis jeg vælger en af disse i en combo box og de er "true" så skulle alle records som er true filtreres fra. Der skal være en blank valg mulighed som medtager alle (uden filter) Hvordan gør man det!
Avatar billede hubs Nybegynder
17. februar 2004 - 09:51 #1
Er ikke helt sikker på koden, men kan du ikke evt. lave noget i retning af

If Me.Combobox = "" Then
Exit Sub
Else
DoCmd.ApplyFilter , "[DinTabel]." & Me.Combobox & " = True"
End If
Avatar billede mugs Novice
17. februar 2004 - 10:00 #2
Hvad laver det punktum her:
"[DinTabel]."
Avatar billede hubs Nybegynder
17. februar 2004 - 10:03 #3
Jeg tænkte noget i retning af fx. "[DinTabel].Captain = True" bare med comboboxen som variable. Har ikke testet det, så jeg ved faktisk ikke om det kan lade sig gøre :c)
Avatar billede hubs Nybegynder
17. februar 2004 - 10:16 #4
Har lige lavet et par tests og det virker umiddelbart, så jeg håber det kan bruges :c)
Avatar billede schoesler Nybegynder
17. februar 2004 - 15:31 #5
Hvad hvis de faste værdier i combo boksen skal være

Captain
Chief Officer
Chief Engineer
First Officer
Second Officer
Crew
Avatar billede hubs Nybegynder
17. februar 2004 - 15:33 #6
Jamen så laver du bare en combobox baseret på en valuelist som du definere.
Avatar billede hubs Nybegynder
17. februar 2004 - 15:35 #7
men det var måske ikke det du mente?
Avatar billede overchord Nybegynder
18. februar 2004 - 11:47 #8
Hvis du vil tilfoeje din liste til en combo-box kan du laegge koden i onLoad for din formular:

me.Combobox.AddItem "Captain"
osv
Avatar billede terry Ekspert
18. februar 2004 - 12:15 #9
Not quite sure I understand the problem Jan!

You say you have a table with 6 yes/no fields (Captain, ChiefOfficer, ChiefEngineer, FirstOfficer, SecondOfficer og Crew)

Now you want to use a combo to filter the result depending on what value you choose from the combo. The combo contains

Captain
Chief Officer
Chief Engineer
First Officer
Second Officer
Crew

First, I'll just point out that it seems to me that this is a normalization problem. You should have a seperate table containing these values each with an ID. Then in the table where you have th e6 Yes/no fields you should have ONE field (foreign key) to contain the ID.


But lets look at your problem as it is!

First I would alter the combo to contain two columsn with these values

0;Captain
1;Chief Officer
2;Chief Engineer
3;First Officer
4;Second Officer
5;Crew



Now in the after update event of the combo you should be able to use something like this


Dim sFilter as string

SELECT Case Me.Combo

    Case 0
          sFilter = "Captain = True"
        Case 1
          sFilter = "ChiefOfficer = True"
        Case 2
          sFilter = "ChiefEngineer = True"
        Case 3
          sFilter = "FirstOfficer = True"
        Case 4
          sFilter = "SecondOfficer = True"
        Case 5
          sFilter = "Crew = True"

End select

    If Len(sFilter) > 0 Then
      Me.filter = sFilter
          Me.filterOn = True
        else
          Me.filterOn = False
        end if
Avatar billede terry Ekspert
18. februar 2004 - 12:16 #10
NOTE: Not tested :o)
Avatar billede schoesler Nybegynder
18. februar 2004 - 20:00 #11
Tak alle sammen for jeres ideer. Vil teste lidt senere iaften. Er lige kommet hjem efter et langt.... møde
Avatar billede schoesler Nybegynder
18. februar 2004 - 21:01 #12
'terry' hvor skal disse sættes ind?

First I would alter the combo to contain two columsn with these values

0;Captain
1;Chief Officer
2;Chief Engineer
3;First Officer
4;Second Officer
5;Crew

Jan
Avatar billede schoesler Nybegynder
18. februar 2004 - 21:02 #13
under properties ved default values
Avatar billede schoesler Nybegynder
18. februar 2004 - 21:21 #14
'terry' fik det til at virke :-)
Avatar billede terry Ekspert
18. februar 2004 - 21:29 #15
RowSource Type = Value List
then the values are set in Row Source

I assume thats what you have done?
Avatar billede schoesler Nybegynder
18. februar 2004 - 22:03 #16
'terry' som du skrev lavede jeg en tabel med værdierne. :-) og brugte

din kode:

Dim sFilter as string

SELECT Case Me.Combo

    Case 0
          sFilter = "Captain = True"
        Case 1
          sFilter = "ChiefOfficer = True"
        Case 2
          sFilter = "ChiefEngineer = True"
        Case 3
          sFilter = "FirstOfficer = True"
        Case 4
          sFilter = "SecondOfficer = True"
        Case 5
          sFilter = "Crew = True"

End select

    If Len(sFilter) > 0 Then
      Me.filter = sFilter
          Me.filterOn = True
        else
          Me.filterOn = False
        end if
Avatar billede terry Ekspert
18. februar 2004 - 22:31 #17
OK, og tak :o)
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