Så här skapar du programmatiskt en ny kolumn i en Access-rapport
Ursprungligt KB-nummer: 812719
Sammanfattning
Den här artikeln beskriver hur du programmässigt skapar en kolumn i en Access-rapport. Du kan dynamiskt lägga till kolumnen i rapporten med hjälp av metod 1 eller metod 2 som beskrivs i avsnittet Mer information.
Obs!
Exempelkoden i den här artikeln använder Microsoft Data Access-objekt. För att den här koden ska köras korrekt måste du referera till Microsoft DAO 3.6-objektbiblioteket. Det gör du genom att klicka på Referenserpå verktygsmenyn i Visual Basic-Editor och kontrollera att kryssrutan Objektbibliotek för Microsoft DAO 3.6 är markerad.
Metod 1: Lägg till kolumner i rapporten programmatiskt
Följande exempel visar hur du programmatiskt skapar en Access-rapport. Koden genererar en rapport som baseras på postkällans fråga. Den genererade rapporten visar kolumnen Förnamn och kolumnen Efternamn i tabellen Anställda i Northwind.mdb exempeldatabas.
Starta åtkomst.
På hjälpmenyn klickar du på Exempeldatabaser och sedan på Northwind-exempeldatabas. Stäng formuläret Main Switchboard när det visas.
Obs!
I Access 2007 klickar du på Exempel i fönstret Mallkategorier , klickar på Northwind 2007 och klickar sedan på Ladda ned.
Klicka på Rapporter i den vänstra rutan.
Obs!
Hoppa över det här steget i Access 2007.
Dubbelklicka på Skapa rapport i designvyn i den högra rutan.
Obs!
I Access 2007 klickar du på Rapportdesign i gruppen Rapporter på fliken Skapa .
Klicka på Spara på Arkiv-menyn.
Obs!
I Access 2007 klickar du på Microsoft Office-knappen och sedan på Spara.
I dialogrutan Spara som skriver du AccessColumnBuilder och klickar sedan på OK.
Stäng rapporten.
I den vänstra rutan väljer du Formulär.
Obs!
Hoppa över det här steget i Access 2007.
Dubbelklicka på Skapa formulär i designvyn i den högra rutan.
Obs!
I Access 2007 klickar du på Formulärdesign i gruppen Formulär på fliken Skapa .
Lägg till en kommandoknapp i formuläret.
Obs!
I Access 2007 klickar du på Knapp för att lägga till en knapp i formuläret i gruppen Kontroller på fliken Design .
Högerklicka på kommandoknappen, klicka på Skapa händelse, klicka på Code Builder i dialogrutan Välj builder och klicka sedan på OK.
Lägg till koden som följer i OnClick-händelsen för kommandoknappen:
Dim txtNew As Access.TextBox Dim labNew As Access.Label Dim lngTop As Long Dim lngLeft As Long Dim lblCol As Long Dim rpt As Report Dim reportQuery As String Dim rs As DAO.Recordset Dim i As Integer Dim prevColwidth As long lngLeft = 0 lngTop = 0 ' Open the report to design. ' To make changes in the number of columns that appear at run time. DoCmd.OpenReport "AccessColumnBuilder", acViewDesign Set rpt = Reports![AccessColumnBuilder] ' Change the number of columns required as per your requirement. reportQuery = "SELECT FirstName, LastName FROM Employees" ' Open the recordset. Set rs = CodeDb().OpenRecordset(reportQuery) ' Assign the query as a record source to report control. rpt.RecordSource = reportQuery ' Set the value to zero so that the left margin is initialized. prevColwidth = 0 lblCol = 0 ' Print the page header for the report. For i = 0 To rs.Fields.Count - 1 Set labNew = CreateReportControl(rpt.Name, acLabel, acPageHeader, _ , rs.Fields(i).Name, lblcol, , , lngTop) labNew.SizeToFit lblCol = lblCol + 600 + labNew.Width Next ' Create the column depending on the number of fields selected in reportQuery. ' Assign the column value to new created column. For i = 0 To rs.Fields.Count - 1 ' Create new text box control and size to fit data. Set txtNew = CreateReportControl(rpt.Name, acTextBox, _ acDetail, , , lngLeft + 15 + prevColwidth, lngTop) txtNew.SizeToFit txtNew.ControlSource = rs(i).Name ' Modify the left margin depending on the number of columns ' and the size of each column. prevColwidth = prevColwidth + txtNew.width Next 'To save the modification to the report, uncomment the following line of code: 'DoCmd.Save ' View the generated report. DoCmd.OpenReport "AccessColumnBuilder", acViewPreview ' This opens the report in preview.
Spara och kör sedan formuläret.
Om du vill förhandsgranska rapporten klickar du på kommandoknappen som du lade till i steg 10.
Följande poster visas på den första sidan:
First NameLast Name NancyDavolio MargaretPeacock ...............
Rapporten innehåller kolumnen Förnamn och kolumnen Efternamn i tabellen Anställda . Du kan antingen spara rapporten eller göra nödvändiga ändringar i frågan och sedan köra rapporten.
Metod 2: Lägg till kolumner i rapporten vid körning genom att ange den befintliga kolumnens synliga egenskap
Det här exemplet visar hur du visar en ny kolumn i en rapport genom att ändra egenskapen Visible för kontrollen.
Rapporten innehåller fyra kolumner. Egenskapen Visible
för de tre första kolumnerna är inställd på ja. Egenskapen Visible
för den fjärde kolumnen är inställd på nej. Vid en sidbrytning Visible
anges egenskapen för den fjärde kolumnen till ja när kolumnen visas.
Starta åtkomst.
På hjälpmenyn klickar du på Exempeldatabaser och sedan på Northwind-exempeldatabas. Stäng formuläret Main Switchboard när det visas.
Obs!
I Access 2007 klickar du på Exempel i fönstret Mallkategorier , klickar på Northwind 2007 och klickar sedan på Ladda ned.
Följ dessa steg om du vill skapa en rapport med namnet Report1 och baseras på tabellen Produkter :
I fönstret Databas klickar du på Rapporter och sedan på Nytt.
Obs!
I Access 2007 klickar du på Rapportguiden i gruppen Rapporter på fliken Skapa .
I dialogrutan Ny rapport klickar du på Designvy, väljer Produkter och klickar sedan på OK.
Lägg till följande textrutor i avsnittet Information i rapporten. Justera textrutorna.
Placera motsvarande etiketter i avsnittet Sidhuvud i rapporten. Justera etiketterna.
Report: Report1 -------------------------- Caption: TestReport ControlSource: Products Label: Name: ProductName_label Text Box: Name: ProductName ControlSource: ProductName Label: Name: UnitPrice_label Text Box: Name: UnitPrice ControlSource: UnitPrice Label: Name: UnitsInStock_label Text Box: Name: UnitsInStock ControlSource: UnitsInStock Label: Name: TotalPrice_label Visible: No Text Box: Name: TotalPrice ControlSource: =[UnitPrice] * [UnitsInStock] Visible: No
Lägg till en textrutekontroll med följande egenskaper i avsnittet Information . Placera textrutan direkt ovanför kontrollen ProductName .
Den här kontrollen fungerar som en räknare för antalet poster i rapporten.
Text Box: ----------------------- Name: Counter ControlSource: =1 Visible: No RunningSum: Over All
Klicka på Sidbrytning i verktygslådan.
Obs!
I Access 2007 klickar du på Lägg till eller Ta bort sidbrytning i gruppen Kontroller på fliken Design .
Lägg till en sidbrytningskontroll i det nedre vänstra hörnet i avsnittet Information . Placera sidbrytningskontrollen direkt under ProductName-kontrollen . Ange egenskapen Namn till PageBreak.
I avsnittet Information anger du egenskapen OnFormat till följande händelseprocedur:
If Me![Counter] Mod 2 = 0 Then Me![PageBreak].Visible = True _ Else Me![PageBreak].Visible = False
Om du vill minska det tomma utrymmet i rapporten placerar du pekaren längst ned i avsnittet Information och sidfoten och drar sedan uppåt.
I avsnittet Sidfot anger du egenskapen OnPrint till den händelseprocedur som följer:
If Me![PageBreak].Visible = True Then Me![TotalPrice].Visible = True Me![TotalPrice_label].Visible = True Else Me![TotalPrice].Visible = False Me![TotalPrice_label].Visible = False End If
När PageBreak inträffar visas kolumnen TotalPrice .
Förhandsgranska rapporten. Följande poster visas på den första sidan:
Product NameUnit PriceUnit in Stock Cahi$18.0039 Chang$19.0017
Obs!
Den första sidan i rapporten innehåller tre kolumner.
Följande poster visas på den andra sidan:
Product NameUnit PriceUnit in StockTotal Amount Aniseed Syrup $10.0013 130 Chef A... $22.00 53 1166
Obs!
Sidbrytningen inträffar efter den första sidan. Därför innehåller den andra sidan i rapporten fyra kolumner.
Referenser
Mer information om hur du programmatiskt skapar en Access-rapport finns i följande artikel:
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för