Avatar billede -anders- Juniormester
23. juli 2003 - 16:43 Der er 16 kommentarer og
2 løsninger

Overføre markeret værdi fra en liste til en anden

Hej
Jeg har en formular på denne form er der to lister. Liste0 for data fra en tabel "tblPostNr" den anden liste har ikke nogen rowsource. Liste0 har egenskaben simpel markering.

Jeg markere så en eller flere værdier på liste0 og klikker så til sidst på en knap. Nedenstående kode ligger bagved knappen, men der sker ingenting når listen er sat til simpel markering, dog kan jeg godt få det til at virke hvis liste0 er sat til Enkel,men så kan jeg jo kun flytte en værdi og det er ikke meningen med det. nogen der kan hjælpe med at få koden til at virker, jeg arbejder i access2000

'Koden
Private Sub Kommandoknap3_Click()

Dim itm As Variant
Dim SQl As String

If Me!Liste0.ItemsSelected.Count > 0 Then

For Each itm In Me!Liste0.ItemsSelected

SQl = "Select * From tblPostNr where ID = " & Me!Liste0

Next itm

End If

Me.Liste2.RowSource = SQl

End Sub

mvh Anders
Avatar billede terry Ekspert
23. juli 2003 - 17:02 #1
IF there is more than one record in lost0 then the SQL will only contain the
last ID

Your SQL is getting changed for every selected record! and if you changed it to

SQl = SQ1 & "Select * From tblPostNr where ID = " & Me!Liste0

then the SQL would not be correct.

I have an idea what your looking for but I am off out for a while will take a look later.
Avatar billede -anders- Juniormester
23. juli 2003 - 17:06 #2
Okay, jeg arbejder lidt videre med det herfra
Avatar billede kabbak Professor
23. juli 2003 - 17:41 #3
SQl = SQl & "Select * From tblPostNr where ID = " & itm

er det ikke sådan ??.
Avatar billede terry Ekspert
23. juli 2003 - 17:43 #4
NO the sql would end up like

Select * From tblPostNr where ID = 1Select * From tblPostNr where ID = 2 ......


!!!!
Avatar billede -anders- Juniormester
23. juli 2003 - 17:45 #5
kabbak> ja desværre Terry har ret, jeg har lige forsøgt dit forslag, men det virker ikke, men ellers tak for indlægget
Avatar billede -anders- Juniormester
23. juli 2003 - 17:48 #6
Det er ikke noget must at det skal virke med simpel markering, enkel kan også gøre det, jeg mener blot overføre en markeret værdi af gangen

Anders
Avatar billede terry Ekspert
23. juli 2003 - 17:59 #7
Anders, I still intend looking later but thios may get yougoing inth eright direction.

BEFORE you loop through the selected records you make the SQL = ""Select * From tblPostNr where ID = "

Then for each selected record you append something like this

TheSelectedItem & " OR ID = "

Then when you are finished in the loop you need to remove the last

" OR ID = "

TheSelectedItem = the row selected, cant rememeber off hand the synatx for that

anyway I will get back later
Avatar billede -anders- Juniormester
23. juli 2003 - 18:02 #8
Okay Terry. jeg arbejder lidt videre i aften, når jeg kommer hjem fra jobbet, forløbig tak for indstasten

*SS* Anders
Avatar billede kabbak Professor
23. juli 2003 - 18:43 #9
Private Sub Kommandoknap4_Click()
Dim itm As Variant
Dim SQl As String
A = Me!Liste0.ItemsSelected.Count
If A >= 0 Then
SQl = "Select * From [Tabel1] where [ID] = "
For Each itm In Me!Liste0.ItemsSelected
SQl = SQl & Me!Liste0.ItemData(itm) & " or [ID] = "

Next itm
SQl = Left(SQl, Len(SQl) - 11)
End If

Me.Liste2.RowSource = SQl

End Sub
Avatar billede terry Ekspert
23. juli 2003 - 19:57 #10
that looks just fine kabbak :o)

With a couple of changes


Private Sub Command3_Click()
Dim itm As Variant
Dim SQl As String

If Me!Liste0.ItemsSelected.Count > 0 Then
    SQl = "Select * From [Tabel1] where [ID] = "
   
    For Each itm In Me!Liste0.ItemsSelected

        SQl = SQl & Me!Liste0.ItemData(itm) & " or [ID] = "

    Next itm

    Me.Liste2.RowSource = Left(SQl, Len(SQl) - 11)

End If

End Sub
Avatar billede kabbak Professor
23. juli 2003 - 20:40 #11
Tak for rettelserne, den er mere overskueligt nu, og ingen fejl(If A >= 0 Then) skulle selvfølgelig være ( If A > 0 Then )

tak Terry ;-)
Avatar billede -anders- Juniormester
23. juli 2003 - 20:43 #12
Hej Terry og kabbak
Nu har jeg testet begge jeres forslag, og de virker faktisk begge to, det var lige hvad jeg havede brug for, mange tak for det. Nu kommer så øjeblikket hvor points skal uddeles, hvad siger i til at dele dem, da i begge jo har givet et brugbart svar *SS*. Forresten det der med -11 i slutningen ad SQL,en hvad er det egenligt der sker der.

/Anders
Avatar billede kabbak Professor
23. juli 2003 - 20:50 #13
det er fordi at der i løkken bliver skrevet et ' or [ID] = ' til slut, den skal fjernes.
Avatar billede -anders- Juniormester
23. juli 2003 - 20:52 #14
Okay
Nu forstår jeg, hvad med points, hvis i skal dele, så smid lige svar
Avatar billede kabbak Professor
23. juli 2003 - 20:52 #15
Hvad siger du Terry ?
Avatar billede terry Ekspert
23. juli 2003 - 20:52 #16
fine by me Anders :o)
Avatar billede terry Ekspert
23. juli 2003 - 20:53 #17
and kabbak :o)
Avatar billede -anders- Juniormester
23. juli 2003 - 21:00 #18
Okay, her kommer her kommer så points til jer begge, tak for nu, nok ikke sidste gang i høre fra mig *SS*, meeeen er blevet mere ferm til det. hvem ved måske en dag jeg selv begynder at svare på indlæg her på eksperten *SSS*. forsat god aften

mvh Anders
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