Ich versuche, eine Schaltfläche in einem Access-Formular zu erstellen, das einige Abfragen ausführt und dann die resultierenden Re-Cord-Sets nimmt und sie in Berichten ablegt. Ich bin an den Punkt gelangt, an dem die Schaltfläche das Modul aufruft, die richtigen Recordsets erstellt und dann die Reports erstellt. Die Berichte sind jedoch leer, sie enthalten nicht die Daten aus den Recordsets. Ich denke, mein Problem ist, dass ich die Datenquelle der Berichte nicht richtig zugeordnet habe, aber ich kann nicht herausfinden, wie das geht, wenn dies der Fall ist.Einstellen der Datenquelle für einen Bericht
Private Function showReport(sectionHeading As String, SQL As String, recordset As ADODB.Recordset)
Dim textBox As Access.textBox ' textbox control
Dim label As Access.label ' label control
Dim report As report ' hold report object
Dim controlTop As Long ' holds top value of control position
Dim controlLeft As Long ' holds left value of control position
Dim title As String 'holds title of report
Dim i As Integer 'iterator
i = 0
title = sectionHeading
controlLeft = 0
controlTop = 0
Set report = CreateReport
report.Width = 8500
report.Caption = title
Set label = CreateReportControl(report.Name, acLabel, _
acPageHeader, , "Title", 0, 0)
label.FontBold = True
label.FontSize = 12
label.SizeToFit
For Each fld In recordset.fields
Set textBox = CreateReportControl(report.Name, acTextBox, _
acDetail, , fld.Name, controlLeft + 1500, controlTop)
textBox.SizeToFit
Set label = CreateReportControl(report.Name, acLabel, acDetail, _
textBox.Name, fld.Name, controlLeft, controlTop, 1400, textBox.Height)
label.SizeToFit
controlTop = controlTop + textBox.Height + 25
i = i + 1
Next
Set label = CreateReportControl(report.Name, acLabel, _
acPageFooter, , Now(), 0, 0)
Set textBox = CreateReportControl(report.Name, acTextBox, _
acPageFooter, , "='Page ' & [Page] & ' of ' & [Pages]", report.Width - 1000, 0)
textBox.SizeToFit
report.RecordSource = SQL
DoCmd.OpenReport report.Name, acViewPreview
recordset.Close
Set recordset = Nothing
Set report = Nothing
End Function
Worauf haben Sie Ihre Datenquelle eingestellt? Sie zeigen das hier nicht - ist es eine Abfrage oder Tabelle - was ist das SQL, wenn es Abfrage ist? Wenn Sie den Bericht selbst öffnen - gibt es Seiten mit Daten? Was ist "CreateReport" und "CreateReportControl"? – dbmitch
Welche Version von MS-Access verwenden Sie - bitte aktualisieren Sie Ihre Tags – dbmitch
Nun, das Problem ist, dass ich keine Möglichkeit gefunden habe, die Datenquelle von einem Modul außerhalb des Berichts zu setzen. Die Datenquelle soll eine Abfrage sein. Wenn ich es ausführe, wird der Bericht mit der richtigen Formatierung geöffnet, aber ohne die Daten, nur #Name? in jedem Bereich. – Ulthran