02. oktober 2006 - 09:22Der er
4 kommentarer og 1 løsning
Søgning på felt i listbox
Jeg skal have en bruger til at vælge flere records i en listbox. Pr. default (Access) kan brugeren indtaste den første karakter i det bundene felt, hvorved listbox springer ned til denne værdi. Nu er der i midlertid tale om værdier fra 00001 til 90000. Taster brugeren fx. et 2 tal, ender brugeren på den første værdi i listboxen som starter med 2. Herefter skal brugeren scrolle for at finde den værdi, han skal vælge, fx. 24590, hvilket er tidskrævende. Det var nemmere, hvis det var muligt, at taste fx 245 og så komme ned til 24500 og herefter scrolle. Men hvis 245 indtastes, ender brugeren ved de værdier der starter med 5 - altså 50000.
Er der en mulig måde, at få Access til at accepterer mere end en karakter i søgningen? Jeg er ikke interesseret i at oprettet yderligere et ubundet felt til søgning i listboxen.
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Private Sub Form_Close() If Me.Controls("Liste6").ListCount > 0 Then For f = 0 To Me.Controls("Liste6").ListCount - 1 Me.Controls("Liste6").RemoveItem Index:=0 Next f End If End Sub Private Sub Form_Open(Cancel As Integer) Dim f Set PRec = CurrentDb.OpenRecordset("PostnrBy")
For f = 1 To PRec.RecordCount Me.Controls("Liste6").AddItem CStr(PRec.Fields(0)) PRec.MoveNext Next f End Sub Private Sub Tekst4_Change() Dim tegn, f, linie tegn = Tekst4.Text Me.Controls("Liste6").SetFocus
For f = 0 To Liste6.ListCount - 1 Me.Controls("Liste6").ListIndex = f
linie = Controls("Liste6").Value
If tegn = Left(linie, Len(tegn)) Then Me.Controls("Liste6").ListIndex = f With Me.Controls("Tekst4") .SetFocus .SelStart = Len(linie) Exit Sub End With End If Next f End Sub
Tak for din besvarelse! Din kode giver desværre samme resultat. Der søges kun efter første karakter i listboxen - den kan ikke søge efter 3, 4, 5 karakterer.
Men jeg har da ladet mig inspirere af dit indlæg. Jeg slipper jo nok ikke for et ubundet tekstfelt. Det har jeg taget til mig, og herefter sender jeg så en sql streng til listboxens rowsourse, hvori jeg bruger funktionen Like. Så har jeg også ladet mig inspirere af din setfocus.
Jeg tror ikke, at der findes en løsning på mit problem. Jeg ville ønske, at det var lige som i explorer, hvor jeg kan stave mig frem til et fil- eller mappenavn - det ville have været optimal i min database.
Alligevel er jeg parat til at belønne din kommentar, da det jo er et spørgsmål, der ikke har været så mange kommentarer/svar til, og jeg skal videre i "teksten". Derfor Supertekst - læg venligst et svar - så får du pointene.
Du skal nok acceptere svaret, hvis du vil give points :-)
Men iøvrigt - har eksperimenteret lidt mere og så vidt jeg kan se, kan det lade sig gøre ved at anvende en kombinationsboks og udennogen VBA-kode:
Egenskaber: - Kontrolelementkilde: <tom> - Rækkekildetype: Tabel/forespørgsel - Rækkekilde: Den pågældende tabel - BundetKolonne: 1 - BegrænsTilListe: Nej - Autoudfyld: Ja
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.