Jak programově vytvořit nový sloupec v sestavě Accessu
Původní číslo KB: 812719
Souhrn
Tento článek popisuje, jak programově vytvořit sloupec v sestavě Accessu. Sloupec můžete dynamicky přidat do sestavy pomocí metody 1 nebo metody 2, které jsou popsány v části Další informace.
Poznámka
Ukázkový kód v tomto článku používá objekty Microsoft Data Access. Aby tento kód běžel správně, musíte odkazovat na knihovnu objektů Microsoft DAO 3.6. Provedete to tak, že kliknete na Odkazy v nabídce Nástroje v Editor Jazyka Visual Basic a ujistěte se, že je zaškrtnuté políčko Knihovna objektů Microsoft DAO 3.6.
Metoda 1: Přidání sloupců do sestavy prostřednictvím kódu programu
Následující příklad ukazuje, jak vytvořit sestavu Accessu prostřednictvím kódu programu. Kód vygeneruje sestavu, která je založená na dotazu na zdroj záznamů. Vygenerovaná sestava zobrazí sloupec Jméno a Sloupec Příjmení v tabulce Zaměstnanci Northwind.mdb ukázkové databáze.
Spusťte Access.
V nabídce Nápověda klikněte na Ukázkové databáze a potom klikněte na Ukázková databáze Northwind. Zavřete formulář Hlavní přepínací panel , jakmile se zobrazí.
Poznámka
V Accessu 2007 klikněte v podokně Kategorie šablon na Ukázka, klikněte na Northwind 2007 a potom klikněte na Stáhnout.
V levém podokně klikněte na Sestavy.
Poznámka
V Accessu 2007 tento krok přeskočte.
V pravém podokně poklikejte na Vytvořit sestavu v návrhovém zobrazení.
Poznámka
V Accessu 2007 klikněte na Návrh sestavy ve skupině Sestavy na kartě Vytvořit .
V nabídce Soubor klikněte na Uložit.
Poznámka
V aplikaci Access 2007 klikněte na tlačítko Microsoft Office a potom klikněte na Uložit.
V dialogovém okně Uložit jako zadejte AccessColumnBuilder a klikněte na OK.
Zavřete sestavu.
V levém podokně vyberte Formuláře.
Poznámka
V Accessu 2007 tento krok přeskočte.
V pravém podokně poklikejte na Vytvořit formulář v návrhovém zobrazení.
Poznámka
V Accessu 2007 klikněte na Návrh formuláře ve skupině Formuláře na kartě Vytvořit .
Přidejte do formuláře příkazové tlačítko.
Poznámka
V Accessu 2007 klikněte na tlačítko a přidejte tlačítko do formuláře ve skupině Ovládací prvky na kartě Návrh .
Klikněte pravým tlačítkem myši na příkazové tlačítko, klikněte na Sestavit událost, v dialogovém okně Zvolit tvůrce kódu klikněte na Tvůrce kódu a potom klikněte na OK.
Přidejte následující kód do události OnClick příkazového tlačítka:
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.
Uložte formulář a spusťte ho.
Pokud chcete zobrazit náhled sestavy, klikněte na příkazové tlačítko, které jste přidali v kroku 10.
Následující záznamy se zobrazí na první stránce:
First NameLast Name NancyDavolio MargaretPeacock ...............
Sestava obsahuje sloupec Jméno a sloupec Příjmení v tabulce Zaměstnanci . Můžete buď uložit sestavu, nebo provést požadované změny dotazu a pak sestavu spustit.
Metoda 2: Přidání sloupců do sestavy za běhu nastavením vlastnosti visible existujícího sloupce
Tento příklad ukazuje, jak zobrazit nový sloupec v sestavě manipulací s vlastností Visible ovládacího prvku.
Sestava obsahuje čtyři sloupce. Vlastnost Visible
prvních tří sloupců je nastavená na ano. Vlastnost Visible
čtvrtého sloupce je nastavena na hodnotu Ne. Na konci Visible
stránky je vlastnost čtvrtého sloupce nastavena na ano , když se sloupec zobrazí.
Spusťte Access.
V nabídce Nápověda klikněte na Ukázkové databáze a potom klikněte na Ukázková databáze Northwind. Zavřete formulář Hlavní přepínací panel , jakmile se zobrazí.
Poznámka
V Accessu 2007 klikněte v podokně Kategorie šablon na Ukázka, klikněte na Northwind 2007 a potom klikněte na Stáhnout.
Pokud chcete vytvořit sestavu s názvem Sestava1 založenou na tabulce Produkty , postupujte takto:
V okně Databáze klikněte na Sestavy a potom klikněte na Nový.
Poznámka
V Accessu 2007 klikněte na Průvodce sestavou ve skupině Sestavy na kartě Vytvořit .
V dialogovém okně Nová sestava klikněte na Návrhové zobrazení, vyberte Produkty a potom klikněte na OK.
Do části Podrobnosti sestavy přidejte následující textová pole. Zarovnejte textová pole.
Vložte odpovídající popisky do oddílu Záhlaví stránky sestavy. Zarovnejte popisky.
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
Do oddílu Podrobnosti přidejte ovládací prvek textového pole s následujícími vlastnostmi. Umístěte textové pole přímo nad ovládací prvek ProductName .
Tento ovládací prvek funguje jako čítač počtu záznamů v sestavě.
Text Box: ----------------------- Name: Counter ControlSource: =1 Visible: No RunningSum: Over All
Na panelu nástrojů klikněte na Konec stránky.
Poznámka
V Accessu 2007 klikněte na Přidat nebo odebrat konec stránky ve skupině Ovládací prvky na kartě Návrh .
Přidejte ovládací prvek konce stránky do levého dolního rohu oddílu Podrobnosti . Umístěte ovládací prvek konce stránky přímo pod ovládací prvek ProductName . Nastavte vlastnost Name na PageBreak.
V části Podrobnosti nastavte vlastnost OnFormat na následující proceduru události:
If Me![Counter] Mod 2 = 0 Then Me![PageBreak].Visible = True _ Else Me![PageBreak].Visible = False
Pokud chcete zmenšit prázdné místo v sestavě, umístěte ukazatel mezi dolní části oddílu Podrobnosti a Zápatí stránky a potom přetáhněte prstem nahoru.
V části Zápatí stránky nastavte vlastnost OnPrint na následující proceduru události:
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
Když se zobrazí PageBreak , zobrazí se sloupec TotalPrice(Celková cena ).
Zobrazte náhled sestavy. Následující záznamy se zobrazí na první stránce:
Product NameUnit PriceUnit in Stock Cahi$18.0039 Chang$19.0017
Poznámka
První stránka sestavy obsahuje tři sloupce.
Následující záznamy se zobrazí na druhé stránce:
Product NameUnit PriceUnit in StockTotal Amount Aniseed Syrup $10.0013 130 Chef A... $22.00 53 1166
Poznámka
Konec stránky se zobrazí za první stránkou. Proto druhá stránka sestavy obsahuje čtyři sloupce.
Odkazy
Další informace o tom, jak programově vytvořit sestavu accessu, najdete v následujícím článku:
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro