28. august 2010 - 09:39 Der er 1 løsning

Combobox - vaelge vaerdier ved at dobbeltklikke

Jeg har i min Access 2007 applikation en formular med en listbox og en combobox, begge befolkede med navne paa organisationer fra en adresseliste.  Naar jeg vaelger en organisation enten i listboxen eller comboboxen aabnes en ny formular med detaljer over den valgte organisation.

I listboxen dobbeltklikker jeg paa et navn og bruger DblClick() til at sende navnet til funktionen som opretter den nye formular.  I comboboxen har jeg ingen problemer med at trykke paa pilen saa listen med navne kommer frem, klikke paa det valgte navn, og saa ved hjaelp af AfterUpdate() sende navnet til funktionen.  Men som i alle comboboxe, hvis jeg, i stedet for at vaelge med pilen, begynder at skrive et navn, saa vises navnet hvis det bestaar.  Saa ville jeg gerne, ligesom i listboxen, kunne dobbeltklikke paa navnet og saa faa det sendt til funktionen.  Men det ser ud til at comboboxen endnu ikke har en vaerdi naar jeg dobbeltklikker. (Jeg faar samme resultat ved Click() eventen.)

(Jeg koder:
Private Sub cboOrganisatie_DblClick(Cancel As Integer)
    Dim i As Integer
    i = Nz(Me.cboOrganisatie, 0)
    activeren (Me.cboOrganisatie.Value)
End Sub

og laver et breakpoint saa jeg kan undersoege vaerdien af i.  Den er 0 naar eventen fyres.)

Hvordan kan jeg arrangere det saaledes at naar comboboxen viser et navn efter at brugeren har skrevet de foerste bogstaver saa kan det navn vaelges direkte og sendes til funktionen uden at curseren flyttes fra comboboxen?
28. august 2010 - 13:16 #1
Det at formulere et spoergsmaal er tit (for mig) et skridt paa vej til at loese det.  Jeg kikkede naerere paa DblClick() eventen.  Ved at saette et breakpoint og analysere de bestaaende lokale variable fandt jeg at comboboxen har 141 properties hvoraf nummer 132 har navnet "Text" og har value lig med det organisationnavn der staar i comboboxen.

Saa ved i DblClick() at saette denne kode lykkes det at faa de noedvendige data sendt til funktionen activeren():

s = Me.cboOrganisatie.Properties.Item("text")
i = DLookup("id", "Organisatie", "organisatie = '" & s & "'")
activeren (i)
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