13. oktober 2006 - 12:14Der er
41 kommentarer og 1 løsning
Variabel antal af Labels
Hejsa Genier ;o)
Jeg har nogle rapporter som jeg skal have printet. Hver rapport er baseret på en tabel, hvori jeg har en celle som hedder [AntKopi], denne varierer meget fra row til row, og fortæller hvor mange kopier der skal laves af hver enkel rapport.
Øhh, er det muligt og bruge denne variabel til og lave x antal kopier af hver rapport enten under udskrifning, eller under generering af rapporten. ??
Dim i As Integer Dim AntKopi As Integer If IsNull([Antal]) = -1 Then MsgBox "Du har ikke indtastet antal eksemplarer." Exit Sub End If AntKopi = [Antal] If Antalex <= 1 Then MsgBox "Du har ikke indtastet antal eksemplarer." Exit Sub End If For i = 1 To AntKopi DoCmd.OpenReport "Rapport2", acNormal, "", "" Next i
Synes godt om
Slettet bruger
13. oktober 2006 - 13:07#3
Hvis du har en tabel, hvor der er rapportnavn og antkopi, så kan du lave en kombiboks på disse 2 variable. Så skjuler du antkopi ved at sætte bredden på kolonne 2 til 0. Så kan du have et skjult felt, som hedder antal og et som hedder navn. Så bliver koden:
Private sub NavnKombiboks_afterupdate() me.navn=me.navnkombiboks.column(0) me.antal=me.navnkombiboks.column(1) end sub
Så laver du en print knap, som siger:
Private sub PrintKnap_click() dim x for x=1 to me.antal docmd.openreport me.navn, acnormal next x end sub
spq: hvor laver jeg den henne ? Jeg gætter på at jeg skal have noget VisBas startet op ?
Mugs: Jeg skal ikke indtaste antallet af kopier. Men for at den For-Next løkke skal virke, så skal jeg jo ha ´plukket' værdien af cellen [AntKopi] og det kan jeg ikke.
Har prøvet Me.AntKopi og Me.AntKopi.Value og får ikke andet end en RuntimeError 2465 ;o(
Synes godt om
Slettet bruger
13. oktober 2006 - 13:27#5
Du skal have en formular i programmet, hvor du har tænkt dig at skrive ud fra.
Denne metode er den som jeg selv har forsøgt(og et par stykker som ligner), men alle desværre uden anden resultat end Compile error og det som er værre! ;o/
Jeg har én knap som der skal udskrive 15 forskellige rapporter, baseret på 15 rows i tidligere nævnt tabel. (Kan dog variere lidt op og ned, men det er jo ligegyldigt i denne sammenhæng)
ja, uden dikkedarer, men hver rapport skal ud i forskellige mængder fra dag til dag, ellers havde jeg bare hardcodet det største antal, og så stået og frasorteret en masse print (Lidt som jeg gør i dag) ;o)
Jeg leger lidt med en lille ting, men det vil ikke rigtig virke!
Dim i Dim rs As Recordset Set rs = db.OpenRecordset("Rapporter", dbOpenDynaset) 'Snapshot) If Not rs.EOF Then rs.MoveFirst Do For i = 1 To Me.AntKopi DoCmd.OpenReport "Rapport", acNormal ; MsgBox "test", vbInformation Next i rs.MoveNext Loop Until rs.EOF End If
Synes godt om
Slettet bruger
13. oktober 2006 - 14:24#34
Dim i as integer Dim r as DAO.Recordset Set r = me.recordset Do Until r.EOF
For i = 1 to Me.AntKopi DoCmd.OpenReport me.rapport, acNormal Next i
r.Movenext Loop
Synes godt om
Slettet bruger
13. oktober 2006 - 14:26#35
Dette kræver selvfølgelig at du stadig har tabellen sat på som kilde til formularen..
SPQ: Jeg tror nok du har hjulpet mig en del videre, nu gider jeg ikke mere i dag, nu begynder koden og drille for meget til at jeg kan tage den seriøst! ;o/
Mange tak for hjælpen..
Mvh, Michael.
Synes godt om
Slettet bruger
13. oktober 2006 - 14:56#41
Altså hvis jeg laver en tabel, med 2 felter, nemlig rapport og antkopi, og bruger tabellen til Record Source på formularen. Herefter en printknap med koden:
Private Sub UdskriftsKnap_Click() Dim r As DAO.Recordset Set r = Me.Recordset Do Until r.EOF Dim i As Integer For i = 1 To Me.AntKopi MsgBox Me.Rapport Next i r.MoveNext Loop End Sub
Ja den har jeg også lige prøvet, men jeg tror at det er fordi selve rapporten linker til samme tabel, og den så skriver alle felterne ud.
men måske man bare skal lege lidt med
DoCmd.OpenReport me.rapport, acNormal,,ID
for låse den fast til kun en enkelt record!
Mange tak for hjælpen..
Synes godt om
Ny brugerNybegynder
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.