Avatar billede nca Juniormester
21. januar 2002 - 15:57 Der er 6 kommentarer og
1 løsning

Flyt markerede elementer fra listbox til tabel

Jeg vil gerne kunne plukke nogle poster fra en tabel for at udskrive labels med disse. Jeg forestiller mig at vise alle posterne i en listbox, flytte de markerede over i en tabel og herefter udskrive labels med den nye tabel som datakilde.
Hvordan flytter jeg de markerede elementer fra en liste over i en tabel? Eller er der en smartere måde at løse opgaven på?
Avatar billede ea_data Nybegynder
21. januar 2002 - 17:50 #1
Du kan finde de valgte poster med denne kode:

For x = 0 To List1.ListCount - 1
If List1.Selected(x) = True Then
    \'her indsætter du så den kode du vil have udført
    \'du kan fx lægge data i et array eller som her
    \'oprette en listbox mere, som viser poster til udskrivning

    List2.AddItem List1.List(x)
End If
Next
Avatar billede nca Juniormester
21. januar 2002 - 19:23 #2
>>ea data
Jeg kan kun finde ud af at udskrive labels fra en tabel eller en forespørgsel, så jeg har brug for lidt mere hjælp.
Jeg har også overvejet at tilføje at felt til tabellen, som så kan sættes til true eller false afhængig af markeringen, men jeg kan ikke finde ud af ændre feltets værdi i basen for de markerede poster i listen
Avatar billede ea_data Nybegynder
21. januar 2002 - 20:30 #3
Kan du ikke bare kalde den rutine, som du bruger til at udskrive med, hver gang du har en post i listboxen som skal udskrives fx noget i stil med:

For x = 0 To List1.ListCount - 1
If List1.Selected(x) = True Then
    \'her indsætter du så den kode du vil have udført
    \'du kan fx lægge data i et array eller som her
    \'oprette en listbox mere, som viser poster til udskrivning

    udskriftsrutine List1.List(x)
End If
Next
Avatar billede nca Juniormester
21. januar 2002 - 20:49 #4
Jeg laver en labeludskrift vha. en wizard, hvor 1. valg er tabel eller forespørgsel. Herefter kommer labelformat og til sidst placeringen af felterne på den enkelte label.
Det bliver nok for meget, hvis jeg skal klare alt det selv.
Så jeg håber stadig på lidt mere hjælp :-)
Avatar billede ea_data Nybegynder
21. januar 2002 - 23:01 #5
Du kan overføre data fra listboxen til en tabel, som du har oprettet ved at bruge en datakontrol fx således:

Private Sub Command2_Click()

Data1.Recordset.MoveFirst
For x = 0 To List2.ListCount - 1
    Data1.Recordset.AddNew
    Data1.Recordset.Fields(0) = List2.List(x)
    Data1.Recordset.Update
Next

End Sub
------------------------
Du skal huske at sætte DataBaseName i porperties for data1 til navn og sti på den tabel som du vil lægger oplysningerne fra listboxen ind i fx:
E:\\Programmer\\Microsoft Visual Studio\\VB98\\Tabel.mdb
Avatar billede nca Juniormester
22. januar 2002 - 14:23 #6
Jeg har efter diverse forsøg fundet den bedste løsning (tror jeg nok). Nemlig at lave en checkboks i min listbox og så bruge dette felt i en forespørgsel, så nu har jeg blot ét problem tilbage:
Når jeg indlæser tabellen vil jeg gerne ha' slettet alle gamle mærker. Jeg kan godt bruge en opdateringsforespørgsel, men så får jeg diverse messagebokse smidt i hovedet. Skal jeg undgå det, skal jeg rette de generelle indstillinger i Access og det er ikke en mulig løsning. Så det jeg efterlyser er en stump kode, der kan sætte feltet Labels til false for samtlige poster i min tabel (Kunder), uden at der skal bekræftes noget som helst.

>>ea data
Hvis du ikke gider lege med mere, så sig til. Så får du dine point og jeg opretter spørgsmålet på ny :-)
Avatar billede nca Juniormester
22. januar 2002 - 14:44 #7
Jeg fandt selv ud af det. DoCmd.SetWarnings False var løsningen.
>>ea data
Tak for inspiration til at arbejde videre.
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
Kurser inden for grundlæggende programmering

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