List Box properties

Tags:    visual-basic

Hej!

Jeg har en samling af listboxe i en access database(97). Naar brugeren dobbeltklikker paa en bestemt listbox aabnes et nyt vindue som er baseret paa indholdet af de forskellig list boxes.

Problemet er, at formen der aabnes skal bruge information fra en listbox, som brugeren ikke normal klikker paa, og derfor ikke har en .Value. Hvis jeg vaelger en vaerdi fra denne listbox virker det neaste vindue fint nok, men det er ikke intuitivt at skulle gaa ind og vaelge en vaerdi her hver gang.

Saa hvad jeg gerne vil have er at koden for den naeste form on Load selv vaelger den foerste vaerdi fra omtalte listbox automatisk. Jeg kan ikke umiddelbart finde nogen kode der vil lade mig goere dette da .ItemsSelected kun refererer til LB's hvor der allerede er valgt en vaerdi.

Koden som allerede fungerer, men mangler at valege en list box vaerdi ser saadan ud:

Dim frm As Form
Set frm = Form_Main_Ctrl
Dim message As Variant

If IsNull(frm.LstSpecies.Value) Then
message = MsgBox("you must select a species first.", vbOKOnly, "No species selected")
Else
DoCmd.OpenForm "frmdetail", acNormal, , , acFormReadOnly, acDialog
End If

Jeg mangler at vaelge en vaerdi fra frm.LstTSN (som er navnet paa listboxen hvor den foerste vaerdi skal vaelges).

Nogle ideer?
Paa forhaand tak!



2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
User
Bruger #477 @ 20.01.03 21:51
Hej!

Jeg har en samling af listboxe i en access database(97). Naar brugeren dobbeltklikker paa en bestemt listbox aabnes et nyt vindue som er baseret paa indholdet af de forskellig list boxes.

Problemet er, at formen der aabnes skal bruge information fra en listbox, som brugeren ikke normal klikker paa, og derfor ikke har en .Value. Hvis jeg vaelger en vaerdi fra denne listbox virker det neaste vindue fint nok, men det er ikke intuitivt at skulle gaa ind og vaelge en vaerdi her hver gang.

Saa hvad jeg gerne vil have er at koden for den naeste form on Load selv vaelger den foerste vaerdi fra omtalte listbox automatisk. Jeg kan ikke umiddelbart finde nogen kode der vil lade mig goere dette da .ItemsSelected kun refererer til LB's hvor der allerede er valgt en vaerdi.

Koden som allerede fungerer, men mangler at valege en list box vaerdi ser saadan ud:

Dim frm As Form
Set frm = Form_Main_Ctrl
Dim message As Variant

If IsNull(frm.LstSpecies.Value) Then
message = MsgBox("you must select a species first.", vbOKOnly, "No species selected")
Else
DoCmd.OpenForm "frmdetail", acNormal, , , acFormReadOnly, acDialog
End If

Jeg mangler at vaelge en vaerdi fra frm.LstTSN (som er navnet paa listboxen hvor den foerste vaerdi skal vaelges).

Nogle ideer?
Paa forhaand tak!



Hej,

Normalt plejer jeg at lade listboksen markere det første element på listen, når formularen åbnes. Derved viser du over for brugeren at der allerede er foretaget et default-valg. Brugeren kan så selv vælge noget andet, hvis han ønsker det.

Du vælger første element ved at lægge denne kode på formens Load-hændelse:
Me![LstTSN] = Me![LstTSN].Itemdata(0)

Du kan altså således referere til det første element på listen vha Me![LstTSN].Itemdata(0)
eller Forms![Din formular]!LstTSN.Itemdata(0)

.Itemdata(1) giver således element nr 2 osv.

mvh
Thomas



Fedest det fungerer!

Tusind tak - det var en ret vigtig del af projektet, og jeg taenkte paa dn helt forkerte maade :-)

Eneste fodnote hvis andre har et lignende problem. Hvis man bruger denne metode SKAL listboxens multiselect property vaere sat til enten "Simple" eller "Extended".

Tak for hjaelpen



t