Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Välja poster i listruta som ska skrivas ut

Postades av 2005-10-25 13:42:29 - Jessica Rönnlund, i forum access, Tråden har 8 Kommentarer och lästs av 1348 personer

Hej
Jag har en listruta som presenterar ett resultat av en sökning i en tabell. Nu vill jag göra det möjligt att välja vilka poster i listrutan som ska skrivas ut. De posterna man väljer att markera ska hamna i en och samma rapport som man sedan kan skriva ut. I AccessProgrammering för dummies hittade jag något liknade, men då blir varje post en EGEN rapport. Någon som kan hjälpa mig på traven?

Mvh Jessica


Svara

Sv: Välja poster i listruta som ska skrivas ut

Postades av 2005-10-25 17:45:41 - Markus Larsson

Ja det är möjligt men kräver en hel del arbete.

Du behöver skapa en tabell som håller reda på vilka poster som användaren har klickat på, ex:
RadID Vilken post användaren klickat på.
UnikStämpel Visar vilken användare och tidpunkt användaren klickat på posten.

Exempel data:
RadID UnikStämpel
234 Markus Larsson 2005-10-25 17:20:12
345 Markus Larsson 2005-10-25 17:20:12

Den tabellen tar du sedan och joinar mot i frågan för rapporten, där du använder UnikStämpel som villkor så att du bara få de poster användaren har valt.

För att veta vilka poster användaren har valt kan du använda följande kod:
<code>Private Sub ÖppnaRapport()
Dim rsttemp As New ADODB.Recordset
Dim rad
Dim unikStämpel As String

'Sparar den unika stämpeln på formuläret så att den blir den samma på alla valda poster.
unikStämpel = CurrentUser() & " " & Now()

'Öppnar ett recordset till tabellen som innehåller valda poster.
rsttemp.Open "TabellAttSparaTill", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

'Loopar genom listans valda rader.
For Each rad In Me.listbox1.ItemsSelected
'För varje vald rad lägger vi till den i tabellen.
rsttemp.AddNew
'RadID hämtar vi från första kolumnen i listan, ändra 0 till något annat om det inte stämmer.
'rad visar vilken rad vi är på.
rsttemp!RadID = Me.listbox1.Column(0, rad)
'Lägger till den unika stämpeln vi skapade tidigare.
rsttemp!UnikStämpel = unikStämpel
rsttemp.Update
Next varmottagare
rsttemp.Close

'Öppnar rapporten
Docmd.OpenReport "RapportNamn"
End Sub</code>

Jag hoppas du förstår vad jag gör, har du väl gjort det en gång blir det enklare.
Det sämsta med det här arbetstättet är att det krävs en extra tabell, tyvärr vet jag inget annan lösning.

Markus


Svara

Sv: Välja poster i listruta som ska skrivas ut

Postades av 2005-10-25 21:40:42 - Johan Djupmarker

Detta är inte testat och innehåller säkert något fel, men denna principen bör fungera:

<code>
Dim i As Integer
Dim urval As String

For i = 0 To Me.Listruta0.ListCount
If Me.Listruta0.Selected(i) Then
urval = urval & Me.Listruta0.ItemData
End If
Next

If Len(urval) > 0 Then
DoCmd.OpenReport "Rapport1", acPreview, , "MinKolumn IN (" & Left(urval, Len(urval) - 2) & ")"
End If
</code>

/Johan


Svara

Sv:Välja poster i listruta som ska skrivas ut

Postades av 2005-10-27 11:25:54 - Andreas Hillqvist

  urval = urval & ", " & Me.Listruta0.ItemData


Antar jag det skall vara. ;o)


Svara

Sv: Välja poster i listruta som ska skrivas ut

Postades av 2005-10-27 11:59:37 - Johan Djupmarker

Japp, nästan (jag "valde" avgränsning på slutet), tack Andreas! Nu är det lite större chans att det fungerar... :)

    Dim i As Integer
    Dim urval As String
    
    For i = 0 To Me.Listruta0.ListCount
        If Me.Listruta0.Selected(i) Then
            urval = urval & Me.Listruta0.ItemData & ", "
        End If
    Next
    
    If Len(urval) > 0 Then
        DoCmd.OpenReport "Rapport1", acPreview, , "MinKolumn IN (" & Left(urval, Len(urval) - 2) & ")"
    End If


/Johan


Svara

Sv:Välja poster i listruta som ska skrivas ut

Postades av 2005-10-27 14:49:11 - Andreas Hillqvist

JAg brukar läägga till i början. För att slipp göra två funktionsanrop. Samt att jag rekomenderar ItemsSelected sammlingen för att slippa loopa igenom alla poster i listan:

Private Sub Command2_Click()
Dim varItem As Variant
Dim strIN As String  
    
    If List0.ItemsSelected.Count > 0 Then
        For Each varItem In List0.ItemsSelected
             strIN = strIN & ", " & List0.ItemData(varItem)
        Next
        strIN = Mid(strIN, 3)
        DoCmd.OpenReport "Rapport1", acPreview, , "MinKolumn IN (" & strIN & ")"
    Else
        MsgBox "Du har inte markerat några poster i listan!", vbExclamation
    End If
End Sub


Svara

Sv: Välja poster i listruta som ska skrivas ut

Postades av 2005-10-28 09:12:14 - Jessica Rönnlund

Tack för hjälpen alla!

Nu förstår jag bara inte vad jag ska byta ut "MinKolumn" till.

Jessica


Svara

Sv:Välja poster i listruta som ska skrivas ut

Postades av 2005-10-28 09:32:21 - Johan Djupmarker

Du ska ha namnet på en kolumn med unika värden som identifierar dina poster, t.ex. en kolumn av typen "Räknare".

/Johan


Svara

Sv: Välja poster i listruta som ska skrivas ut

Postades av 2005-10-28 10:11:37 - Jessica Rönnlund

Nu fungerar det kanonbra =) Jag använde den här:

Private Sub SkrivUtValda_Click()
Dim varItem As Variant
Dim strIN As String

If List0.ItemsSelected.Count > 0 Then
For Each varItem In List0.ItemsSelected
strIN = strIN & ", " & List0.ItemData(varItem)
Next
strIN = Mid(strIN, 3)
DoCmd.OpenReport "SQL", acViewPreview, , "ID IN (" & strIN & ")"
Else
MsgBox "Du har inte markerat några poster i listan!", vbExclamation
End If

End Sub


Tackar så mycket! /Jessica


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 770
27 960
271 761
483
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies