Jeg lavede selv noget lignende en gang for længe siden, og da kom jeg til den konklusion at den eneste måde at gøre dette på er ved at lave en ekstra tabel hvor du overfører hver enkelt record x antal gange og så bruger denne tabel som recordsource for din rapport.
Hvis du er interesseret, kan jeg godt se om jeg kan grave et eller andet frem.
Jeg er helt enig med den forrige taler. Den eneste løsning er at lave en temporær tabel. Der er dog ingen grund til at lave en ny tabel, hvor alle informationer gemmes det antal gange, man vil have dem udskrevet.
Jeg går ud fra, at du i din tabel har en primær nøgle (ID), og du kan så bare oprette en temporær tabel, hvor denne nøgle angives det ønskede antal gange. Derefter kan denne tabel linkes med den oprindelige tabel i en forespørgsel, der anvendes som datakilde til rapporten.
Den temporære tabel (Tabel_ID) skal kun have et felt (type Long), og data kan fyldes i tabellen med denne kode (oprindelige tabel kaldes Tabel):
Sub dantabel() Dim rsIn As Recordset Dim rsOut As Recordset Dim ID As Long Dim I As Integer Set rsIn = CurrentDb.OpenRecordset(\"Tabel\") Set rsOut = CurrentDb.OpenRecordset(\"Tabel_ID\") While Not rsIn.EOF ID = rsIn.Fields(\"ID\") For I = 1 To rsIn.Fields(\"Antal\") rsOut.AddNew rsOut.Fields(\"ID\") = ID rsOut.Update Next I rsIn.MoveNext Wend rsIn.Close rsOut.Close End Sub
Denne tabel kan så anvendes i en forespørgsel:
SELECT Tabel_ID.ID, Tabel.* FROM Tabel_ID INNER JOIN Tabel ON Tabel_ID.ID = Tabel.ID;
Men hvorfra skal jeg kalde koden? Jeg prøvede at lægge den ind i et modul som en funktion, og så kalde denne i forepørgslen, men det virkede ikke rigtigt.
Jeg får \"Type mismatch\" i: Set rsIn = CurrentDb.OpenRecordset(\"Tabel\")
Jeg bruger autonr. i ID så typen burte være rigtig.
Du skal have dannet den temporære tabel inden du kører forespørgslen. Det smarteste er nok at kalde funktionen fra hændelsen _OnLoad for din rapport, så tabellen dannes, når du åbner rapporten. Jeg har ikke prøvet det af, men det burde virke.
mvh/Jens-Peter
PS: Du skal huske at den temporære tabel (som jeg her har kaldt Tabel_ID) skal være oprettet i forvejen, og funktionen bør derfor starte med at slette indholdet i tabellen. Dertil kan du oprette en sletteforespørgsel, og så køre den med koden:
dim qry as QueryDef DoCmd.SetWarnings false \' Undgå advarsel om at data slettes Set qry = DB.QueryDefs(\"NavnSletteForespørgsel\") qry.Execute DoCmd.SetWarnings true
Jeg vil ikke side det ovenstående er forkert, men jeg kan desværre ikke få det til at virke, men håber at finde en løsning inden længe. Jeg skal nok lægge løsningen op når jeg finder den.
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.