Okt 212010
 

In einem aktuellen Projekt generieren wir zu Laufzeit eine Access DB dessen Daten für Reporte (Crystal Report VS 2010 BETA 2) genutzt werden. Die Access DB wird dabei im Temp-Ordner des Benutzers abgelegt und bekommt zudem noch einen Unterordner in der die aktuelle Zeit drin ist. Bis auf den Access DB Name ist also alles ziemlich dynamisch.

Angezeigt werden die Reporte mit dem WPF Control das es seit der BETA 2 gibt. Bei gewissen Reports, vor allem solche mit Subreports, wurde man beim generieren des Reports nach dem Login für die Access DB gefragt. Die Access DB ist aber ganz bestimmt nicht Passwort geschützt. Das kann also gar nicht sein.

Beim beobachten der Anwendung mit dem “Process Monitor” von Microsoft, ehemals Sysinternals,  zeigt sich dann auch wie so dem so ist. Der Viewer suchte die Access DB nicht dort wo sie war, sondern ganz wo anders. Das musste geändert werden. Aber wie?

Im Internet gibt es 1000 Hinweise was zu tun ist. Aber nichts, einfach gar nichts, sagt einem genau wie es zu machen ist. Hier die Lösung.

Wichtig 1

Zuerst MÜSSEN die Subreports angepasst werden. Erst danach der Hauptreport. Sonst passiert gar nichts. Deshalb zuerst die Subreports durchlaufen und auf allen Tabellen die ConnectionInfo via TableLogInInfo anpassen.

Wichtig 2

Was ich auch fast nirgends erwähnt fand ist der Hinweis, dass man AllowCustomConnection und Type setzten muss. Sonst läuft die Sache auch nicht.

In fast allen Beispielen wird nur der ServerName und der DatabaseName erwähnt. Zudem noch der UserId und das Password. Fast alle Beispiele die ich gefunden habe nutzen nicht IntegratedSecurity. Diese Flagg muss also gesetzt werden.

Auch sehr verwirrend ist der ServerName. Bei einem SQL Server ist das ja noch klar. Aber bei einer Access DB?

ServerName: Bei einer Access DB der ganze Pfad mit dem Dateinamen. Also z.B.: D:\Folder\Access.mdb

DatabaseName: Das ist jetzt nur die Access DB. Also z.B.: Access.mdb

Aus etwa 30 Quellen im Internet habe ich diese Lösung zusammen getragen. Ich hoffe es hilft jemandem damit er schneller an sein Ziel kommt.

  2 Responses to “Crystal Reports – Access Datenquelle zur Laufzeit ändern”

Comments (2)
  1. Einfach Genial 🙂
    Hätte diesen Beitrag viel früher finden müssen.

  2. Super Beitrag. Vielen Dank, hat perfekt funktioniert…

Sorry, the comment form is closed at this time.