Access raporunda program aracılığıyla yeni sütun oluşturma
Özgün KB numarası: 812719
Özet
Bu makalede, Access raporunda program aracılığıyla sütun oluşturma açıklanmaktadır. "Daha Fazla Bilgi" bölümünde açıklanan Yöntem 1 veya Yöntem 2'yi kullanarak sütunu rapora dinamik olarak ekleyebilirsiniz.
Not
Bu makaledeki örnek kodda Microsoft Veri Erişim Nesneleri kullanılmaktadır. Bu kodun düzgün çalışması için Microsoft DAO 3.6 Nesne Kitaplığı'na başvurmanız gerekir. Bunu yapmak için, Visual Basic Düzenleyici Araçlar menüsünde Başvurular'a tıklayın ve Microsoft DAO 3.6 Nesne Kitaplığı onay kutusunun seçili olduğundan emin olun.
Yöntem 1: Rapora Program Aracılığıyla Sütun Ekleme
Aşağıdaki örnekte program aracılığıyla bir Access raporunun nasıl oluşturulacağı gösterilmektedir. Kod, kayıt kaynağı sorgusunu temel alan bir rapor oluşturur. Oluşturulan rapor, Northwind.mdb örnek veritabanının Çalışanlar tablosunun Ad sütununu ve Soyadı sütununu görüntüler.
Access'i başlatın.
Yardım menüsünde Örnek Veritabanları'na ve ardından Northwind Örnek Veritabanı'na tıklayın. Göründüğünde Ana Geçiş Panosu formunu kapatın.
Not
Access 2007'de Şablon Kategorileri bölmesinde Örnek'e tıklayın, Northwind 2007'ye ve ardından İndir'e tıklayın.
Sol bölmede Raporlar'a tıklayın.
Not
Access 2007'de bu adımı atlayın.
Sağ bölmede Tasarım Görünümü'nde rapor oluştur'a çift tıklayın.
Not
Access 2007'de, Oluştur sekmesinin Raporlar grubunda RaporTasarımı'na tıklayın.
Dosya menüsünde Kaydet'e tıklayın.
Not
Access 2007'de Microsoft Office Düğmesi'ne ve ardından Kaydet'e tıklayın.
Farklı Kaydet iletişim kutusunda AccessColumnBuilder yazıp Tamam'a tıklayın.
Raporu kapatın.
Sol bölmede Formlar'ı seçin.
Not
Access 2007'de bu adımı atlayın.
Sağ bölmede Tasarım Görünümü'nde Form oluştur'a çift tıklayın.
Not
Access 2007'de, Oluştur sekmesinin Formlar grubunda Form Tasarımı'na tıklayın.
Forma bir komut düğmesi ekleyin.
Not
Access 2007'de, Tasarım sekmesinin Denetimler grubunda forma düğme eklemek için Düğme'ye tıklayın.
Komut düğmesine sağ tıklayın, Olay Oluştur'a tıklayın, Oluşturucu Seç iletişim kutusunda Kod Oluşturucusu'na tıklayın ve ardından Tamam'a tıklayın.
Komut düğmesinin OnClick olayına aşağıdaki kodu ekleyin:
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.
Formu kaydedin ve çalıştırın.
Raporu önizlemek için 10. adımda eklediğiniz komut düğmesine tıklayın.
İzleyen kayıtlar ilk sayfada görünür:
First NameLast Name NancyDavolio MargaretPeacock ...............
Rapor, Çalışanlar tablosunun Ad sütununu ve Soyadı sütununu içerir. Raporu kaydedebilir veya sorguda gerekli değişiklikleri yapıp raporu çalıştırabilirsiniz.
Yöntem 2: Var olan sütunun görünür özelliğini ayarlayarak çalışma zamanında rapora sütun ekleme
Bu örnekte, denetimin Visible özelliğini düzenleyerek raporda yeni bir sütunun nasıl görüntüleneceği gösterilmektedir.
Rapor dört sütun içerir. Visible
İlk üç sütunun özelliği evet olarak ayarlanır. Visible
Dördüncü sütunun özelliği hayır olarak ayarlanır. Sayfa sonunda, Visible
dördüncü sütunun özelliği, sütun göründüğünde evet olarak ayarlanır.
Access'i başlatın.
Yardım menüsünde Örnek Veritabanları'na ve ardından Northwind Örnek Veritabanı'na tıklayın. Göründüğünde Ana Geçiş Panosu formunu kapatın.
Not
Access 2007'de Şablon Kategorileri bölmesinde Örnek'e tıklayın, Northwind 2007'ye ve ardından İndir'e tıklayın.
Rapor1 adlı ve Ürünler tablosunu temel alan bir rapor oluşturmak için şu adımları izleyin:
Veritabanı penceresinde Raporlar'a ve ardından Yeni'ye tıklayın.
Not
Access 2007'de, Oluştur sekmesinin Raporlar grubunda Rapor Sihirbazı'na tıklayın.
Yeni Rapor iletişim kutusunda Tasarım Görünümü'ne tıklayın, Ürünler'i seçin ve ardından Tamam'a tıklayın.
Raporun Ayrıntı bölümüne aşağıdaki metin kutularını ekleyin. Metin kutularını hizalayın.
İlgili etiketleri raporun Sayfa Üst Bilgisi bölümüne yerleştirin. Etiketleri hizalayın.
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
Ayrıntı bölümüne aşağıdaki özelliklere sahip bir metin kutusu denetimi ekleyin. Metin kutusunu doğrudan ProductName denetiminin üzerine yerleştirin.
Bu denetim, rapordaki kayıt sayısı için bir sayaç işlevi görür.
Text Box: ----------------------- Name: Counter ControlSource: =1 Visible: No RunningSum: Over All
Araç Kutusu'ndaSayfa Sonu'na tıklayın.
Not
Access 2007'de, Tasarım sekmesinin Denetimler grubunda Sayfa Sonu Ekle veya Kaldır'a tıklayın.
Ayrıntı bölümünün sol alt köşesine sayfa sonu denetimi ekleyin. Sayfa sonu denetimini doğrudan ProductName denetiminin altına yerleştirin. Name özelliğini PageBreak olarak ayarlayın.
Ayrıntı bölümünde, OnFormat özelliğini aşağıdaki olay yordamına ayarlayın:
If Me![Counter] Mod 2 = 0 Then Me![PageBreak].Visible = True _ Else Me![PageBreak].Visible = False
Rapordaki boş alanı azaltmak için, işaretçinizi Ayrıntı bölümünün alt kısmıyla Sayfa Alt Bilgisi'nin arasına yerleştirin ve yukarı sürükleyin.
Sayfa Alt Bilgisi bölümünde, OnPrint özelliğini aşağıdaki olay yordamına ayarlayın:
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
PageBreak gerçekleştiğinde TotalPrice sütunu görüntülenir.
Raporun önizlemesini görüntüleme. İzleyen kayıtlar ilk sayfada görünür:
Product NameUnit PriceUnit in Stock Cahi$18.0039 Chang$19.0017
Not
Raporun ilk sayfasında üç sütun bulunur.
İzleyen kayıtlar ikinci sayfada görünür:
Product NameUnit PriceUnit in StockTotal Amount Aniseed Syrup $10.0013 130 Chef A... $22.00 53 1166
Not
Sayfa sonu ilk sayfadan sonra gerçekleşir. Bu nedenle, raporun ikinci sayfasında dört sütun bulunur.
Başvurular
Program aracılığıyla Access raporu oluşturma hakkında daha fazla bilgi için aşağıdaki makaleyi ziyaret edin:
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin