24. september 2008 - 20:38Der er
14 kommentarer og 1 løsning
"Nulstilling" af combobox
Når jeg har indtastet en værdi fx. K i en combobox og valgt en af de efterfølgende muligheder ved at bruge piletasterne og <Enter>, står cursoren igen klar til at modtage en ny værdi i comboboxen. Problemet er, at den ikke reagerer på nye indtastninger. Hvis jeg derimod starter med at taste <Backspace> og så efterfølgende indtaster et vilkårligt bogstave, så fungerer comboboxen fint igen. Hvordan får jeg den til at være klar til en ny indtastning uden at skulle taste <Backspace>?
If you have entered data then how does Access know that you intend entering new data?. You can erase the old data and then start entering new, or you can press the drop downn button and select from list.
(sorry, det var en joke) Det giver jo ingen mening at Nulle den med de samme, med mindre du foretager en eller anden handling inden du sætter den til Null ;o)
Tak for svarene. Når jeg har skrevet en værdi, vælger en af udfaldene ved med piletasterne, at gå ned og vælge den ønskede værdi - så nulstiller comboboxen sig - dvs. der står ingen tegn i comboboxen - den burde med andre ord være klar til at indtaste en ny værdi. Det er den så desværre ikke.
Hvis jeg derimod vælger værdien med musen, så er comboboxen klar til at indtaste en ny værdi uden først at skulle trykke på <Backspace>.
Hvad mener du med "så nulstiller comboboxen sig"? Ligger der kode under comboboxen? Normalt vil comboboxen jo vise den værdi, der er valgt (det er jo ligesom ideen med den).
Ja, der ligger en underliggende kode på "Efteropdatering" - der sletter det visuelle indhold af comboboxen. Så comboboxen bliver brugt som et søgefelt.
Her er koden - præfixet txt kan narre - det burde have været cbo:
If Me.txtSøgKlientnr <> "" Then Me.Telefon.Visible = True Me.Telefon.SetFocus DoCmd.FindRecord Me.txtSøgKlientnr, acEntire, False, acSearchAll, False, acCurrent, True Me.txtSøgKlientnr.SetFocus Me.txtSøgKlientnr = "" gvSøg = "" NulStilPatientFelter End If
If Me.Telefon <> "" Then FieldsKlientVisible Me.txtBynavn = DLookup("[Bynavn]", "tblPostnr", "[Postnr] = """ & Forms!frmJournalKart!Postnummer & """") UdfyldPatient Else FieldsKlientNotVisible End If
Derudover har jeg kode på "Ved ikke på liste" og "Ved tast op" Comboboxen reagerer som sagt forskelligt, når en værdi vælges med <Enter> eller med musen. Jeg arbejder på en 2003 udgave af accesss.
Jeg har forsøgt at sende backspace til comboboxen via SendKeys - I princippet virker det. Dvs. sender jeg fx et k via sendkeys og efterfølgende et backspace, så sletter den godt nok k'et, men den "nulstiller" ikke cbo-feltet.
Det, der sker er, at sende jeg backspace til den - så skal jeg efterfølgende taste fysisk 2 gange på backspace, så er den nulstillet. Sende jeg 2*backspace, skal jeg fysisk trykke på backspace tasten 3 gange osv.
Jeg tror, at comboboxen beholder mit <Enter> tegn, og at det er det jeg sletter ved at taste backspace, hvorefter comboboxen nulstilles.
Det er jo besynderligt, at du ikke i "EfterOpdatering" kan sætte den til Null. Har du prøvet at sætte den til f.eks. "k" (i stedet for Null). Virker det?
Der er ingen problemer i at sætte comboboxen til null eller for den sags skyld k. Problemstillingen er, at når en ny værdi indtastes i comboboxen, så reagerer den ikke på det indtastede, som sagt fordi den formentlig ikke er nulstillet/resat eller hvad jeg nu skal kalde det - først efter backspace er comboboxen klar til en ny indtastning.
Langt om længe har jeg fundet løsningen. I keyup hændelsen håndterer den også det <Enter> der kommer ved valg af værdien i comboboxen. Det <Enter> har drillet hele tiden, men jeg har nu fjernet det med følgende kode i Keyup:
If KeyCode = 13 Then Exit Sub End If
Hvorved den efterfølgende kode ikke håndterer <Enter>
Jeg takker for kommentarerne.
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.