Erstellen von Berichten aus Microsoft Access-Datenbanken mit List & Label

Erstellen Sie Berichte auf der Grundlage Ihrer vorhandenen Microsoft Access-Datenbanken mit List & Label. Einfache Anbindung, Unterstützung von relationalen Datenbanken, inklusive Report Designer. Hier sehen Sie, wie das funktioniert.

Erstellen von Berichten aus Daten von Microsoft Access-Datenbanken

List & Label kann leicht an Microsoft Access-Datenbanken gebunden werden. Dies ermöglicht die Erstellung umfassender Berichte auf der Grundlage Ihrer vorhandenen Access-Daten, egal ob diese in Tabellen oder gespeicherten Prozeduren vorliegen. Relationale Datenbanken werden ebenfalls unterstützt, so dass Sie Ihre Daten mit Drill-Downs oder Drill-Throughs durchsuchen können.

Beispiele für die Bindung von Microsoft Access-Datenbanken an List & Label

Als Basis kommt OleDbConnection des .NET Frameworks zum Einsatz, die den Jet OleDb Treiber für den Zugriff auf die Microsoft Access Datenbank verwendet.

Verbindung zur Access-Datenbank herstellen

string databasePath = @"c:\temp\Northwind.mdb";
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + databasePath;
OleDbConnection myOleDbConnection = new OleDbConnection(connStr);

Besonderheit: Für 32-Bit Anwendungen kann der Jet OleDB Treiber noch verwendet werden. Doch bei einer 64-Bit Anwendung stößt dieser an seine Grenzen und es muss eine Alternative her. Hierzu bietet Microsoft selbst den ACE OleDB Treiber an, der als Microsoft Access Database Engine bereitgestellt wird. Entsprechend muss connStr wie folgt angepasst werden:

string databasePath = @"c:\temp\Northwind.mdb";
string connStr = "Provider=Microsoft.Jet.ACE.OLEDB.12.0;Data Source=" + databasePath;
OleDbConnection myOleDbConnection = new OleDbConnection(connStr);

Wichtig: Für die erfolgreiche Installation und Registrierung des ACE OleDB Treibers ist auf dem Zielsystem eine passende 64-Bit Microsoft Office Installation notwendig.

Daten der Microsoft Access-Datenbank an List & Label anmelden

Sobald die passende Verbindung mit Hilfe von OleDbConnection bereitgestellt wurde, gibt es eine Reihe von Möglichkeiten auf die Daten der Microsoft Access-Datenbank zuzugreifen.

Daten in ein ADO DataSet laden
List & Label erhält Zugriff auf ADO-Objekte mit Hilfe des AdoDataProvider:

// Verbindung zur Microsoft Access-Datenbank herstellen
string databasePath = @"c:\temp\Northwind.mdb";
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + databasePath;
OleDbConnection oleDbConn = new OleDbConnection(connStr);
oleDbConn.Open();

DataSet ds = new System.Data.DataSet();

// Tabelle 'Customers' in das DataSet aufnehmen
string sqlCustomers = "SELECT * FROM [Customers]";
OleDbCommand commandCustomers = new OleDbCommand(sqlCustomers, oleDbConn);
OleDbDataAdapter daCustomers = new OleDbDataAdapter(commandCustomers);
daCustomers.FillSchema(ds, SchemaType.Source, "Customers");
daCustomers.Fill(ds, "Customers");

// Tabelle 'Orders' in das DataSet aufnehmen
string sqlOrders = "SELECT * FROM [Orders]";
OleDbCommand commandOrders = new OleDbCommand(sqlOrders, oleDbConn);
OleDbDataAdapter daOrders = new OleDbDataAdapter(commandOrders);
daOrders.FillSchema(ds, SchemaType.Source, "Orders");
daOrders.Fill(ds, "Orders");

// Relation zwischen den Tabellen definieren
string relName = "Customers2Orders";
ds.Relations.Add(new DataRelation(relName, "CustomerId", "CustomerId"));

// Erstellen des List & Label Objekts, Hinzufügen des ADO DataSets 
// und Aufruf des Designers
using(ListLabel LL = new ListLabel())
{
	LL.DataSource = new AdoDataProvider(ds);
	LL.Design();
}

Daten direkt als IDbCommand laden
Mit Hilfe von DbCommandSetDataProvider hat List & Label direkten Zugirff auf die Daten via IDbCommand. Vorteil bei dieser Variante ist, dass die Daten nicht vorab in den Speicher geladen werden, wie es beim DataSet der Fall ist, insbesondere bei sehr großen Datenbanken ist dies wichtig.


// Verbindung zur Microsoft Access-Datenbank herstellen
string databasePath = @"c:\temp\Northwind.mdb";
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + databasePath;
OleDbConnection oleDbConn = new OleDbConnection(connStr);
oleDbConn.Open();

DbCommandSetDataProvider provider = new DbCommandSetDataProvider();

// Tabelle 'Customers' hinzufügen
string sqlCustomers = "SELECT * FROM [Customers]";
OleDbCommand commandCustomers = new OleDbCommand(sqlCustomers, oleDbConn);
provider.AddCommand(commandCustomers, "Customers");

// Tabelle 'Orders' hinzufügen
string sqlOrders = "SELECT * FROM [Orders]";
OleDbCommand commandOrders = new OleDbCommand(sqlOrders, oleDbConn);
provider.AddCommand(commandOrders , "Orders");

// Relation zwischen den Tabellen definieren
string relName = "Customers2Orders";
provider.AddRelation(relName, "Customers", "Orders", "CustomerID", "CustomerID");

// Erstellen des List & Label Objekts, Hinzufügen des DbCommandSetDataProviders 
// und Aufruf des Designers
using(ListLabel LL = new ListLabel())
{
	LL.DataSource = provider;
	LL.Design();
}

Mehr über Microsoft Access Reporting und List & Label

Weitere wertvolle Informationen zur Verwendung von List & Label finden Sie auch im .NET Tutorial.

Es spielt keine Rolle, ob Sie eine klassische Windows Desktopanwendung oder eine moderne Web Anwendung mit ASP.NET haben - die List & Label Datenprovider können in beiden Welten verwendet werden.

Tipp: Bereits die Installation von List & Label liefert zahlreiche Programmierbeispiele aus, die Microsoft Access Datenbanken als Datenquellen verwenden. Diese können auch in unserem GitHub-Repository eingesehen werden.

Bitte hinterlassen Sie eine Antwort auf diesen Beitrag, wenn Sie Fragen zur Erstellung von Berichten mit List & Label auf Basis von Daten aus Microsoft Access-Datenbanken haben oder wenn Sie Informationen zu diesem Thema vermissen.

Wenn Sie bereits erfolgreich Microsoft Access-Datenbanken als Datenquelle mit List & Label verwenden, um Ihre Berichte zu erstellen, freuen wir uns über ein Like :slight_smile:.