Uuden sarakkeen ohjelmallinen luominen Access-raportissa
Alkuperäinen KT-numero: 812719
Yhteenveto
Tässä artikkelissa kuvataan, miten Access-raportin sarake luodaan ohjelmallisesti. Voit lisätä sarakkeen dynaamisesti raporttiin joko menetelmällä 1 tai 2, jotka on kuvattu Lisätietoja-osiossa.
Huomautus
Tämän artikkelin mallikoodi käyttää Microsoft Data Access -objekteja. Jotta tämä koodi toimisi oikein, sinun on viitattava Microsoft DAO 3.6 -objektikirjastoon. Voit tehdä tämän valitsemalla Visual Basic -Kirjoitusavustaja Työkalut-valikosta Viittaukset ja varmistamalla, että Microsoft DAO 3.6 -objektikirjasto -valintaruutu on valittuna.
Tapa 1: Sarakkeiden lisääminen raporttiin ohjelmallisesti
Seuraavassa esimerkissä näytetään, miten voit luoda Ohjelmallisesti Access-raportin. Koodi luo raportin, joka perustuu tietuelähteen kyselyyn. Luotu raportti näyttää Northwind.mdb esimerkkitietokannan Työntekijät-taulukonEtunimi-sarakkeen ja Sukunimi-sarakkeen.
Käynnistä Access.
Valitse Ohje-valikostaMallitietokannat ja valitse sitten Northwind-mallitietokanta. Sulje Valikkonäyttö-päälomake , kun se tulee näkyviin.
Huomautus
Napsauta Access 2007:ssä MallitMallit-ruudussa, valitse Northwind 2007 ja valitse sitten Lataa.
Valitse vasemmassa ruudussa Raportit.
Huomautus
Ohita tämä vaihe Access 2007:ssä.
Kaksoisnapsauta oikeanpuoleisessa ruudussa Luo raportti rakennenäkymässä.
Huomautus
Valitse Access 2007:ssä Raportin rakenneLuo-välilehden Raportit-ryhmästä.
Valitse Tiedosto-valikostaTallenna.
Huomautus
Napsauta Access 2007:ssä Microsoft Office -painiketta ja valitse sitten Tallenna.
Kirjoita Tallenna nimellä -valintaikkunaan AccessColumnBuilder ja valitse sitten OK.
Sulje raportti.
Valitse vasemmassa ruudussa Lomakkeet.
Huomautus
Ohita tämä vaihe Access 2007:ssä.
Kaksoisnapsauta oikeanpuoleisessa ruudussa Luo lomake rakennenäkymässä.
Huomautus
Valitse Access 2007:ssä Lomakkeen rakenneLuo-välilehden Lomakkeet-ryhmästä.
Lisää komentopainike lomakkeeseen.
Huomautus
Lisää painike lomakkeeseen Rakenne-välilehdenOhjausobjektit-ryhmässä Access 2007:ssä napsauttamalla Painike-painiketta.
Napsauta komentopainiketta hiiren kakkospainikkeella, valitse Muodosta tapahtuma, valitse Koodin muodostinValitse muodostin -valintaikkunassa ja valitse sitten OK.
Lisää komentopainikkeen OnClick-tapahtumaan seuraava koodi:
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.
Tallenna ja suorita lomake.
Esikatsele raporttia napsauttamalla vaiheessa 10 lisäämääsi komentopainiketta.
Seuraavat tietueet näkyvät ensimmäisellä sivulla:
First NameLast Name NancyDavolio MargaretPeacock ...............
Raportti sisältää Etunimi-sarakkeen ja Työntekijät-taulukon Sukunimi-sarakkeen. Voit joko tallentaa raportin tai tehdä tarvittavat muutokset kyselyyn ja suorittaa sitten raportin.
Tapa 2: Sarakkeiden lisääminen raporttiin suorituksen aikana määrittämällä olemassa olevan sarakkeen näkyvä ominaisuus
Tässä esimerkissä näytetään, miten uusi sarake näytetään raportissa muokkaamalla ohjausobjektin Visible-ominaisuutta.
Raportti sisältää neljä saraketta. Kolmen Visible
ensimmäisen sarakkeen ominaisuudeksi on määritetty Kyllä. Visible
Neljännen sarakkeen ominaisuuden arvoksi on asetettu Ei. Sivunvaihdon neljännen sarakkeen ominaisuudeksi määritetään Kyllä, Visible
kun sarake tulee näkyviin.
Käynnistä Access.
Valitse Ohje-valikostaMallitietokannat ja valitse sitten Northwind-mallitietokanta. Sulje Valikkonäyttö-päälomake , kun se tulee näkyviin.
Huomautus
Valitse Access 2007:ssä Mallimallit-ruudussa Mallit, valitse Northwind 2007 ja valitse sitten Lataa.
Jos haluat luoda raportin, jonka nimi on Report1 ja joka perustuu Products-taulukkoon , toimi seuraavasti:
Valitse Tietokanta-ikkunassaRaportit ja valitse sitten Uusi.
Huomautus
Valitse Access 2007:ssä Raportin ohjattu toimintoLuo-välilehdenRaportit-ryhmästä.
Valitse Uusi raportti -valintaikkunassa Rakennenäkymä, valitse Tuotteet ja valitse sitten OK.
Lisää seuraavat tekstiruudut raportin Tiedot-osaan . Tasaa tekstiruudut.
Sijoita vastaavat otsikot raportin Sivun otsikko - osaan. Tasaa otsikot.
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
Lisää Tekstiruutu-ohjausobjekti seuraavien ominaisuuksien avulla Tiedot-osioon . Sijoita tekstiruutu suoraan ProductName-ohjausobjektin yläpuolelle.
Tämä ohjausobjekti toimii laskurina raportin tietueiden määrälle.
Text Box: ----------------------- Name: Counter ControlSource: =1 Visible: No RunningSum: Over All
Valitse Työkalut-ruudustaSivunvaihto.
Huomautus
Valitse Access 2007:ssä Rakenne-välilehden Ohjausobjektit-ryhmästäLisää tai poista sivunvaihto.
Lisää sivunvaihto-ohjausobjekti Tiedot-osan vasempaan alakulmaan. Sijoita sivunvaihto-ohjausobjekti suoraan ProductName-ohjausobjektin alapuolelle. Määritä Nimi-ominaisuudeksiPageBreak.
Määritä Tiedot-osassaOnFormat-ominaisuudeksi seuraava tapahtumatoimintosarja:
If Me![Counter] Mod 2 = 0 Then Me![PageBreak].Visible = True _ Else Me![PageBreak].Visible = False
Jos haluat vähentää raportin tyhjää tilaa, sijoita osoitin Tiedot-osan alaosan ja Sivun alatunnisteen väliin ja vedä sitten ylös.
Määritä Sivun alatunniste - osassa OnPrint-ominaisuudeksi seuraava tapahtumatoimintosarja:
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
Kun PageBreak tapahtuu, näkyviin tulee TotalPrice-sarake .
Esikatsele raporttia. Seuraavat tietueet näkyvät ensimmäisellä sivulla:
Product NameUnit PriceUnit in Stock Cahi$18.0039 Chang$19.0017
Huomautus
Raportin ensimmäisellä sivulla on kolme saraketta.
Seuraavat tietueet näkyvät toisella sivulla:
Product NameUnit PriceUnit in StockTotal Amount Aniseed Syrup $10.0013 130 Chef A... $22.00 53 1166
Huomautus
Sivunvaihto tapahtuu ensimmäisen sivun jälkeen. Siksi raportin toisella sivulla on neljä saraketta.
Lisätietoja
Lisätietoja Access-raportin ohjelmallisesti luomisesta on seuraavassa artikkelissa:
Palaute
https://aka.ms/ContentUserFeedback.
Tulossa pian: Vuoden 2024 aikana poistamme asteittain GitHub Issuesin käytöstä sisällön palautemekanismina ja korvaamme sen uudella palautejärjestelmällä. Lisätietoja on täällä:Lähetä ja näytä palaute kohteelle