Avatar billede -anders- Juniormester
09. marts 2014 - 12:18 Der er 2 kommentarer og
1 løsning

Listboxe på formular, add/remove item. Access 2010

Hej eksperter

Denne her er lidt svær at forklare, men jeg prøver.

Jeg har en formular med 2 listboxe som er navngivet lst010 og lst011. lst010 har 2 kolonner.Rækkekilden (RowSource) til lst010 er under egenskaber angivet til Tabel/Forspørgsel hvor kolonne 0 er af datatypen "Tal", og kolonne 1 er af datatypen "tekst". lst011 er under egenskaber sat til værdiliste (ValueList), antal kolonner er sat til 2, altså samme antal kolonner som lst010.

På min formular har jeg indsat 2 kommandoknapper, cmdadd, og cmdundo.

Problem:

Jeg markere så en Item på lst010, når der efterfølgende klikkes på cmdadd skal den markeret Item på lst010 tilføjes lst011 (som er angivet som værdiliste), kolonne 0 på lst011 skal så svare til kolonne 0 på lst010, og kolonne 1 på lst011 skal så svare til kolonne 1 på lst010. Hvis jeg så markere en item på lst011, og efterfølgende klikker på cmdundo skal den markeret item fjernes fra lst011.

Jeg har pt. nedenstående kode for knappen cmdadd

Me!lst011.AddItem Item:=Me!lst010.Column(0)

Koden virker fint, og tilføjer de items jeg markeret på lst010 til lst011, men spørgsmålet er? Hvordan for jeg kolonne 1 med fra lst010 til lst011? Og hvordan fjerner jeg en markeret item fra lst011 ved klik på cmdundo

Er der nogen bud på en løsning på denne solbeskinnet søndag :-)

Hilsen
Anders.
Avatar billede -anders- Juniormester
09. marts 2014 - 14:08 #1
Så fandt jeg ud af koden til knappen cmdadd :-)

Dim col0 As Integer 'kolonne 0 på lst010
Dim col1 As String 'kolonne 1 på lst010
col0 = Me!lst010.Column(0)
col1 = Me!lst010.Column(1)

Me!lst011.AddItem Item:=col0 & ";" & col1
Avatar billede -anders- Juniormester
09. marts 2014 - 14:58 #2
Så fandt jeg ud af koden til knappen cmdremove :-)

Private Sub cmdremove_Click()
On Error GoTo errhandler
Dim varItem As Variant
varItem = Me!lst011 'fanger markeret item på lst011 og gemmer den i variablen VarItem
Me!lst011.RemoveItem Index:=varItem
errhandler:
If Err.Number = 6013 Then Err.Clear 'hvis der ikke findes item på lst011 eller hvis der ikke markeres et eksisterende item på lst011 rydes fejlkoden 6013 og subben forlades'
Exit Sub
End Sub

Indrømmet, koderne til de 2 knapper er ikke det mest elegante, men det virker. Jeg giver gerne 100 points til en alternativ løsning, så jeg lader spørgsmålet stå åbent lidt endnu :-)
Avatar billede -anders- Juniormester
11. marts 2014 - 19:50 #3
Nå, det virker så jeg lukker spørgsmålet
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