Fachbereich Informationswissenschaften Rechtsrelevante Unterlagen über Bestände der DEFA-Stiftung. Aufbau eines Informationssystems mit einem relationalen Datenbanksystem Diplomarbeit zur Erlangung des akademischen Grades: Diplom-Dokumentar(in) FH an der Fachhochschule Potsdam Erstgutachter: Prof. Dr. habil. Ralf-Dirk Hennings Fachhochschule Potsdam Zweitgutachterin: Dipl.-Dok. Gudrun Scherp DEFA-Stiftung vorgelegt von: Nicole Grau Warschauer Straße 23 10243 Berlin Matrikelnummer: 6349 am: 26.06.2008 Wissen nennen wir den kleinen Teil der Unwissenheit, den wir geordnet haben. Ambrose Bierce, amerikanischer Erzähler (1842 - 1914) Rechtsrelevante Unterlagen über Bestände der DEFA-Stiftung. Aufbau eines Informationssystems mit einem relationalen Datenbanksystem Fachhochschule Potsdam Fachbereich Informationswissenschaften Potsdam, 26. Juni 2008 Zusammenfassung In dieser Arbeit wird ein relationales Datenbanksystem für die rechtsrelevanten Unterlagen über die Bestände der DEFA-Stiftung entwickelt. Der Inhalt der Arbeit umfasst die Entwicklung eines Datenbankkonzeptes, die Umsetzung des Informationssystems und einen Ausblick auf eine mögliche Weiterentwicklung der Datenbank. Der Aufbau des Informationssystems erfolgt mit Microsoft Access. Das zugrunde liegende Datenbankmanagementsystem ist MySQL. Mit Hilfe der Skriptsprache Visuell Basic for Applications wurden Abläufe in der Steuerung von Microsoft Access entwickelt, um komplexe Recherche- und Datenerfassungsvorgänge zu ermöglichen. Schlüsselbegriffe: relationales Datenbanksystem, Microsoft Access, MySQL, Visuell Basic for Applications, Informationssystem Gliederung 1 2 3 Einleitung.................................................................................................... 1 1.1 Die Deutsche Film-Aktiengesellschaft (DEFA) .......................................... 2 1.2 Die DEFA-Stiftung ............................................................................... 4 1.3 Urheberrecht und DEFA-Filmstock ......................................................... 5 Ausgangslage.............................................................................................. 8 2.1 Problemfeld........................................................................................ 9 2.2 Lösungsideen und konzeptionelle Rahmenbedingungen........................... 14 Vorgehensweise........................................................................................ 16 3.1 Einrichten einer ODBC-Schnittstelle ..................................................... 16 3.2 Tabellenerstellung und Normalisierung ................................................. 20 3.2.1 Erstellung der Tabellen für Film, Produktion, Produktionsland und Filmart .......................................................................... 21 3.2.1.1 Export der Excel-Tabelle für Filme nach Access .......................... 23 3.2.1.2 Tabellenformatierung der Tabellen für Film, Produktion, Produktionsland und Filmart ................................................... 25 3.2.2 Erstellung der Tabellen für Korrespondenz Rechte, Absender Empfänger, Medium und Korrespondenz Rechte Film ................. 26 3.2.3 3.3 Erstellung der Tabelle für das Schriftgut Rechte ........................ 28 Access-Formulare.............................................................................. 29 3.3.1 Ausgabe Korrespondenz Rechte .............................................. 30 3.3.2 Eingabe Korrespondenz Rechte ............................................... 31 3.3.2.1 Erläuterungen zum hinterlegten VBA-Code im Eingabeformular Korrespondenz Rechte ........................................................... 33 3.3.3 Ausgabe Schriftgut Rechte ..................................................... 34 3.3.4 Eingabe Schriftgut Rechte ...................................................... 35 3.3.4.1 Erläuterungen zum hinterlegten VBA-Code im Eingabeformular Schriftgut Rechte .................................................................. 37 3.3.5 Ausgabeformular für Korrespondenz Rechte, Schriftgut Rechte und Filmdaten ...................................................................... 37 3.3.5.1 Erläuterungen zum hinterlegten VBA-Code im Formular für die Rechercheergebnisse ............................................................. 39 3.3.6 Suchformular ....................................................................... 40 3.3.6.1 Erläuterungen zum hinterlegten VBA-Code im Suchformular ........ 41 3.3.7 Editieren Korrespondenz Rechte.............................................. 47 3.3.8 Editieren Schriftgut Rechte..................................................... 49 I 3.3.8.1 Erläuterungen zum hinterlegten VBA-Code im Editierfomular für das Schriftgut Rechte........................................................ 51 4 3.3.9 Erfassung neuer Medien......................................................... 51 3.3.10 Erfassung neuer Institutionen ................................................. 52 3.3.11 Indexformular ...................................................................... 53 Ausblick .................................................................................................... 54 4.1 4.2 Integration weiterer Tabellen und Datenbanken..................................... 54 4.1.1 DEFA-Außenhandel und Progress Film-Verleih ........................... 54 4.1.2 DEFA-Außenhandel-Verträge .................................................. 57 4.1.3 Autoren- und Verlagsverträge................................................. 58 4.1.4 Dokumentarfilmverträge ........................................................ 59 4.1.5 Komponisten-Verträge........................................................... 61 4.1.6 Hauptbuchhaltung................................................................. 62 Abschließende Bemerkung.................................................................. 63 5 Fazit.......................................................................................................... 65 6 Anhang ..................................................................................................... 66 6.1 VBA-Code: frm_index ........................................................................ 66 6.2 VBA-Code : frm_iststitution_neu ......................................................... 67 6.3 VBA-Code: frm_kannapien_filmstock ................................................... 67 6.4 SQL-Code: frm_kannapien_filmstock ................................................... 68 6.5 VBA-Code: frm_kannapien_filmstock_editieren ..................................... 69 6.6 SQL-Code: frm_kannapien_filmstock_editieren...................................... 70 6.7 VBA-Code: frm_kannapien_filmstock_eingabe....................................... 71 6.8 VBA-Code: frm_medium_eingabe ........................................................ 72 6.9 SQL-Code: frm_medium_eingabe ........................................................ 73 6.10 VBA-Code: frm_rechtsunterlagen ........................................................ 74 6.11 VBA-Code: frm_rechtsunterlagen_ausgabe ........................................... 74 6.12 VBA-Code: frm_rechtsunterlagen_editieren .......................................... 76 6.13 VBA-Code: frm_rechtsunterlagen_eingabe............................................ 77 6.14 VBA-Code: frm_suche........................................................................ 79 6.15 VBA-Code: subfrm_absender_eingabe ................................................. 85 6.16 VBA-Code: subfrm_absender_eingabe_editieren.................................... 86 6.17 VBA-Code: subfrm_empfaenger_eingabe.............................................. 86 6.18 VBA-Code: subfrm_empfaenger_eingabe_editieren ................................ 87 6.19 VBA-Code: subfrm_film_eingabe ......................................................... 88 6.20 VBA-Code: subfrm_film_eingabe_editieren ........................................... 88 II 6.21 SQL-Code: view_filme_produktion_produktionsland_filmart .................... 89 6.22 SQL-Code: view_haupt_absender ........................................................ 89 6.23 SQL-Code: view_haupt_empfaenger .................................................... 90 6.24 SQL-Code: view_haupt_film_editieren.................................................. 90 6.25 SQL-Code: view_haupt_film_titel ........................................................ 90 6.26 SQL-Code: view_suche ...................................................................... 91 6.27 Ausblick: ER-Modell ........................................................................... 93 7 Literaturverzeichnis .................................................................................. 94 8 Verzeichnis der elektronischen Referenzen............................................... 96 9 Erklärung .................................................................................................. 97 III Abkürzungsverzeichnis BvS Bundesanstalt für vereinigungsbedingte Sonderaufgaben CD Compact Disc DBMS Datenbankmanagementsystem (Database Management System) DEFA Deutsche Film-Aktiengesellschaft ER-Modell Entity-Relationship-Modell ERM Entity-Relationship-Modell GA Generally Available MS-SQL-Server Microsoft SQL Server MySQL MY Sequential Query Language ODBC Open Database Connectivity OCR Optical Character Recognition PHP PHP Hypertext Preprocessor SQL Structured Query Language VBA Visuell Basic for Applications VEB Volkseigener Betrieb IV Abbildungsverzeichnis Abb. 2.1: Schriftgut Rechte (Formularansicht) .......................................................... 9 Abb. 2.2: DEFA-AH/Pr (Formularansicht) ............................................................... 10 Abb. 2.3: Literarische Vorlage .............................................................................. 11 Abb. 2.4: Korrespondenz Rechte .......................................................................... 13 Abb. 3.1: ODBC-Treiber für Datenquelle erstellen ................................................... 17 Abb. 3.2: Konfiguration des ODBC-Treibers............................................................ 17 Abb. 3.3: Datenbank und Tabellen verknüpfen ....................................................... 18 Abb. 3.4: Auswahl des Dateityps .......................................................................... 18 Abb. 3.5: Wahl der Computerdatenquelle............................................................... 19 Abb. 3.6: Tabellenauswahl................................................................................... 19 Abb. 3.7: verknüpfte Tabellen als Ergebnis ............................................................ 20 Abb. 3.8: ER-Modell des umgesetzten Datenbankkonzeptes ..................................... 22 Abb. 3.9: Importieren in Tabelle und Aktivierung des „Tabellenanalyse-Assistenten“ .... 23 Abb. 3.10: „Tabellenanalyse-Assistent“: Tabellennormalisierung ............................... 24 Abb. 3.11: Ergebnis nach manuellem Usereingriff: vier relevante Filmtabellen ............ 24 Abb. 3.12: tbl_filmart vor der Formatierung ........................................................... 26 Abb. 3.13: zellenweiser Filmtitel-Import ................................................................ 27 Abb. 3.14: Illustration der Beziehungen der Tabelle tbl_haupt .................................. 28 Abb. 3.15: Illustration der Beziehungen der Tabelle tbl_filmstock_kannapien .............. 29 Abb. 3.16: Korrespondenz Rechte (frm_rechtsunterlagen) ....................................... 30 Abb. 3.17: Erfassung: Korrespondenz Rechte (frm_rechtsunterlagen_eingabe) ........... 32 Abb. 3.18: Schriftgut Rechte (frm_kannapien_filmstock) ......................................... 34 Abb. 3.19: Eingabeformular Schriftgut Rechte (frm_kannapien_filmstock_eingabe) ..... 35 Abb. 3.20: Ausgabeformular Rechercheergebnisse (frm_rechtsunterlagen_ausgabe).... 38 Abb. 3.21: Suchformular über den gesamten Datenbestand „Rechtsunterlagen“ (frm_suche) ....................................................................................... 40 Abb. 3.22: Editierformular für Korrespondenz Rechte (frm_rechtsunterlagen_editieren).......................................................... 48 Abb. 3.23: Editierformular für das Rechtsschriftgut (frm_kannapiein_filmstock_editieren) .................................................... 50 Abb. 3.24: Formular zur Eingabe neuer Medien (frm_medium_eingabe) ..................... 52 Abb. 3.25: Formular zur Eingabe neuer Institutionen (frm_institution_neu) ................ 52 Abb. 3.26: Indexformular (frm_index)................................................................... 53 Abb. 4.1: ER-Modell einer vollständigen Datenbank der rechtsrelevanten Unterlagen der DEFA-Stiftung. ................................................................................ 55 V Abb. 4.2: Außenhandel-Film-Abkürzung (ERM-Ausschnitt)........................................ 56 Abb. 4.3: Außenhandel-Vertrag-Institution (ERM-Ausschnitt).................................... 57 Abb. 4.4: Autor/Verlag-Vertrag-Institution (ERM-Ausschnitt) .................................... 59 Abb. 4.5: Dokumentarfilm-Vertrag (ERM-Ausschnitt) ............................................... 60 Abb. 4.6: Dokumentarfilm Findmittel (ERM-Ausschnitt)............................................ 61 Abb. 4.7: Komponist-Film (ERM-Ausschnitt) ........................................................... 62 Abb. 4.8: Hauptbuchhaltung-Film (ERM-Ausschnitt) ................................................ 63 VI 1 Einleitung „Es gab in der DDR ein Bedürfnis, etwas vom eigenen Alltag auf der Leinwand wiederzufinden, etwas von der oft mühseligen und konflikthaltigen Realität, die in den Medien ansonsten meist nicht auftauchte. Deswegen ging ich ins Kino. 1“ Die DEFA-Studios haben eine Vielzahl international beachteter Filme produziert, darunter preisgekrönte Klassiker wie z. B. „Jakob der Lügner“ (1974), „Sterne“ (1959), „Die Frau und der Fremde“ (1984) und „Coming out“ (1989). Fünfzehn Produktionen der DEFA-Studios wurden in der deutschen Filmografie des Kinemathek-Verbundes zu den besten 100 deutschen Filmen gewählt. 2 Es handelt sich folglich um einen wertvollen Teil des nationalen Kulturerbes. Dieses Erbe gilt es zu bewahren, zu erschließen und der Öffentlichkeit zugänglich zu machen. Genau dies hat sich die DEFA-Stiftung zur Aufgabe gemacht. Im Rahmen meines Studiums der Dokumentation an der Fachhochschule Potsdam hatte ich die Möglichkeit, das laut Curriculum vorgeschriebene Praktikumssemester 3 in der DEFA-Stiftung zu absolvieren. Meine Hauptaufgabe während dieses 22-wöchigen Praktikums bestand darin, die juristische Korrespondenz zwischen dem Anwalt der Stiftung und der DEFA-Stiftung zu erfassen und zu erschließen. Dies geschah vorerst in einfacher tabellarischer Form mit Hilfe von Microsoft Excel (im Folgenden kurz „Excel“ genannt). Schon während des Praktikums wurde die Idee geboren, diese Excel-Lösung in eine komplexe relationale Datenbank zu überführen, wodurch eine einfache und schnelle Dateneingabe, -ausgabe und -recherche möglich werden würde. Diesen Gedanken habe ich während der Findungsphase für ein Diplomarbeitsthema wieder aufgegriffen und mich daraufhin erneut an die DEFA-Stiftung gewandt. Eine praktikable Datenbanklösung der anwaltlichen Korrespondenz lag auch im Interesse der DEFAStiftung, wobei meine ursprüngliche Idee, die Excel-Tabelle in eine Microsoft AccessDatenbank (im Folgenden kurz „Access“ genannt) zu überführen, rasch um eine allumfassende Datenbanklösung der gesamten rechtsrelevanten Unterlagen der Stiftung erweitert wurde. Es stellte sich allerdings recht schnell heraus, dass ein solch enormer Arbeitsumfang innerhalb der nur dreimonatigen Diplomarbeitszeit nicht zu realisieren war (siehe Kapitel 3.2). Auch wenn aus diesem Grund eine Konzentration auf die Umsetzung 1 Dresen, Andreas: Genauigkeit und Humanismus. In: Film-Dienst 10 (2006), S. 7. 2 Kinemathek-Verbund (Hrsg.): Die Deutschen Filme. Deutsche Filmographie 1895-1998 und die Top 100. 3 5. Semester, WS 2006/2007 1 der ursprünglichen Datenbank der rechtsanwaltlichen Korrespondenz (Korrespondenz Rechte) erfolgen musste, war es mir dennoch möglich, die Datenbank rechtsunterlagen.mdb um den Teil Schriftgut Rechte zu erweitern. Einleitend sei dieser Arbeit eine kurze Vorstellung der Deutschen Film-Aktiengesellschaft (DEFA) und ihrer Organisation vorangestellt, um im weiteren Verlauf auf den heutigen Verwalter der Rechte des DEFA-Filmstocks, die DEFA-Stiftung, näher einzugehen. In diesem Zusammenhang gehe ich auf die besondere Problematik des Urheberrechts in Bezug auf die DEFA-Filmproduktionen ein, um die Notwendigkeit einer umfassenden Datenbanklösung für die rechtsrelevanten Unterlagen zu verdeutlichen. Im zweiten Teil der vorliegenden Arbeit soll die derzeitige Situation der DEFA-Stiftung hinsichtlich ihrer rechtsrelevanten Unterlagen stehen. Hieran wird sich eine detaillierte Beschreibung meiner Aufgabenlösung anschließen. Hier wird das Lösungskonzept und das Ergebnis des umgesetzten Teils der Datenbank für rechtsrelevante Unterlagen vorgestellt. Die einzelnen Tabellen werden in ihren Entstehungsphasen skizziert. Die notwendigen Formulare für die Dateneingabe und -ausgabe werden mit ihren in Visuell Basic for Applications (VBA) und Structured Query Language (SQL) programmierten Besonderheiten dokumentiert und erläutert. Auch wenn der Bearbeitungszeitraum für eine allumfassende Datenbank der rechtsrelevanten Unterlagen der DEFA-Stiftung zu kurz war, werde ich abschließend im Kapitel 4 „Ausblick“ ein Konzept für eine mögliche zukünftige Weiterentwicklung der Datenbank vorstellen. 1.1 Die Deutsche Film-Aktiengesellschaft (DEFA) Der Grundstein für die Gründung der Deutschen Film-Aktiengesellschaft (DEFA) wurde bereits am 25.9.1944 in Moskau, während einer Beratung von deutschen Emigranten über den zukünftigen Aufbau einer antifaschistischen Kultur im befreiten Deutschland, gelegt. Daraufhin wurde im Januar 1945 eine Arbeitskommission der Kommunistischen Partei Deutschlands (KPD) gebildet, die sich ausschließlich mit ideologisch-kulturellen Aufgaben beschäftigte. In Zusammenarbeit mit der als beratende Körperschaft agierenden Deutschen Zentralverwaltung bemühte sich diese Kommission bei der obersten Re- 2 gierungsgewalt der Sowjetischen Besatzungszone (SBZ), der Sowjetischen Militäradministration (SMAD), um die Neugründung einer deutschen Filmproduktion. 4 Da schon Lenin den Film als wichtigste aller Künste angesehen hat, wurde seitens der Sowjetunion der Neugründung einer Filmproduktion zugestimmt. Dies geschah unter Zuhilfenahme der selben Maßstäbe, die während des Neubeginns in der Sowjetunion angelegt wurden: • • • • Überführen der Filmproduktion in die Hände des Staates Herstellen einer breit angelegten Wochenchronik zur politischen Aufklärung und bildhafter Lektionen zu Fragen von Wissenschaft und Technik Vermitteln der neuen Ideen durch begeisternde Filme, die das Schöne, sich Entwickelnde und sich Festigende veranschaulichen und das Negative im In- und Ausland geißeln. 5 Diese Ausführungen sollten deutlich machen, dass das Medium Film nicht nur als künstlerisches Werk verstanden wurde, sondern auch als politisches Instrument. Somit kann die Geschichte des DEFA-Films nicht ohne die Berücksichtigung der politischen Verhältnisse betrachtet werden und die Vermittlung der politischen Verhältnisse der DDR nicht ohne den DEFA-Film. Diese Symbiose charakterisiert die Besonderheit des Filmschaffens in der DDR und die historische Bedeutsamkeit des DEFA-Filmerbes. Schließlich übergab die SMAD während der Gründungsveranstaltung der DEFA am 17.5.1946 in Potsdam-Babelsberg die Lizenzen für die Produktion neuer deutscher Filme auf dem Gebiet der SBZ. Diese Gebietseinschränkung beruhte auf den Maßgaben des Potsdamer Abkommens vom 2.8.1945, wonach jeder Oberbefehlshaber der Streitkräfte entsprechend seiner Regierung nur in der jeweiligen Besatzungszone agieren darf. Mit der Aufnahme der Filmproduktion in den volkseigenen Filmstudios im Jahr 1945 bis zum Ende der DEFA 1992 entstanden ca. 950 Spiel- und Kurzfilme, 820 Animationsfilme, 5.800 Dokumentarfilme und Wochenschauen sowie 4.000 Synchronisationen ausländischer Filme. Darüber hinaus gehören zahlreiche filmbegleitende Materialien wie Fotos, Plakate, Drehbücher, literarische Vorstufen, Werbematerialien, Partituren und Zulassungsunterlagen zum Filmerbe der DEFA. 4 vgl.: Filmmuseum Potsdam (Hrsg.): Das zweite Leben der Filmstadt Babelsberg 1946-92. 5 Günther Dahlke, Lilli Kaufmann (Hrsg.): ...wichtigste aller Künste / Lenin über den Film, S. 172. 3 1.2 Die DEFA-Stiftung Die letzte DDR-Regierung gründete am 25.9.1990 die DEFA-Stiftung. An die neu errichtete Stiftung wurden die Rechte des Außenhandels (Auslandsrechte an DEFA-Filmen) übertragen. Hierunter fallen auch heute noch die alten Bundesländer. Die Inlandsrechte, die sich nunmehr auf die neuen Bundesländer beschränken, verblieben bei der Progress FilmVerleih GmbH. Dieses theoretische Konstrukt führte zu gravierenden Schwierigkeiten, an denen dann auch die erste DEFA-Stiftung scheiterte. Die noch in der DDR gegründete DEFA-Stiftung wurde als öffentlich-rechtliche Stiftung statuiert. Unbeachtet blieb bei der Gründung allerdings, dass das Berliner Stiftungsgesetz eine solche Rechtsform nicht vorsah. Dieser Umstand hatte zur Folge, dass nach der Wiedervereinigung der beiden deutschen Staaten am 3. Oktober 1990 keine formelle Anerkennung der DEFA-Stiftung erfolgte. Dennoch blieb die Grundidee der Stiftungsgründung erhalten und wurde sowohl von der Treuhandanstalt/Bundesanstalt für vereinigungsbedingte Sonderaufgaben (BvS), als auch von den Bundesbehörden in den Folgejahren respektiert. Die DEFA-Filmrechte wurden nicht an Privatpersonen veräußert und die Progress Film-Verleih GmbH wurde als Treuhandunternehmen mit der Filmverwertung betraut. 6 Am 15. Dezember 1998 wurde die zweite DEFA-Stiftung als rechtsfähige und gemeinnützige Stiftung des bürgerlichen Rechts von der Bundesrepublik Deutschland neu errichtet. Das juristische Grundgerüst der ersten DEFA-Stiftung wurde an die aktuellen Gegebenheiten und die Erkenntnisse der letzten neun Jahre angepasst. Die DEFA-Stiftung räumte nun unter folgenden Bedingungen dem Progress Film-Verleih die exklusiven Verwertungsrechte ein: • • • die zum Zeitpunkt der Privatisierung von Progress vorhandenen Arbeitsplätze müssen erhalten bleiben, die Stiftung muss einen angemessenen Teil des Umsatzes aus der Verwertung des DEFA-Filmstocks für die Förderung von Filmkultur und zur Erfüllung von Aufgaben der Stiftung erhalten, die ökonomischen Beziehungen zwischen Progress und Stiftung müssen für den Verleih einen Anreiz zur Arbeit mit DEFA-Filmen bieten.7 Somit nimmt die Progress Film-Verleih GmbH die weltweiten exklusiven Auswertungsrechte (Verleih) des DEFA-Filmstocks vor und vergibt die Lizenzen für Kino- und Fernsehaufführungen. 6 vgl.: Klaue, Wolfgang: Die DEFA-Stiftung. Ein Rückblick. In: apropos: Film 2000. Das Jahrbuch der DEFAStiftung, S. 307. 7 Klaue, Wolfgang: Die DEFA-Stiftung. Ein Rückblick. In: apropos: Film 2000. Das Jahrbuch der DEFA-Stiftung, S. 307. 4 Seit 1998 ist die Icestorm Entertainment GmbH der Exklusivverwerter der DEFAFilmproduktionen auf Trägermedien wie DVD und Video. Mit der Verwahrung der Filmmaterialien ist das Bundesarchiv-Filmarchiv betraut, welches sich der Langzeitarchivierung dieses Bestandes verpflichtet hat. Das Stiftungsvermögen umfasst den DEFA-Filmstock und somit die gesamte Kinoproduktion der DDR-Filmstudios aus fast fünf Jahrzehnten, die in den Jahren von 1947 bis 1992 entstanden ist (siehe Kapitel 1.1). Darüber hinaus gehören zur DEFA-Stiftung Archive audiovisueller Zeitzeugenberichte. Hierzu zählen das Zeitzeugen-Archiv von Thomas Grimm, das Cintec-Archiv und Interview-Produktionen der DEFA-Stiftung mit Künstlern der DEFA. Dieses Archiv beinhaltet eine Sammlung von audiovisuellen Autobiografien und zeithistorischen Dokumenten der neueren deutschen Geschichte – insbesondere der DDR. Die genannten Archive verfügen zusammen über ca. 9.000 sendefähige Kassetten. Die Aufgabe der DEFA-Stiftung ist es, diesen Teil des nationalen Kulturerbes zu erhalten, zu erschließen und der Öffentlichkeit zugänglich zu machen. Darüber hinaus fördert die Stiftung die deutsche Filmkultur und -kunst aktiv. Sie unterstützt mit Förderungen, Stipendien und Preisgeldern sowohl juristische als auch natürliche Personen, die sich um den deutschen Film verdient machen. Dieses Spektrum reicht vom Nachwuchsfilmschaffenden bis hin zum Verfasser von wissenschaftlichen Publikationen. Dem Stiftungszweck entsprechend ist die DEFA-Stiftung zudem Ausrichter von kulturellen und künstlerischen Fachveranstaltungen, wie z. B. Ausstellungen und Symposien. 1.3 Urheberrecht und DEFA-Filmstock Die DEFA-Stiftung ist der Verwalter des DEFA-Filmstocks. Des Weiteren wurde die Stiftung auch Nutzungsrechteinhaber für die synchronisierten DEFA-Fassungen im deutschen Sprachraum. Sie ist darüber hinaus auch Verwertungsrechteinhaber für noch gültige Verwertungsrechte an ausländischen Filmen auf dem Gebiet der neuen Bundesländer. Die Filmproduktion der VEB (Volkseigener Betrieb) DEFA-Studios erfolgte im: • • • • • • VEB DEFA-Studio für Spielfilme (einschließlich eines VEB DEFA-Studios für Kinderfilme) VEB DEFA-Studio für Wochenschau und Dokumentarfilme (1969 mit dem populärwissenschaftlichen Studio zum VEB DEFA-Studio für Kurzfilme vereinigt) VEB DEFA-Studio für populärwissenschaftliche Filme VEB DEFA-Studio für Trickfilme (ab 1955) DEFA Gruppe Siebenundsechzig (ab 1967) Studio H & S (ab 1968) 5 Zum DEFA-Pool gehörten auch 8: • • • VEB DEFA-Studio für Synchronisation VEB DEFA-Kopierwerke Berlin-Johannisthal und Berlin-Köpenick VEB DEFA-Gerätewerk 9 Die aus diesen Einrichtungen hervorgegangenen Filme werfen urheberrechtliche Fragestellungen auf. So muss geklärt werden, ob die hier hergestellten Filme heute auf folgende Art genutzt werden können 10: • für die Videoauswertung (analog auf VHS-Trägermaterialien) • für die Vervielfältigung und Verbreitung auf DVD • für das pay-per-view-Fernsehen • für die Video-on-demand-Nutzung • für das Erzeugen von Remakes In diesem Zusammenhang müssen spezielle urheberrechtliche Probleme betrachtet werden: • • • • • • Welchen Einfluss hat die Veränderung bzw. der Wegfall des Lizenzgebietes der DDR auf die Nutzung von Filmen? Dürfen Nutzungsrechte ausgeübt werden, die zum Zeitpunkt des Vertragsabschlusses unbekannt waren, wie z. B. die Vervielfältigung und Verbreitung in Videogrammform? Wie erfolgt die Auslegung des URG/DDR durch die Gerichte? Haben die Urheber einen zusätzlichen Vergütungsanspruch hinsichtlich der neuen Nutzungsmöglichkeiten, die aus der technischen Entwicklung resultieren, wie z. B. bei der Vervielfältigung und Verbreitung in Videogrammform? Wie wird hinsichtlich der Vertragsauslegung verfahren, wenn Verträge im Laufe der Zeit verloren gegangen sind? Wie werden Rechtsverletzungen wirksam verfolgt? 11 Für die Verwertung des DEFA-Filmstocks mussten Fragen in Bezug auf Fernsehsendungen, unbekannte Nutzungsarten, Vertragsauslegungen, Vergütungsansprüche, fehlende Vertragsunterlagen und Leistungsschutzrechte geklärt werden. Die Vielzahl der juristischen Fragestellungen verdeutlicht die Komplexität der Urheberrechtsfragen in Bezug auf den DEFA-Filmstock. Hierbei wird deutlich, welche Fülle an Do- 8 des weiteren waren eingegliedert: der DEFA-Filmvertrieb (1948-1951), das DEFA-Nachwuchsstudio (19481951) und ab 1950 der DEFA- Filmübernahme- und Außenhandelsbetrieb - ab 1.1.1953 VEB DEFAAußenhandel. 9 http://www.defa-stiftung.de/cms/(S(fyxymeymabhiwznu5tpuh055))/DesktopDefault.aspx?TabID=981. Letzter Zugriff: 11.06.2008. 10 vgl. Haupt, Stefan: Urheberrecht und DEFA-Film. Die Schriftenreihe der DEFA-Stiftung, S. 14. 11 Haupt, Stefan: Urheberrecht und DEFA-Film. Die Schriftenreihe der DEFA-Stiftung, S. 38-39. 6 kumentarischen Bezugseinheiten für die Rechtsklärung bereits vorhanden sein musste, während der Rechtsfindung angefallen ist und sich auch zukünftig bei der Rechtswahrung summieren wird. 7 2 Ausgangslage Die rechtsrelevanten Unterlagen der DEFA-Stiftung verteilen sich auf mehrere AccessDatenbanken und Excel-Tabellen. Eine detaillierte Dokumentation dieser Unterlagen wurde im November 2007 vorgenommen. Die nachfolgende Zusammenstellung ist das Ergebnis ihrer Arbeit: 1. Schriftgut DEFA-Außenhandel und Progress Film-Verleih 2. Schriftgut DEFA-Studio für Spielfilme, DEFA-Studio für Dokumentarfilme und DEFAStudio für Trickfilme 3. Schriftgut DEFA-Studio für Spielfilme (Teilbestandserschließung) 3.1 Komponistenverträge 3.2 Autorenverträge 3.3 Verlagsverträge 3.4 Schriftgut der Hauptbuchhaltung 4. Schriftgut DEFA-Studio für Dokumentarfilme 4.1 Schriftgut DR 118 4.2 Schriftgut Überläufer des DEFA-Studios für Dokumentarfilme 4.3 Schriftgut Dokumentarfilme (Auftragsproduktionen) ab 1990 5. Drehbücher und literarische Vorstufen 6. Schriftgut des Ministerium für Kultur der DDR, Hauptverwaltung Film, Abt. Filmzulassung 6.1 Schriftgut Filmzulassungen 6.2 Sammlung Mikrofiche 7. Schriftgut DEFA-Stiftung 7.1 Schriftgut vor Gründung DEFA-Stiftung 7.2 Schriftgut zur Herstellung von Sendematerialien 7.3 Schriftgut zum Kopienverkauf durch den Progress Film-Verleih 7.4 Schriftgut zum Filmfond der DEFA-Stiftung 7.5 Schriftgut zu den Produktionen der DEFA-Studios 7.6 Schriftgut zur Rechtedokumentation ausländischer Filme im DEFA-Filmstock 7.7 Teilbestand Dr. Haupt 8. Bestand Prof. Günter Witt 9. Bestand Wolfgang Harkenthal 10. Bestand Heynowski und Scheumann 11. Karteikartenbestand Progress Film-Verleih 12. Werbematerialien Progress-Filmverleih und DEFA12 12 DEFA-Stiftung: Informationsschrift zu rechtsrelevanten Unterlagen in der DEFA-Stiftung und an anderen Standorten. 8 2.1 Problemfeld Um möglichst alle relevanten Unterlagen für die Klärung von Rechtsfragen zu den einzelnen Filmen aufzufinden, ist bislang folgender Rechercheweg einzuhalten: 1. Datenbankausdruck eines Filmtitels aus der Film-Datenbank Diese Datenbank von SalesLogix enthält sämtliche zum DEFA-Filmstock gehörenden Produktionen. Hier sind zu jedem Film die filmtypischen Angaben (u. a. Jahr, Länge, Produktion) sowie die beteiligten Filmschaffenden verzeichnet. Besonderes Augenmerk wird während der Recherche auf die Literarische Vorlage (Autorenrechte), das Synchronisationsstudio, die Filmmusik (Komponistenrechte) und die Co-Produktion gelegt. 2. Recherche in der Access-Datenbank Schriftgut Rechte In der nicht normalisierten Datenbank DEFARechte.mdb ist das Schriftgut der DEFAStudios für Spielfilme, Dokumentarfilme und Trickfilme teilerschlossen. Die Unterlagen aus dem Bundesarchiv wurden im Zeitraum von März 1999 bis Dezember 2003 erschlossen, indem sie gescannt, signiert und schließlich in der Datenbank verzeichnet wurden. Die eingetragenen Signaturen sind nicht mit ihren ursprünglichen Dokumenten verlinkt, sodass jedes einzelne Dokument im Windows Explorer gesucht und geöffnet werden muss. Jede Dokument-Datei enthält nur eine gescannte Seite im TIFF-Format. Umfasst aber ein Dokument mehrere Seiten, so ist dies immer mit dem Öffnen und ggf. Auszudrucken der einzelnen Seiten verbunden. Abb. 2.1: Schriftgut Rechte (Formularansicht) 9 Die Tabelle T_Filmstock der Datenbank DEFARechte.mdb enthält folgende Felder: - ID - ProdNr. - Filmtitel - Signatur - A-Filmdaten - B-Annotation/Karte - C-Bearbeitungsk. Prog - D-Bearbeitungsk. AH - Zalassungsunt. Fiche - F-Lizenzv. St.-Prog - G-Lizenzv. St.-AH - H-Literarische Vorl. - I-Vertrag Musik - J-Kopr./Dienstl. - K-Vertrag DEFA-AH - L-Drittmittelbeteiligung - M-Remakerechte - N-Ankaufsprotokoll - O-Vertrag AH-Progress - P-Synchronprotokoll - Freigabe - Aktueller Stand - Bemerkung 3. Recherche in der Access-Datenbank DEFA_Aussenhandel_Progress In dieser Datenbank ist das Schriftgut des DEFA-Außenhandels und des Progress FilmVerleihs mit Hilfe von Signaturen formal erfasst und durch Filmtitel inhaltlich erschlossen. Die Unterlagen befinden sich in den Räumen der DEFA-Stiftung, sodass die einzelnen Dokumente in ihren Ordnern und Mappen durch die Signaturen schnell zugänglich sind. Abb. 2.2: DEFA-AH/Pr (Formularansicht) 10 Die Tabelle DEFA-AH der Datenbank DEFA_Aussenhandel_Progress enthält folgende Felder: - ID (1- 29.172) - Titel - Feld2 (z. B. Pr/D, AH/V) - Ordner - Mappennr. - Bemerkungen 4. Recherche in der Excel-Tabelle zu Rechten an Literarischen Vorlagen In der Tabelle Autoren-vereinigt april 08.xls sind die Autoren- und Verlagsverträge verzeichnet. Die hier gefundenen Verträge werden im Bedarfsfall im Bundesarchiv zur Einsicht bestellt. Abb. 2.3: Literarische Vorlage Die Tabelle Autoren-vereinigt april 08.xls enthält folgende Felder: - Signatur (DR 117/21554 bis 117/22779, z. B. DR117 = VEB DEFA-Studio für Spielfilme) - Autor/Verlag - Filmtitel - sonstiger Titel - Vertrag - Jahr 11 5. Recherche in der Excel-Tabelle zu Musikrechten Die Komponistenverträge sind vollständig erschlossen und liegen als analoge Kopie in der DEFA-Stiftung vor. Die Originalverträge befinden sich im Bundesarchiv. Die Tabelle komponisten-verträge 20060213.xls enthält folgende Felder: - Signatur: V116 (4814) bis V129 (2184) - Name Komponist - Filmtitel - Vertrag (z. B. Filmmusik) - Jahr 6. Recherche in den Excel-Tabellen zu Dokumentarfilmrechten Die Dokumentarfilmverträge sind in zwei Excel-Tabellen erschlossen. Hierbei handelt es sich zum einen um eine Karteikartenverzeichnung (dokfilm2007.xls) und zum anderen um die Nacherschließung von einzelnen Aktengruppen mit Verträgen des DEFA-Studios für Dokumentarfilme (Dokumentarfilm_Vertrag.xls). Die Erschließung dieser rechtsrelevanten Unterlagen erfolgte in zwei Schritten, wobei für jeden einzelnen Schritt eine separate Excel-Tabelle als Erschließungsinstrument angelegt wurde. Im Bedarfsfall werden die hier recherchierten Verträge im Bundesarchiv zur Einsicht bestellt. Erschließung der Karteikarten (Findmittel) in der Excel-Tabelle dokfilm2007.xls: - Signatur (DR118/1798 bis DR118/ 9333, z. B. DR118 = VEB DEFA-Studio für Wochenschau und Dokumentarfilme) - Nummer (fortlaufend) - Institution (u.a. DEFA Deutsche Film-AG) - PG/KAG (u.a. Maetzig, Brandt, Lösche) - Filmtitel (Arbeitstitel) - Name - Schlagwort - Zeit - Klassifikation Gäbler Nacherschließung von einzelnen Aktengruppen mit Verträgen des DEFA-Studios für Dokumentarfilme in der Excel-Tabelle Dokumentarfilm_Vertrag.xls: - Signatur (DR 118/45 bis DR118/63) - Name (A-Z) - Filmtitel - Arbeitstitel 12 - Vertrag über (u.a. Textautor, Karikaturist, Schauspieler/-in, Dirigent) - Zeit 7. Recherche in Excel-Tabelle zu Korrespondenz Rechte In dieser, von der Verfasserin dieser Arbeit erstellten Excel-Tabelle Korrespondenz_Rechtsanwalt.xls, sind alle rechtsrelevanten Korrespondenzschriften zwischen dem Anwalt der DEFA-Stiftung und der Stiftung inhaltlich erschlossen. Die Dokumente liegen mit einer Signatur versehen im Original und als PDF-Datei, die auf einem Scann beruht, vor. Die PDF-Dateien sind inhaltlich durch eine Optical Character Recognition (OCR) recherchierbar. Abb. 2.4: Korrespondenz Rechte Diese Tabelle Korrespondenz_Rechtsanwalt.xls enthält folgende Felder: - Signatur (H0001 bis H0770 und S. 93ff bis S. 248ff für die Erschließung des Schriftenreihenbandes „Urheberrecht im DEFA-Film“ von Dr. Haupt) - Ordnernummer (01 bis 14) - Betreff - Zeichen/unser Zeichen/Aktenzeichen - Datum - Filmtitel - Absender - Empfänger - Medium (u.a. Vertrag/Anschreiben, Email, Fax) - Schlagworte 13 - Paragraphen UrhG - Paragraphen anderer Verträge - Scan (H0001.pdf bis H0770.pdf) - Bemerkungen Dieser doch recht aufwendige Rechercheweg sollte durch ein umfassendes Informationssystem vereinfacht werden. Ziel war es, eine relationale Datenbank zu erstellen, die sämtliche rechtsrelevanten Informationen enthält. So sollten die unter Punkt 1 bis 7 genannten Datenbanken und Tabellen in eine neue Rechtsunterlagen-Datenbank integriert werden. Mit einem möglichst geringen Aufwand würden dann zukünftig alle verfügbaren Rechtsunterlagen direkt zugänglich sein. Dies kann jedoch nur durch die Integration von umfassenden Suchfunktionen realisiert werden. Allerdings war keine der ursprünglichen Datenbanken und Tabellen für ein relationales Datenbankschema tauglich, sodass eine aufwendige schrittweise Normalisierung durch die Zerlegung der Relationen unumgänglich wurde. 2.2 Lösungsideen und konzeptionelle Rahmenbedingungen Der geforderte Aufbau eines Informationssystems der rechtsrelevanten Unterlagen der DEFA-Stiftung mit einem relationalen Datenbanksystem legte eine Umsetzung mit Access nahe. Gründe hierfür waren zum einen das Vorhandensein dieses Datenbankmanagementsystems (DBMS) innerhalb des Microsoft Office Paketes in der Stiftung und zum anderen die Einfachheit und große Flexibilität von Access bei der Erstellung von Datenbankanwendungen. Allerdings ist Access für große Datenbestände als DBMS ungeeignet, da es hierbei erhebliche Performanceprobleme aufweist. Dieses Defizit kann aber durch eine Anbindung von Access als Frontend an das kostenfreie DBMS MySQL als Backend überbrückt werden. Da in der DEFA-Stiftung kein Microsoft SQL Server (MS-SQL-Server) verfügbar war, bildete MySQL ein ihm in nichts nachstehendes Substitut. Um Access und MySQL zu verbinden, ist die Einrichtung einer Open Database Connectivity (ODBC) als Programmierschnittstelle notwendig. Im Anschluss daran konnte mit der Erstellung der Datenbank-Tabellen begonnen werden, die nun von MySQL verwaltet werden. Um einen einfachen und schnellen Zugriff auf alle verfügbaren Daten innerhalb der Datenbank zu gewährleisten, wurden abschließend Ausgabeformulare und ein Suchformular im Frontend erstellt. 14 Die DEFA-Stiftung nutzt Windows als Betriebssystem und Microsoft Office als ClientKomponenten. Darüber hinaus verfügt sie über einen MySQL-fähigen Server, der durch eine standardisierte Datenbankschnittstelle wie beispielsweise ODBC angesprochen werden kann. Diese Komponenten ermöglichten die Umsetzung einer Datenbank in Form einer zentralen Serverlösung. Selbstverständlich ist die Datenbank auch ebenso gut als Einzelplatzlösung einsetzbar. Hierbei wäre jedoch eine Installation von MySQL und die Einrichtung einer ODBCSchnittstelle auf diesem Rechner erforderlich. 15 3 Vorgehensweise In diesem Kapitel wird der stufenweise Aufbau der Datenbank rechtsunterlagen.mdb für die rechtsrelevanten Unterlagen der DEFA-Stiftung detailliert beschrieben. Die Datenbank inkl. aller erstellten Formulare, Berichte und SQL-Tabellen befindet sich auf der AnhangCD 13, die dieser Arbeit beigefügt wird. Diese CD (Compact Disc) ist nicht zur Veröffentlichung bestimmt und wird aus diesem Grund nur der DEFA-Stiftung ausgehändigt. Die Datenbank wurde auf dem Rechner der Verfasserin dieser Arbeit entwickelt. Mit dem Abschluss dieser Diplomarbeit wird die Datenbank an die DEFA-Stiftung übergeben. Der erste Arbeitsschritt der Datenbank-Erstellung bestand in der Einrichtung einer ODBCSchnittstelle zwischen Access und MySQL. Im Anschluss daran konnte mit der Erstellung der Datenbank und der dafür notwendigen Tabellen begonnen werden, die nun von MySQL verwaltet wurden. Um einen einfachen und schnellen Zugriff auf alle verfügbaren Daten innerhalb der Datenbank zu gewährleisten, wurden abschließend im Frontend Access Ein- und Ausgabeformulare erstellt sowie ein erweitertes Suchformular angefertigt. 3.1 Einrichten einer ODBC-Schnittstelle Open Database Connectivity wurde von Microsoft entwickelt und stellt eine Programmierschnittstelle zwischen unterschiedlichen Datenbanksystemen, die via SQL kommunizieren können, her. ODBC ermöglicht die Einrichtung eines Zugriffs von Access auf MySQL. ODBC-Treiber können in unterschiedlichen Versionen beispielsweise von der MySQLWebsite 14 heruntergeladen werden. Für die Anbindung der Datenbank der DEFA-Stiftung wurde der Treiber Connector/ODBC 3.51 – Generally Available (GA) – verwendet (CDAnhang, „ODBC-Treiber“). Nach dem Download muss der Treiber installiert werden. Hierzu geht man unter Windows: Start –> Einstellungen –> Systemsteuerung –> Verwaltung –> Datenquellen (ODBC) –> Registerkarte „System DNS“: Systemdatenquelle hinzufügen („Neue Datenquelle erstellen“) und wählt den „MySQL ODBC 3.51 Driver“ (siehe Abbildung 3.1) aus. 13 siehe CD-Anhang, „Access-Datenbank_rechtsunterlagen.mdb“ und „SQL-Tabellen_rechtsunterlagen.mdb“ 14 http://dev.mysql.com/downloads/connector/odbc/5.1.html#win32 16 Abb. 3.1: ODBC-Treiber für Datenquelle erstellen Anschließend muss der ODBC-Treiber konfiguriert werden. Hierfür wählt man einen frei zu vergebenden Data Source Name und den entsprechenden Server. Nach der Eingabe der Zugangsdaten und der Auswahl einer zuvor erstellten Datenbank (siehe Abbildung 3.2) wird eine Verbindung zu dem gewählten Server hergestellt. Abb. 3.2: Konfiguration des ODBC-Treibers Nun muss die MySQL-Datenbank mit Access verknüpft werden. Hierzu startet man Access und legt eine neue – im Idealfall gleichnamige – Datenbank an. Die Datenbanktabellen können optional direkt unter MySQL oder aber in Access angelegt werden. Wurden die Tabellen unter Access erstellt, müssen sie zunächst in MySQLRelationen transformiert und mit der entsprechenden MySQL-Datenbank verbunden werden. Dies erfolgt durch einen Tabellenexport und eine Übergabe an die „ODBC17 Databases()“ und damit an MySQL. Anschließend werden die soeben exportierten Tabellen wieder mit Access verknüpft. Wurde die Relation direkt unter MySQL erstellt, ist einzig eine Verknüpfung mit Access notwendig. Die folgende Beschreibung einer Tabellenverknüpfung gilt für beide Erstellungsformen, unabhängig davon, wo die Tabelle erstellt wurde. Abb. 3.3: Datenbank und Tabellen verknüpfen In der Datenbank rechtsunterlagen.mdb klickt man unter Objekte „Tabellen“ auf „Neu“ und wählt wie in Abbildung 3.4 dargestellt „Tabelle verknüpfen“. Als Dateityp selektiert man die „ODBC-Databases()“. Abb. 3.4: Auswahl des Dateityps 18 Nun wählt man unter Computerdatenquelle die zuvor erstellte Systemdatenquelle aus, in diesem Fall „MS ACCESS MySQL“. Abb. 3.5: Wahl der Computerdatenquelle Das sich jetzt öffnende Fenster zeigt die unter der selektierten Computerdatenquelle verfügbaren Tabellen an (siehe Abbildung 3.6). Abb. 3.6: Tabellenauswahl Wenn man die Auswahl einer oder mehrerer Relationen abschließend bestätigt, hat man die Verknüpfung zwischen Access und MySQL erfolgreich hergestellt (siehe Abbildung 3.7). Nun dient MySQL als Datenbankmanagementsystem und Access als Frontend. 19 Abb. 3.7: verknüpfte Tabellen als Ergebnis Zu beachten ist, dass in Access keine Änderungen an den Tabelleneigenschaften vorgenommen werden können. Eine Bearbeitung kann nur noch direkt auf dem Server, beispielsweise mit phpMyAdmin, einer freien PHP-Applikation (PHP Hypertext Preprocessor) zur Administration von MySQL-Datenbanken, vorgenommen werden. Wenn die Eigenschaften einer Relation auf dem Server verändert wurden, ist eine neue Verknüpfung notwendig, um die aktualisierte Tabelle in Access zu übernehmen. 3.2 Tabellenerstellung und Normalisierung Ausgangspunkt der Tabellenerstellung und Normalisierung war ein zuvor angefertigtes Entity-Relationship-Modell (ERM oder ER-Modell). In diesem Kapitel soll lediglich der realisierte Teil des Datenbankkonzeptes, der in dem recht begrenzten Diplomarbeitszeitraum umsetzbar war, vorgestellt werden. In Abbildung 3.8 ist das ER-Modell 15 des umgesetzten Teils der Datenbank dargestellt. Der nicht realisierte Teil des ER-Modells wird in Kapitel 4 „Ausblick“ eingehend erläutert. Die zentrale Tabelle der Datenbank ist die Filmtabelle tbl_filme, da sich fast alle rechtsrelevanten Unterlagen auf den DEFA-Filmstock beziehen. Einige Schreiben des Rechtsanwaltes der DEFA-Stiftung sind allgemeiner Natur. Dennoch ließen sie sich über ein dies berücksichtigendes spezifisches Suchformular in das Datenbankkonzept problemlos integrieren. 15 siehe auch CD-Anhang, „ER-Modelle“ 20 Die Tabelle tbl_haupt, welche die Rechtskorrespondenz der DEFA-Stiftung aus der ExcelTabelle Korrespondenz_Rechtsanwalt.xls enthält, bildet einen weiteren Datenbankschwerpunkt. Hierbei war zu berücksichtigen, dass sich jedes juristische Schriftstück auf keinen oder aber auch auf mehrere Filme, Absender oder Empfänger beziehen kann (0:m-Beziehung). Die Absender und Empfänger der Schreiben sind in der Relation tbl_institution hinterlegt. Auf diese Inhalte greifen die beiden Tabellen tbl_haupt_absender und tbl_haupt_empfaenger zu. Die Tabelle tbl_medium enthält alle verwendeten Trägermedien der rechtsrelevanten Korrespondenz, so beispielsweise Anschreiben, Fax oder Email. Einen weiteren zentralen Knotenpunkt bildet die Tabelle tbl_filmstock_kannapien, welche aus der Access-Datenbank RechteDEFA.mdb generiert wurde. Diese Tabelle enthält einen Teil der Schriftgutbestände der DEFA-Studios. Jeder Datensatz dieser Tabelle bezieht sich auf exakt einen Film (1:1-Beziehung) und erhält seine Filmangaben aus der Tabelle tbl_filme. Die Produktionsfirmen, Produktionsländer und Filmarten sind in den Tabellen tbl_produktion, tbl_produktionsland und tbl_filmart erfasst. Die Filmtabelle tbl_filme implementiert diese Relationen über die entsprechende Film-ID. Hier wurde eine 1:1Beziehung beibehalten, da eine Normalisierung der Werte Produktionsland und Produktionsfirma der Tabelle tbl_filme bei über 31.000 Tupeln einen unverhältnismäßigen und auch unnötigen Aufwand dargestellt hätte. Die von der DEFA-Stiftung für diese Diplomarbeit zur Verfügung gestellte Ausgangstabelle Übersicht DEFA_DB.xls enthielt bei Filmen mit mehreren Produktionsländern und -firmen diese Produktionsangaben nur in einem Feld (z. B. „Deutsche Demokratische Republik, Jugoslawien“). 3.2.1 Erstellung der Tabellen für Film, Produktion, Produktionsland und Filmart Die DEFA-Stiftung stellte der Verfasserin dieser Arbeit eine Excel-Tabelle zur Verfügung, die den gesamten DEFA-Filmstock enthielt. Diese Filmstock-Tabelle, Übersicht DEFA_DB.xls mit einer Kardinalität von 31.068 wurde aus der DEFA-Filmdatenbank von SalesLogix generiert. Die Filmtitel der Excel-Tabelle Übersicht DEFA_DB.xls wurden von der DEFA-Stiftung nicht homogen erfasst, sodass es beispielsweise Datensätze gibt wie „stolze Prinzessin, Die“ aber auch „Die stolze Prinzessin“. Es handelt sich hierbei offensichtlich um redundante Datensätze, denn beide Titel sind der Spalte Deutscher Verleihtitel entnommen. 21 Vorname Name Titel Bemerkung Institution_Name Institution_ID Ort tbl_institution 0, n 0, n Empfaenger_ID Absender_ID Haupt_ID tbl_ha upt_ em pfa enge r OrdnerNr Signatur InstitutionE_ID Haupt_ID tbl_ha upt_ a bsende r Betreff Datum Signaturkuerzel InstitutionA_ID Zeichen_Aktenzeichen Buch Bemerkungen Haupt_ID Medium_ID tbl_ha upt 0, m 0, m Schlagworte Scan Paragraphen_Vertraege Filmart_ID Filmart Titel_Sortierung Paragraphen_UrhG Titel_Englisch Sonstiger_Titel gehört zu tbl_filma rt 1, n Deutscher_Verleihtitel 0, m 1, 1 Film_ID Haupt_ID Herstellungsjahr_Freigabe Originaltitel_Archivtitel Medium_ID 0, 1 Produktionsland_ID Film_ID tbl_m edium 1, n Korrespondenz ist auf tbl_haupt_ film tbl_filme 0, n 0, 1 aus 1, n tbl_produktionsla nd 0, 1 Filmtitel_gesamt Medium Produktionsland Produktion_ID Bemerkungen Haupt_Film_ID Filmart_ID Produktionsland_ID Bearbeitungskarte DEFA Aussenhandel 0, n Produktion_ID Lizenzvertrag Studio-Progress 0, 1 Lizenzvertrag Studio-Aussenhandel Filmdaten_ID Literarische Vorlage Signatur Musik Film_ID tbl_ka nna pie n_filmstock 0, 1 1, n tbl_produktion Zulassungsunterlagen-Fiche Bearbeitungskarte Progress Annotation/Karte Information stammt von von bezieht sich auf 1, 1 Bemerkung Koproduktion/Dienstleistungen ProdNr Vertrag DEFA Aussenhandel Aktueller Stand Freigabe Vertrag DEFA Aussenhandel Synchronprotokoll Drittbeteiligung Vertrag Aussenhandel-Progress Remakerechte Ankaufsprotokoll Abb. 3.8: ER-Modell des umgesetzten Datenbankkonzeptes Produktion Ein weiteres Beispiel soll die Komplexität der Filmteilangaben verdeutlichen. So gibt es Einträge wie „Entwicklung des Menschen (I.-III.Teil)“, aber auch „Entstehung und Entwicklung des Lebens (I)“ und „Entstehung und Entwicklung des Lebens (II)“. Darüber hinaus gibt es auch Teilangaben mit arabischen Zahlen, so z. B. „Zwei Briefe an Pospischiel, Teil 1. / 2.“. Da die Erstellung der Datenbank für rechtsrelevante Unterlagen in einem zeitlich sehr begrenzten Rahmen erfolgen musste und es sich hierbei um über 31.000 Filmtitel handelte, war es der Verfasserin nicht möglich diese Inkonsistenz der Tabelleneinträge zu korrigieren, zumal dieser Eingriff auch nur manuell möglich gewesen wäre. 3.2.1.1 Export der Excel-Tabelle für Filme nach Access Vor der eigentlichen Integration der Tabellen in Access musste die zuvor bei der Einrichtung der ODBC-Schnittstelle erstellte Datenbank rechtsunterlagen.mdb geöffnet werden. Anschließend konnte über den Menüpunkt Einfügen -> Tabelle -> Tabelle importieren mit der Tabellenübernahme begonnen werden. Mit Hilfe des „Import-Assistenten für Kalkulationstabellen“ wurden die zu integrierenden Excel-Tabellenblätter selektiert, um anschließend die Spaltenüberschriften aus der ersten Zeile der Ursprungstabelle auszuwählen. Der Import-Assistent bietet weiterhin die Möglichkeit, die zu integrierende Tabelle an eine bereits bestehende Access-Relation anzufügen, einzelne Spalten zu indizieren, Primärschlüssel automatisch oder manuell zu erstellen und sofort nach der Übernahme den „Tabellenanalyse-Assistenten“ aufzurufen. Abb. 3.9: Importieren in Tabelle und Aktivierung des „Tabellenanalyse-Assistenten“ Überlässt man dem „Tabellenanalyse-Assistenten“ die Entscheidung der Normalisierung, erhält man folgendes in Abbildung 3.10 dargestellte Ergebnis für die Relation tbl_filme. 23 Abb. 3.10: „Tabellenanalyse-Assistent“: Tabellennormalisierung Da dieser Normalisierungsvorschlag völlig unzureichend ist, musste an dieser Stelle manuell eingegriffen werden. So wurde eine zusätzliche Tabelle für die Produktionsfirmen eingefügt, einige Spalten innerhalb der Relationen verschoben und die Tabellen schließlich mit selbsterklärenden Attributnamen versehen: tbl_filme2, tbl_produktionsland, tbl_produktion und tbl_filmart. Das Ergebnis dieses Eingriffs ist in Abbildung 3.11 zu sehen. Abb. 3.11: Ergebnis nach manuellem Usereingriff: vier relevante Filmtabellen 24 Im sich daran anschließenden Assistentenfenster kann man typografische Fehler in den einzelnen neu entstandenen Relationen korrigieren. Das war allerdings an dieser Stelle nicht notwendig, da die typografischen Tabellenkorrekturen zu einem späteren Zeitpunkt direkt in den Tabellen ausgeführt werden sollten. Abschließend hält der „Tabellenanalyse-Assistent“ die Option bereit, eine automatische Auswahlabfrage zu erstellen. Diese kann als Kontrollwerkzeug der Datenübernahme von Access, aber auch zur weiteren Tabellenverknüpfung genutzt werden. Auf diesen Schritt wurde während der Datenbankerstellung verzichtet, da noch weitere Tabellen importiert und die Abfragen individuell erstellt und angepasst werden sollten. 3.2.1.2 Tabellenformatierung der Tabellen für Film, Produktion, Produktionsland und Filmart Da nach dem Tabellenimport die so neu erstellten Relationen noch immer nicht in der gewünschten Form vorlagen, mussten diese weiter angepasst werden. Hierzu wurde jede Tabelle einzeln geöffnet und die von dem „Tabellenanalyse-Assistenten“ benannten Spalten umbenannt (z. B. „Nachschlagen in Produktion_ID“ -> Produktion_ID). Ebenso überarbeitet wurden die SQL-Anweisungen für die Datensatzherkunft der Produktionsfirmen, Produktionsländer und Filmarten, damit in den ID-Spalten nicht der zugeordnete Wert, sondern in übersichtlicher Form die entsprechenden IDs als Stellvertreter stehen (beispielsweise ‚5’ für Spielfilm). Unnötig waren auch die von Access automatisch durch den Assistenten erstellten Unterdatenblätter, deren Daten aus der Tabelle tbl_filme stammten und in die Relationen tbl_produktion, tbl_produktionsland und tbl_filmart eingefügt worden waren. Diese wurden über den Menüpunkt Format -> Unterdatenblatt -> Entfernen zurückgesetzt. Der letzte Schritt der Tabellenformatierung bestand darin, leere Datensätze in den Tabellen tbl_produktion, tbl_produktionsland und tbl_filmart zu eliminieren. Bei einigen Filmtiteln wurden in der Tabelle Übersicht DEFA_DB.xls in den Spalten Produktion, Produktionsland und Filmart der Wert „0“ hinterlegt. Bevor aber diese Löschung der leeren Datensätze in den Tabellen tbl_produktion, tbl_produktionsland und tbl_filmart erfolgen konnte, musste deren ID-Verknüpfung mit der Relation tbl_filme aufgehoben werden. Hierfür war es notwendig SQL-Anweisungen zu schreiben, um auf leere Datensätze verweisende IDs in der Tabelle tbl_filme zu löschen. Die Abbildung 3.12 zeigt die Tabelle tbl_filmart vor der Formatierung. Hier wurde die Spalte ID in Filmart_ID umbenannt, das Unterdatenblatt (gekennzeichnet durch ‚+’) entfernt und die Datensätze mit der ID ‚1’ 25 und ‚2’ gelöscht, nachdem diese beiden IDs aus der Tabelle tbl_filme mit Hilfe von SQLAnweisungen eliminiert wurden. Abb. 3.12: tbl_filmart vor der Formatierung 3.2.2 Erstellung der Tabellen für Korrespondenz Rechte, Absender Empfänger, Medium und Korrespondenz Rechte Film Die rechtsrelevante Korrespondenz des Rechtsanwaltes der Stiftung wurde in der ExcelTabelle Korrespondenz_Rechtsanwalt.xls erschlossen. Die erfassten Daten entsprachen nicht den Access-Import-Anforderungen. Diese Tatsache erforderte eine aufwendige manuelle Überarbeitung dieser Excel-Tabelle. So mussten zunächst die nachgestellten Artikel, wie zum Beispiel „Mörder sind unter uns, Die“ an den Beginn des Filmnamens gestellt werden „Die Mörder sind unter uns“. Grund hierfür war die Tatsache, dass der überwiegende Teil der Filmtitel in der Tabelle tbl_filme so erfasst wurde. Dieser Aufwand erschien sinnvoll, weil ein späterer automatisierter Abgleich mit Hilfe eines SQL-Statements zwischen den Tabellen tbl_haupt und tbl_filme erfolgen sollte. Ebenfalls manuell kontrolliert wurden die Trennungszeichen in den einzelnen Zellen. Es sollte hier einheitlich ein Semikolon verwendet werden, damit der Datenimport im Bezug auf die Attribute fehlerfrei abliefe. Ein weiterer notwendiger Schritt im Vorfeld des Tabellenimportes in Access war das Trennen der Filmtitel in der gleichnamigen Spalte. Ursprünglich standen alle Filme in einer Spalte. Dies entsprach in keiner Weise den Normalisierungsregeln und dem Konzept der zu erstellenden Datenbank rechtsunterlagen.mdb. Der Versuch, die gesamte Spalte Filmtitel zu exportieren und als TXT-Datei zu speichern, um sie anschließend wieder in die Excel-Tabelle zurück zu überführen, scheiterte an Zeilenumbrüchen und der Fehlinterpretation der Trennungszeichen durch Excel. So musste der aufwendige Weg beschritten werden, jede Filmtitel-Zelle einzeln in eine TXT-Datei zu 26 wandeln, zu korrigieren und wieder in Excel zu importieren. Nur so konnte gewährleistet werden, dass jeder in der rechtlichen Korrespondenz erwähnte Film seine individuelle Zelle im richtigen Tupel erhielt. Abb. 3.13: zellenweiser Filmtitel-Import Der Import der Tabelle Korrespondenz_Rechtsanwalt.xls in Access erfolgte, wie oben bereits ausführlich bei der Tabelle tbl_filme beschrieben, mit Hilfe des „Import-Assistent für Kalkulationstabellen“. Die sich daran anschließenden Vorschläge des „TabellenanalyseAssistenten“ wurden überarbeitet und korrigiert, sodass die Tabellen für Absender, Empfänger und Medium (tbl_haupt_absender, tbl_haupt_empfaenger, tbl_medium) entstanden. Die Notwendigkeit für eine separate Absender- und Empfängerrelation ergab sich aus der Tatsache, dass einige Schriftstücke der rechtsrelevanten Korrespondenz mehrere Absender bzw. Empfänger aufwiesen. Der nächste Normalisierungsschritt bestand im Auslesen der Filme aus den einzelnen Filmtitelspalten mittels einer auf SQL beruhenden SELECT-Anweisung. Der so entstandene View wurde mit den fünf Filmtitelspalten (Originaltitel_Archivtitel, Deutscher_Verleihtitel, Titel_Englisch, Titel_Sortierung und Sonstiger_Titel) der Tabelle tbl_filme abgeglichen. Das Ergebnis war eine erweiterte Sicht, die zu den einzelnen Einträgen der Tabelle tbl_haupt die entsprechenden Film-IDs ausgab. Die inkonsistente Erfassung der Filmtitel in der Tabelle tbl_filme hatte zur Folge, dass bei etwa 30 Prozent der erwähnten Produktionen, das entspricht ca. 600 Filmen, keine automatisierte Film-ID-Zuweisung erfolgen konnte. Dieser Tatbestand verlangte erneut einen manuellen Abgleich der Daten. Ebenfalls aufwendig waren Filme, die aus mehreren Teilen bestehen wie z. B. „Der Traum vom Fliegen“ Teil 1 bis 5. Jeder dieser Filmteile verfügt über eine eigene Film-ID. Diese IDs mussten nun ebenfalls manuell nachgetragen 27 werden. Im nächsten Schritt wurde die Tabelle tbl_haupt_filme erstellt, um anschließend die Film-IDs mit Verweis auf die Haupt_ID per Anfügeabfrage (SELECT… INSERT INTO) hierin zu exportieren. Abschließend wurden die in der Tabelle tbl_haupt durch Ausgliederung unnötig gewordenen Spalten gelöscht. Abb. 3.14: Illustration der Beziehungen der Tabelle tbl_haupt 3.2.3 Erstellung der Tabelle für das Schriftgut Rechte Zwischen 1999 und 2003 hat Herr Detlef Kannapin für die DEFA-Stiftung einen Teil der Schriftgutbestände der DEFA-Studios, die sich im Bundesarchiv befinden, in der AccessDatenbank DEFARechte.mdb zusammengetragen. Die von ihm erschlossenen Daten befinden sich in der Tabelle T_Filmstock. Es galt nun, diese nicht normalisierte Tabelle in die neue Datenbank für rechtsrelevante Unterlagen zu integrieren. Hierzu wurde die Tabelle T_Filmstock in die Datenbank rechtsunterlagen.mdb exportiert. Für eine sachgerechte Integration der Relation T_Filmstock war es notwendig das Attribut Filmdaten, welches nur den Wert „Archivblatt“ aufwies, durch eine entsprechende Medien-ID der Tabelle tbl_medien zu ersetzen. Im nächsten Schritt galt es die Filmtitel durch ihre entsprechenden IDs aus der Tabelle tbl_filme zu ersetzen, um sie so in die Datenbank zu implementieren. Hierzu diente, wie oben bereits bei der Tabelle tbl_haupt beschrieben, eine SQL-Abfrage, die die Spalte Filmtitel der Tabelle T_Filmstock mit den Tabellenfeldern Originaltitel_Archivtitel, Deutscher_Verleihtitel, Titel_Englisch, Titel_Sortierung und Sonstiger_Titel aus der Tabelle 28 tbl_filme verglich. Die identifizierten Filmtitel wurden dann durch eine Anfügeabfrage an die zuvor neu erstellte Tabelle tbl_filmstock_kannapien übergeben. Hierbei konnten allerdings ca. 25 Prozent der Filme nicht automatisiert übernommen werden, da die Filmtitel fehlerhaft erfasst waren. Dieser Umstand hatte zur Folge, dass ca. 900 Filme manuell mit der Tabelle tbl_filme abgeglichen werden mussten. Abschließend konnte die Spalte Filmtitel aus der inzwischen normalisierten Relation tbl_filmstock_kannapien gelöscht werden. Abb. 3.15: Illustration der Beziehungen der Tabelle tbl_filmstock_kannapien 3.3 Access-Formulare Die für eine einfache und schnelle Datenein- und ausgabe notwendigen Formulare wurden in ihrem Funktionsumfang mit Visuell Basic for Applications (VBA) erweitert. So war es möglich, eine umfangreiche Suchfunktion mit einem entsprechenden Formular in die Datenbank einzubinden. Eine erste Anregung hierfür stammt aus dem Forum www.officeloesung.de 16. Dieser Vorschlag wurde weiterentwickelt, bis hin zu individuellen Formularlösung für die Ein- und Ausgabe sowie das Information Retrieval. Die erstellten Access-Formulare werden im Folgenden einzeln vorgestellt und die Besonderheiten ihres VBA-Codes und ihrer SQL-Anweisungen erläutert. Die vollständigen Quelltexte befinden sich im Kapitel 6 „Anhang“ (6.1 bis 6.26, ab S. 66). Es wird in den folgenden Ausführungen darauf verzichtet, fortlaufend auf diesen Anhang zu verweisen. Ledig16 http://www.office-loesung.de/ftopic13271_0_0_asc.php 29 lich bei der ersten Erwähnung eines Formulars wird in einer entsprechenden Fußnote auf den Anhang verwiesen. 3.3.1 Ausgabe Korrespondenz Rechte Nachdem alle für die Datenbank rechtsunterlagen.mdb notwendigen Tabellen erstellt und normalisiert wurden, begann die Anfertigung des Ausgabeformulars für die anwaltliche Korrespondenz in Access. Der erste Schritt war die einfache Ausgabe der Tabelle tbl_haupt, um im Bedarfsfall durch den Datenbestand „blättern“ zu können. Hierfür war die Implementierung der Tabellen tbl_filmart, tbl_filme, tbl_haupt, tbl_haupt_absender, tbl_haupt_empfaenger, tbl_haupt_film, tbl_institution und tbl_medium notwendig. Dieses „Schmökerformular“ über die Rechtskorrespondenz besteht aus dem Hauptformular frm_rechtsunterlagen (Datenherkunft: subfrm_rechtsunterlagen_empfaenger 17, tbl_haupt) und den Unterformularen subfrm_rechtsunterlagen_absender 18 und subfrm_rechtsunterlagen_film 19. Der VBA-Code des Formulars Korrespondenz-Rechte 20 ist im Anhang aufgeführt. Abb. 3.16: Korrespondenz Rechte (frm_rechtsunterlagen) 17 Datenherkunft: view_haupt_empfaenger, Anhang 6.23 18 Datenherkunft: view_haupt_absender, Anhang 6.22 19 Datenherkunft: view_haupt_film_titel, Anhang 6.25 20 siehe Anhang 6.10 30 Die Verknüpfung der Unterformulare mit dem Hauptformular erfolgt über die Haupt_ID. Die Eigenschaften Löschen, Anfügen, Bearbeiten und Eingeben neuer Datensätze wurden für dieses Formular deaktiviert. 3.3.2 Eingabe Korrespondenz Rechte Das Eingabeformular für die Rechtskorrespondenz frm_rechtsunterlagen_eingabe ist an die Tabelle tbl_haupt gebunden. Das Formular setzt sich zusammen aus dem Hauptformular frm_rechtsunterlagen_eingabe und wiederum drei Unterformularen: subfrm_absender_eingabe 21, subfrm_empfaenger_eingabe 22 und subfrm_film_eingabe 23. Die Verknüpfung der Formulare erfolgt über die Haupt_ID: =Formulare!frm_rechtsunterlagen_eingabe!Haupt_ID Die Kombinationsfelder in den Unterformularen für Absender und Empfänger beziehen ihren Inhalt aus folgender SQL-Anweisung: SELECT tbl_institution.Institution_ID, Nz([Institution_Name],"") & "" & Nz([Titel],"") & " " " & Nz([Vorname],"") & " " & Nz([Name],"") & " & Nz([Ort],"") AS Institution, tbl_institution.Institution_Name, tbl_institution.Name, tbl_institution.Vorname, tbl_institution.Titel, tbl_institution.Ort FROM tbl_institution ORDER BY tbl_institution.Institution_Name; Das Kombinationsfeld Film_Eingabe bezieht seinen Inhalt aus der SQL-Anweisung: SELECT tbl_filme.Film_ID, Nz([Originaltitel_Archivtitel]," ") & " " & Nz([Deutscher_Verleihtitel]," ") & " " & Nz([Titel_Englisch]," ") & " " & Nz([Titel_Sortierung]," ") & " " & Nz([Sonstiger_Titel]," ") AS Film, tbl_filme.Originaltitel_Archivtitel, 21 für VBA-Code siehe Anhang 6.15 22 für VBA-Code siehe Anhang 6.17 23 für VBA-Code siehe Anhang 6.19 31 tbl_filme.Deutscher_Verleihtitel, tbl_filme.Titel_Englisch, tbl_filme.Titel_Sortierung, tbl_filme.Sonstiger_Titel FROM tbl_filme ORDER BY tbl_filme.Originaltitel_Archivtitel, tbl_filme.Deutscher_Verleihtitel, tbl_filme.Titel_Englisch, tbl_filme.Titel_Sortierung, tbl_filme.Sonstiger_Titel; Die Nz-Funktion innerhalb des Kombinationsfeldes ermöglicht eine übersichtliche Gestaltung des Auswahlfeldes, da in der Tabelle tbl_filme nicht in jeder Spalte Filmtitel vermerkt sind. So kann es sein, dass die erste Spalte Originaltitel_Archivtitel leer ist, aber die zweite Spalte Deutscher_Verleihtitel mit einem Eintrag versehen ist. Ohne die NzFunktion müsste die getroffene Auswahl im Sichtfeld des Kombinationsfeldes durch die Film_ID repräsentiert werden. Abb. 3.17: Erfassung: Korrespondenz Rechte (frm_rechtsunterlagen_eingabe) Die Institutions- und Film-IDs werden nach ihrer Auswahl jeweils in die Tabellen tbl_haupt, tbl_haupt_absender, tbl_haupt_empfaenger und tbl_haupt_film mit der dazugehörigen Haupt_ID geschrieben. Beim Öffnen des Formulars zur Erfassung der anwaltlichen Rechtskorrespondenz wird die nächste freie Signatur durch 32 =Format(DomMax("Signatur";"tbl_haupt")+1;"0000") ausgegeben. 3.3.2.1 Erläuterungen zum hinterlegten VBA-Code im Eingabeformular Korrespondenz Rechte In diesem Kapitel werden besondere Abschnitte des dem Eingabeformular hinterlegten VBA-Codes kurz erläutert. Der vollständige VBA-Code befindet sich im Anhang24. DoCmd.GoToRecord , , acNewRec Diese Zeile bewirkt, dass beim Öffnen des Formulars ein neuer leerer Datensatz für die Tupelerfassung angezeigt wird. Private Sub Speichern_Click() On Error Resume Next DoCmd.RunCommand acCmdSaveRecord End Sub Private Sub Form_BeforeUpdate(Cancel As Integer) If MsgBox("Soll der neue Datensatz gespeichert werden?", vbYesNo) = vbNo Then Me.Undo Cancel = True End If End Sub Diese VBA-Anweisungen dienen der Nutzerfreundlichkeit. Durch sie wird der für Access unübliche Schritt eingeführt, erst nach der Bestätigung des Speicher-Befehls den eben eingegebenen neuen Datensatz tatsächlich an die Datenbank zu übergeben. Private Sub Form_Error(DataErr As Integer, Response As Integer) If DataErr = 3201 Then Response = acDataErrContinue End Sub Der Nutzer kann während der Speicher-Abfrage mit einem Klick auf die Befehlsschaltfläche „Nein“ die Übergabe eines neuen Datensatzes an die Datenbank verhindern. Hierbei 24 siehe Anhang 6.13 33 bewirkt die obige Anweisung die Unterdrückung einer Access-Fehlermeldung für RunCommand, da sie den User lediglich darauf hinweist, dass er einen Vorgang abbricht. 3.3.3 Ausgabe Schriftgut Rechte Dieses Formular dient ebenso wie das Ausgabeformular der Rechtskorrespondenz lediglich der Sichtung von Daten. Das Bearbeiten, Löschen, Anfügen und Eingeben von Datensätzen wurde deaktiviert. Die Datenherkunft des Formulars ergibt sich aus der im Anhang 25 befindlichen SQL-Anweisung. Der dem Formular Schriftgut Rechte hinterlegte VBA-Code befindet sich im Anhang26. Einzelne Felder wurden mit Hyperlinks versehen, sodass nunmehr ein direkter Aufruf der eingescannten Dokumente möglich ist. Abb. 3.18: Schriftgut Rechte (frm_kannapien_filmstock) 25 siehe Anhang 6.4 26 siehe Anhang 6.3 34 3.3.4 Eingabe Schriftgut Rechte Dieses Formular dient der Eingabe neuen Rechtsschriftgutes. Das Eingabeformular besteht aus einem Hauptformular und einem Unterformular. Das Hauptformular frm_kannapien_filmstock_eingabe basiert auf der Tabelle tbl_kannapien_filmstock. Die Daten, die in diesem Formular erfasst werden, gelangen anschließend in die zugrunde liegende Relation. Die Medium_ID wird in der Tabelle tbl_kannapien_filmstock in das Feld Filmdaten_ID geschrieben. Das Unterformular subfrm_filmdaten_kontrolldaten dient als Kontrolldatenbogen. Es enthält alle verfügbaren Filmdaten der Tabelle tbl_filme, die nach der Auswahl eines Filmes über das Kombinationsfeld Film zur Verfügung stehen. Die Aktualisierung des Unterformulars erfolgt unmittelbar nach der Auswahl eines Films im Hauptformular durch die Übergabe der Film_ID an das Unterformular. Die Filmkontrolldaten des Unterformulars sind nicht editierbar. Sie dienen lediglich der Kontrolle, da eine Vielzahl gleich lautender Filme in der Tabelle tbl_filme existieren. So spielt es beispielsweise eine erhebliche Rolle, ob es sich um den Dokumentarfilm „Erdbeeren“ oder den Animationsfilm „Erdbeeren“ handelt. Abb. 3.19: Eingabeformular Schriftgut Rechte (frm_kannapien_filmstock_eingabe) 35 Das Unterformular subfrm_filmdaten_kontrolldaten generiert sich aus dem ihm hinterlegten View view_filme_produktion_produktionsland_filmart 27: SELECT tbl_filme.Film_ID, tbl_filme.Originaltitel_Archivtitel, tbl_filme.Deutscher_Verleihtitel, tbl_filme.Titel_Englisch, tbl_filme.Titel_Sortierung, tbl_filme.Sonstiger_Titel, tbl_filme.Herstellungsjahr_Freigabe, tbl_filme.Produktion_ID, tbl_filme.Produktionsland_ID, tbl_filme.Filmart_ID, tbl_filme.Bemerkungen, tbl_filme.Filmtitel_gesamt, tbl_produktion.Produktion, tbl_produktionsland.Produktionsland, tbl_filmart.Filmart FROM ( ( tbl_filme LEFT JOIN tbl_produktionsland ON tbl_filme.Produktionsland_ID = tbl_produktionsland.Produktionsland_ID ) LEFT JOIN tbl_produktion ON tbl_filme.Produktion_ID = tbl_produktion.Produktion_ID ) LEFT JOIN tbl_filmart ON tbl_filme.Filmart_ID = tbl_filmart.Filmart_ID; Das Kombinationsfeld Film_ID enthält seine Daten aus folgender SQL-Anweisung: SELECT tbl_filme.Film_ID, Nz([tbl_filme.Originaltitel_Archivtitel]," ") & " " & Nz([Deutscher_Verleihtitel]," ") & " " & Nz([Titel_Englisch]," ") & " " & Nz([Titel_Sortierung]," ") & " " & Nz([Sonstiger_Titel]," ") AS Film, tbl_filme.Originaltitel_Archivtitel, tbl_filme.Deutscher_Verleihtitel, tbl_filme.Titel_Englisch, tbl_filme.Titel_Sortierung, tbl_filme.Sonstiger_Titel FROM tbl_filme LEFT JOIN tbl_kannapien_filmstock ON tbl_filme.Film_ID = tbl_kannapien_filmstock.Film_ID; 27 siehe Anhang 6.21 36 3.3.4.1 Erläuterungen zum hinterlegten VBA-Code im Eingabeformular Schriftgut Rechte Der vollständige VBA-Code für das Eingabeformular Schriftgut Rechte befindet sich im Anhang 28. Private Sub Film_Kannapien_AfterUpdate() Me!subfrm_filmdaten_kontrolldaten.Form.Filter = "Film_ID = " & Me!Film_ID Me!subfrm_filmdaten_kontrolldaten.Form.FilterOn = True End Sub Der obige VBA-Code übergibt die aktuelle Film_ID an das Unterformular subfrm_filmdaten_kontrolldaten und aktualisiert so die entsprechenden Filmdaten im nicht editierbaren Kontrolldatenbereich. 3.3.5 Ausgabeformular für Korrespondenz Rechte, Schriftgut Rechte und Filmdaten Nach einer erfolgreichen Suchanfrage werden alle gefundenen Datensätze an das Ausgabeformular frm_rechtsunterlagen_ausgabe übergeben. Hierin sind die Filmdaten, die rechtliche Korrespondenz und das rechtsrelevante Schriftgut vereinigt. Das Hauptformular enthält die beiden Unterformulare subfrm_rechtsunterlagen_empfaenger und subfrm_rechtsunterlagen_absender für die Ausgabe der an der Rechtskorrespondenz beteiligten Institutionen. Die Felder, die auf digital vorliegende Dokumente verweisen, wurden mit einer Hyperlinkfunktion versehen, sodass der direkte Aufruf der Unterlagen über das Ausgabeformular möglich ist. Die Editierformulare für die Korrespondenz Rechte (frm_rechtsunterlagen_editieren, siehe Kapitel 3.3.7 „Editieren Korrespondenz Rechte“) und das Schriftgut Rechte (frm_kannapien_filmstock_editieren, siehe Kapitel 3.3.8 „Editieren Schriftgut Rechte“) können über Befehlsschaltflächen unmittelbar aus diesem Ausgabeformular der Rechercheergebnisse aufgerufen werden. Hierbei wird der aktuelle Datensatz an die jeweiligen Editierformulare übergeben. Über das Ausgabeformular frm_rechtsunterlagen_ausgabe ist es möglich, alle aufgerufenen Datensätze oder den aktuellen Datensatz auszudrucken. Hierbei erfolgt die Übergabe der Daten an den Bericht 28 siehe Anhang 6.7 37 rpt_rechtskorrespondenz mit seinen Unterberichten subrpt_haupt_absender für Absender und subrpt_haupt_empfaenger für Empfänger. Abb. 3.20: Ausgabeformular Rechercheergebnisse (frm_rechtsunterlagen_ausgabe) 38 3.3.5.1 Erläuterungen zum hinterlegten VBA-Code im Formular für die Rechercheergebnisse Der vollständige VBA-Code für das Ausgabeformular frm_rechtsunterlagen_ausgabe 29 für die Rechercheergebnisse befindet sich im Anhang. 'aktuellen Datensatz drucken Private Sub aktuellDrucken_Click() On Error GoTo Err_aktuellDrucken_Click DoCmd.OpenReport "rpt_rechtskorrespondenz", , , "tbl_filme.Film_ID =" & Me!Film_ID … 'alle aufgerufenen Datensätze drucken Private Sub aufgerufeneDrucken_Click() On Error GoTo Err_aufgerufeneDrucken_Click DoCmd.OpenReport "rpt_rechtskorrespondenz", , , Me.Filter … Die obigen VBA-Programmzeilen sind hinter die Befehlsschaltflächen „aktuellen Datensatz drucken“ und „alle aufgerufenen Datensätze drucken“ gelegt. Sie veranlassen den jeweiligen Ausdruck durch die Datenübergabe an den Bericht rpt_rechtskorrespondenz. Private Sub Rechtskorrespondenz_editieren_Click() On Error GoTo Err_Rechtskorrespondenz_editieren_Click DoCmd.OpenForm "frm_rechtsunterlagen_editieren", , , "Haupt_ID=" & Me!Haupt_ID … Dieser VBA-Code übergibt den aktuellen Datensatz an das Editierformular frm_rechtsunterlagen_editieren. Dies geschieht durch das Auslesen der Haupt_ID im aktuellen Formular frm_rechtsunterlagen_ausgabe und die Übergabe an das Editierformular frm_rechtsunterlagen_editieren. Abschließend wird der zu dieser Haupt_ID gehörende Datensatz im Editierformular aufgerufen. Private Sub Filmstock_editieren_Click() On Error GoTo Err_Filmstock_editieren_Click DoCmd.OpenForm "frm_kannapien_filmstock_editieren", , , "Kannapien_ID=" & Me!Kannapien_ID … 29 siehe Anhang 6.11 39 Hier wird das eben beschriebene Prinzip für die Übergabe des Rechtsschriftgutes an das dazugehörige Editierformular angewandt. Der Aufruf des Formulars frm_kannapien_filmstock_editieren erfolgt auch durch das Auslesen und die Übergabe der verknüpften ID – in diesem Fall der Kannapien_ID. 3.3.6 Suchformular Das Suchformular beruht auf der im Anhang befindlichen Sicht view_suche 30. Bevor es in den View view_suche integriert werden konnte, wurde die Query qry_union_film_haupt_film entwickelt, die alle Filmtitel und alle Rechtskorrespondenzeinträge zurückgibt. Ergänzt wurde diese Query innerhalb der Sicht view_suche um alle Einträge des Schriftguts Rechte aus der Tabelle tbl_kannapien_filmstock. Der Grund hierfür war die Überlegung, dass jede Filmrecherche erfolgreich verlaufen sollte, soweit dieser Film in der Tabelle tbl_filme enthalten ist. Die Suche sollte selbst dann noch positiv verlaufen, wenn für den einzelnen Titel noch keine Datensätze unter Schriftgut Rechte und Korrespondenz Rechte erfasst wurden. Abb. 3.21: Suchformular über den gesamten Datenbestand „Rechtsunterlagen“ (frm_suche) Das Suchformular enthält Volltextsuchfelder und Suchfelder, deren Suchbegriff aus einem Kombinationsfeld übernommen wird. So erschien es performancesteigernd bei recht ho30 siehe Anhang 6.26 40 mogenen Feldinhalten, wie den Institutionen (Absender, Empfänger), dem Medium, der Filmart, des Produktionslandes und der Produktionsfirma keine Volltextsuchfelder sondern Kombinationsfelder zur exakten Auswahl von Suchbegriffen zu verwenden. Hingegen erwies es sich als praktikabel bei sehr heterogenen Feldinhalten eine Volltextsuche anzuwenden. Die einzelnen Begriffe können mit * trunkiert werden, sodass auch nach mehreren Begriffen in einem Feld recherchiert werden kann, ohne dass diese Suchterme direkt aufeinander folgen müssen. Dieser Usability-Vorteil ist für das Schlagwortfeld von besonderer Bedeutung, denn so kann der Nutzer beispielsweise mit Nutzungsrecht* Lizenzgebühr in einer Suchanfrage nach ‚Nutzungsrecht’ und ‚Lizenzgebühr’ recherchieren. Eine Suchanfrage kann mit Hilfe der Booleschen Operatoren AND und OR über die Optionsgruppe (Rahmen32) verknüpft werden. 3.3.6.1 Erläuterungen zum hinterlegten VBA-Code im Suchformular Im folgenden werden wichtige VBA-Sequenzen des Formulars frm_suche erläutert. Der vollständige VBA-Code befindet sich im Anhang 31. Option Compare Database Option Explicit Private myCriteria As String Public Sub SQLString(FieldValue As Variant, FieldName As String, _ Criteria As String, ArgCount As Integer, _ Typ As Integer, Optional Operator As String = "=", _ Optional bAnd As Boolean = True) If Nz(FieldValue, "") <> "" Then If bAnd Then ' Füge "Und" hinzu, falls andere Kriterien vorhanden sind. If ArgCount > 0 Then Criteria = Criteria & " AND " Else ' Füge "Oder" hinzu, falls andere Kriterien vorhanden sind. If ArgCount > 0 Then Criteria = Criteria & " OR " End If Hier werden die Verknüpfungskriterien für die Where-Klausel bestimmt. 31 siehe Anhang 6.14 41 Select Case Typ Case 1 'Datum Criteria = Criteria & FieldName & " " & Operator & " #" & _ Format(CDate(FieldValue), "mm-dd-yyyy") & "#" Case 2 'String Like Criteria = Criteria & FieldName & " Like '*" & FieldValue & "*'" Case 3 ' Zahl Criteria = Criteria & FieldName & " " & Operator & Str(FieldValue) Case 4 'String = Criteria = Criteria & FieldName & " = '" & FieldValue & "'" Case 5 'Ja/nein If FieldValue = "Ja" Or FieldValue = "True" Or _ FieldValue = True Then Criteria = Criteria & FieldName & " = -1" Else Criteria = Criteria & FieldName & " = 0" End If Case 6 'leere Felder Criteria = Criteria & "(" & FieldName & ") Is Null" Case 7 'Wahr/Falsch If FieldValue = "Wahr" Or FieldValue = "True" Or _ FieldValue = True Then Criteria = Criteria & FieldName & " = -1" Else Criteria = Criteria & FieldName & " = 0" End If End Select ArgCount = ArgCount + 1 End If End Sub In dem obigen VBA-Code-Abschnitt werden die einzelnen Fälle definiert. Hier wird festgelegt, welche möglichen Rechercheanforderungen existieren können und wie diese von Access behandelt werden sollen. tmpCriteria = "" tmpCount = 0 If tmpCriteria <> "" Then myCriteria = myCriteria & IIf(myCriteria <> "", " AND (", "(") & _ tmpCriteria & ")" tmpCriteria = "" ArgCount = tmpCount tmpCount = 0 End If 42 Der oben aufgeführte VBA-Code dient der Bereichseingrenzung. Dies ist z. B. erforderlich, wenn eine Recherche nach Zeiträumen ausgeführt werden soll. So kann man nun Filteranfragen ohne festen numerischen Beginn und ohne festes numerisches Ende filtern lassen. Im Fall der vorliegenden Datenbank war eine solche Filterfunktion zwar nicht notwendig, aber die Bereichseingrenzung wurde für zukünftige Datenbankerweiterungen bereits eingefügt. SQLString Me!OrdnerNr, "OrdnerNr", myCriteria, ArgCount, 3, , CBool(Me!Rahmen32 = 2) 'Haupt SQLString Me!Signatur, "tbl_haupt.Signatur", myCriteria, ArgCount, 2, , CBool(Me!Rahmen32 = 2) 'Haupt SQLString Me!Schlagwort, "Schlagworte", myCriteria, ArgCount, 2, , CBool(Me!Rahmen32 = 2) 'Haupt SQLString Me!Betreff, "Betreff", myCriteria, ArgCount, 2, , CBool(Me!Rahmen32 = 2) 'Haupt SQLString Me!Datum, "tbl_haupt.Datum", myCriteria, ArgCount, 2, , CBool(Me!Rahmen32 = 2) 'Haupt SQLString Me!Aktenzeichen, "Zeichen_Aktenzeichen", myCriteria, ArgCount, 2, , CBool(Me!Rahmen32 = 2) 'Haupt SQLString Me!UrhG, "Paragraphen_UrhG", myCriteria, ArgCount, 2, , CBool(Me!Rahmen32 = 2) 'Haupt SQLString Me!Vertraege, "Paragraphen_Vertraege", myCriteria, ArgCount, 2, , CBool(Me!Rahmen32 = 2) 'Haupt SQLString Me!Film, "Filmtitel_gesamt", myCriteria, ArgCount, 2, , CBool(Me!Rahmen32 = 2) 'Haupt SQLString Me!Bemerkungen, "tbl_Haupt.Bemerkungen", myCriteria, ArgCount, 2, , CBool(Me!Rahmen32 = 2) 'Kannapien SQLString Me!Institution_Empfaenger, "InstitutionE_ID", myCriteria, ArgCount, 3, , CBool(Me!Rahmen32 = 2) SQLString Me!Institution_Absender, "InstitutionA_ID", myCriteria, ArgCount, 3, , CBool(Me!Rahmen32 = 2) SQLString Me!Produktion, "tbl_filme.Produktion_ID", myCriteria, ArgCount, 3, , CBool(Me!Rahmen32 = 2) SQLString Me!Produktionsland, "tbl_filme.Produktionsland_ID", myCriteria, ArgCount, 3, , CBool(Me!Rahmen32 = 2) SQLString Me!Filmart, "tbl_filme.Filmart_ID", myCriteria, ArgCount, 3, , CBool(Me!Rahmen32 = 2) SQLString Me!Medium, "tbl_haupt.Medium_ID", myCriteria, ArgCount, 3, , CBool(Me!Rahmen32 = 2) In der obigen VBA-Anweisung werden die einzelnen Variablen der Suchfelder definiert. Hier wird determiniert, wie mit den Suchbegriffen der einzelnen Suchfelder verfahren werden soll. So ist die Übergabe der einzelnen Suchterme zum Filtern innerhalb des jeweiligen Attributs der betreffenden Relation festgelegt. Ebenso wird der Recherchefall 43 (Case 1-7) für die einzelnen Suchfelder definiert. Letztlich wird für die Verwendung eines Booleschen Operators auf die in der Optionsgruppe Rahmen32 getroffenen Auswahl zwischen AND und OR verwiesen. SQLString Variable1, Variable2, mycriteria, ArgCount, Variable3, Me!Boolean Der VBA-Code ist um beliebig viele Suchfelder erweiterbar. Es muss lediglich der oben aufgeführte VBA-Code angepasst und die Variablen richtig benannt werden. If myCriteria = "" Then myCriteria = "True" End If Filterbedingung = myCriteria End Function And dieser Stelle endet die Definition der Funktion für das Suchformular frmSuche. Zuvor wird Access aber noch veranlasst bei mehreren Suchbegriffen diese mit dem gewählten Booleschen Operator zu verknüpfen und nach allen Begriffen zu filtern. Private Sub Aktenzeichen_AfterUpdate() End Sub Private Sub Bemerkungen_AfterUpdate() End Sub Private Sub Betreff_AfterUpdate() End Sub Private Sub Datum_AfterUpdate() End Sub Private Sub Film_AfterUpdate() End Sub Private Sub Institution_Absender_AfterUpdate() End Sub Private Sub Institution_Empfaenger_AfterUpdate() End Sub Private Sub Medium_AfterUpdate() End Sub Private Sub OrdnerNr_AfterUpdate() End Sub Private Sub Produktion_AfterUpdate() End Sub Private Sub Produktionsland_AfterUpdate() End Sub Private Sub Filmart_AfterUpdate() End Sub Private Sub UrhG_AfterUpdate() 44 End Sub Private Sub Vertraege_AfterUpdate() End Sub Private Sub Signatur_AfterUpdate() End Sub Private Sub Betreff_Click() End Sub Private Sub Schlagwort_AfterUpdate() End Sub Der obige VBA-Code definiert für die einzelnen Suchfelder das Ereignis „Nach Aktualisierung“, d. h. es wird nur nach aktualisierten Suchfeldeinträgen recherchiert. Somit wird eine Suche nach dem Wert ‚0’ verhindert. Private Sub Suchen_Click() DoCmd.OpenForm "frm_rechtsunterlagen_ausgabe" SetFilter End Sub Dieser VBA-Code startet nach einem Klick auf die Befehlsschaltfläche „Suchen“ den Filtervorgang und setzt den oben definierten Filter. Private Sub Schließen_Click() DoCmd.Close acForm, Me.Name End Sub Die obige VBA-Anweisung schließt nach einem Klick auf die Befehlsschaltfläche „Schließen“ das Suchformular. Private Sub Abbrechen_Click() Me!OrdnerNr = Null Me!Signatur = Null Me!Schlagwort = Null Me!Betreff = Null Me!Datum = Null Me!Aktenzeichen = Null Me!UrhG = Null Me!Vertraege = Null Me!Bemerkungen = Null Me!Institution_Empfaenger = Null Me!Institution_Absender = Null Me!Produktion = Null Me!Produktionsland = Null Me!Filmart = Null Me!Medium = Null 45 Me!Film = Null End Sub Mit Hilfe dieser Anweisung werden die Einträge in den Suchfeldern zurück auf ‚NULL’ gesetzt. Dies ermöglicht das einfache Zurücksetzen aller bisher eingegebenen Suchbegriffe, um eine neue Rechercheanfrage durchzuführen. Function AnzahlDS() As Integer On Error GoTo Fehler Dim dsg As Recordset Set dsg = Me.RecordsetClone dsg.MoveLast AnzahlDS = dsg.RecordCount dsg.Close Exit Function Fehler: Select Case Err.Number Case 3021 AnzahlDS = 0 Case Else MsgBox Err.Number & ": " & Err.Description End Select End Function Hier werden die gefundenen Datensätze gezählt und ausgegeben. Private Sub SetFilter() Me.Filter = Filterbedingung() Me.FilterOn = True Hier wird die Filterbedingung übergeben und der Filter aktiviert. On Error Resume Next With Forms("frm_rechtsunterlagen_ausgabe") .Filter = Me.Filter .FilterOn = True .OrderBy = "Originaltitel_Archivtitel" .OrderByOn = True End With On Error GoTo 0 Der obige Code veranlasst das Öffnen des Ausgabeformulars frm_rechtsunterlagen_ausgabe, falls dieses nicht schon geöffnet ist. Gleichzeitig wird der Filter aufgerufen und das Sortierkriterium der gefundenen Datensätze nach Originaltitel_Archivtitel aus der Tabelle tbl_filme festgelegt. 46 If Me.RecordsetClone.RecordCount = 0 Then MsgBox "Ihre Suche ergab leider keinen Treffer." Me.FilterOn = False End If End Sub Wenn kein Datensatz entsprechend den Filterkriterien gefunden wurde, veranlasst dieser VBA-Code eine Massagebox-Ausgabe, die eine erfolglose Suche meldet. Grund hierfür ist, dass Access nach einer erfolglosen Suche entweder einen leeren Datensatz mit dem Navigationsleistenhinweis ‚1 von 1 gefiltert’ oder einen leeren Formular-Detailbereich ohne Hinweis zurückgibt. Welche dieser beiden Meldungen von Access angezeigt wird, ist abhängig von der Aktivierung oder Deaktivierung der Formulareigenschaft „Anfügen zulassen“ unter der Registerkarte „Daten“. Private Sub Index_Click() DoCmd.OpenForm "frm_index" DoCmd.Close acForm, Me.Name End Sub Hier wird nach einem Klick auf die Befehlsschaltfläche „zurück zur Auswahl“ das Suchenformular geschlossen und das Indexformular geöffnet. 3.3.7 Editieren Korrespondenz Rechte Das Hauptformular frm_rechtsunterlagen_editieren 32 beruht auf der Tabelle tbl_haupt. Der hinter diesem Formular liegende VBA-Code befindet sich im Anhang (Anhang 6.12). Der zu editierende Datensatz wird direkt aus dem Formular frm_rechtsunterlagen_ausgabe 33 per Befehlsschaltflächen-Aktivierung an das Editierformular übergeben. Das Formular frm_rechtsunterlagen_editieren enthält insgesamt sechs Unterformulare: - subfrm_rechtsunterlagen_empfaenger_editieren, - subfrm_empfaenger_eingabe_editieren 34, - subfrm_rechtsunterlagen_absender_editieren, 32 für VBA-Code siehe Anhang 6.12 33 für VBA-Code siehe Anhang 6.11 34 für VBA-Code siehe Anhang 6.18 47 - subfrm_absender_eingabe_editieren 35, - subfrm_rechtsunterlagen_film_editieren und - subfrm_filmdaten_kontrolldaten. Abb. 3.22: Editierformular für Korrespondenz Rechte (frm_rechtsunterlagen_editieren) subfrm_rechtsunterlagen_empfaenger_editieren, subfrm_rechtsunterlagen_absender_editieren und subfrm_rechtsunterlagen_film_editieren: In diesen Unterformularen können die einzelnen bereits erfassten Institutionen (Empfänger bzw. Absender) und Filme editiert werden. Das Formular subfrm_rechtsunterlagen_film_editieren beruht auf der Sicht view_haupt_film_editieren . 36 35 für VBA-Code siehe Anhang 6.16 36 siehe Anhang 6.24 48 subfrm_empfaenger_eingabe_editieren, subfrm_absender_eingabe_editieren und subfrm_film_eingabe_editieren: Falls noch keine Institution (Empfänger bzw. Absender) für den aktuellen Datensatz im Unterformular subfrm_rechtsunterlagen_empfaenger_editieren bzw. subfrm_rechtsunterlagen_absender_editieren hinterlegt ist, kann sie über diese Unterformulare ausgewählt werden. Ist die neu zu erfassende Institution noch nicht in dem hier hinterlegten Kombinationsfeld verzeichnet, ist eine Eingabe über ein weiteres Formular (frm_institution_neu), das mit Hilfe der Buttons „unbekannten Empfänger erfassen“ und „unbekannten Absender erfassen“ geöffnet wird, möglich. Beide Befehlsschaltflächen verweisen auf das selbe Formular. Aus Gründen der Nutzerfreundlichkeit wurde dieser Button jeweils für die Empfänger und Absender eingefügt. Das Unterformular subfrm_film_eingabe_editieren 37 erfüllt die eben beschriebene Funktionsweise für den Film. Ist noch kein Film erfasst, kann hier ein Titel für den aktuellen Datensatz auswählt werden. Allerdings ist es nicht notwendig neue Filme erfassen zu können, da die Tabelle tbl_filme alle zum DEFA-Filmstock gehörenden Produktionen bereits vollständig verzeichnet. Es können jedem Datensatz beliebig viele Empfänger, Absender oder Filme über die Befehlsschaltflächen „weiteren Empfänger hinzufügen“, „weiteren Absender hinzufügen“ und „weiteren Film hinzufügen“ angefügt werden. Der geänderte Datensatz wird nach einem Klick auf die Befehlsschaltfläche „Speichern“ direkt in die jeweiligen Tabellen unter Verweis auf die aktuelle Haupt_ID geschrieben. 3.3.8 Editieren Schriftgut Rechte Das Editierformular öffnet sich nach einem Klick auf den Button „Schriftgut Rechte editieren“ innerhalb des Formulars „Rechercheergebnis“ (frm_rechtsunterlagen_ausgabe). Hierbei wird der aktuelle Datensatz an das Editierformular für das Rechtsschriftgut übergeben. 37 für VBA-Code siehe Anhang 6.20 49 Abb. 3.23: Editierformular für das Rechtsschriftgut (frm_kannapiein_filmstock_editieren) Da jedem Tupel von Schriftgut Rechte genau ein Film zugeordnet ist (1:1-Beziehung), ist es für dieses Editierformular ausreichend, lediglich ein Kombinationsfeld mit allen verfügbaren Filmtiteln zu integrieren. So kann der Nutzer einfach Änderungen an der ursprünglichen Filmauswahl vornehmen. Die sich hinter dem Editierformular frm_kannapiein_filmstock_editieren befindliche SQLAnweisung ist im Anhang 38 aufgeführt. Das Kombinationsfeld tbl_kannapien_filmstock_Film_ID bezieht seine Daten aus folgender SQL-Abfrage: SELECT tbl_kannapien_filmstock.Film_ID, tbl_filme.Originaltitel_Archivtitel FROM tbl_kannapien_filmstock INNER JOIN tbl_filme ON tbl_kannapien_filmstock.Film_ID = tbl_filme.Film_ID; Auf der rechten Seite des Editierformulars Editieren: Schriftgut Rechte (frm_kannpien_filmstock_editieren) befindet sich ein inhaltlich unveränderbarer Kontroll38 für SQL-Anweisung siehe Anhang 6.6 50 datenbogen für die Filmangaben. Dieser erfüllt den Zweck, ähnlich dem Formular Erfassung: Schriftgut Rechte (frm_kannapien_filmstock_eingabe), alle verfügbaren Filmdaten nach der Auswahl eines Films zur Überprüfung anzuzeigen. Nach einem Klick auf die Schaltfläche „Speichern“ wird der geänderte Datensatz in den jeweiligen Tabellen aktualisiert und gespeichert. Über den Button „Löschen“ wird der aktuelle Datensatz Schriftgut Rechte aus allen ihn betreffenden Tabellen entfernt. 3.3.8.1 Erläuterungen zum hinterlegten VBA-Code im Editierfomular für das Schriftgut Rechte Der vollständige VBA-Code des Editierformulars frm_kannapiein_filmstock_editieren für Schriftgut Rechte befindet sich im Anhang 39. Im Folgenden wird hieraus eine besondere Sequenz erläutert. Private Sub Loeschen_Click() Dim sql As String Dim result As Integer result = MsgBox("Möchten Sie wirklich diesen Datensatz löschen?", vbYesNo + vbQuestion, "Sicherheitsabfrage") If result = vbYes Then DoCmd.RunCommand acCmdDeleteRecord End If End Sub … Dieser VBA-Code veranlasst die Löschung des aktuellen Datensatzes aus der Datenbank rechtsunterlagen.mdb, nachdem der Nutzer eine Sicherheitsabfrage seines Vorhabens über eine Massagebox bestätigt hat. 3.3.9 Erfassung neuer Medien Über das Formular „Erfassung neuer Medien“ (frm_medium_eingabe) können neue Medien eingegeben werden. Die Daten werden erst nach der Aktivierung des Buttons „Spei- 39 siehe Anhang 6.5 51 chern“ in die Tabelle tbl_medien geschrieben. Die für dieses Formular geschriebene SQLAnweisung 40 und der hinterlegte VBA-Code 41 befinden sich im Anhang. Abb. 3.24: Formular zur Eingabe neuer Medien (frm_medium_eingabe) Sofort nach der Erfassung eines Mediums ist dieses in den entsprechenden Kombinationsfeldern für eine mögliche Auswahl verfügbar. 3.3.10 Erfassung neuer Institutionen Über das Formular können nach Bedarf neue Institutionen bzw. Personen erfasst werden. Nach einem Klick auf die Befehlsschaltfläche „Speichern“ werden diese Daten an die Tabelle tbl_institution übergeben. Anschließend sind sie in allen Unterformularen, die ihre Daten aus dieser Tabelle generieren, verfügbar. Der diesem Eingabeformular hinterlegte VBA-Code ist im Anhang 42 einsehbar. Abb. 3.25: Formular zur Eingabe neuer Institutionen (frm_institution_neu) 40 für SQL-Anweisung siehe Anhang 6.8 41 für VBA-Code siehe Anhang 6.9 42 für VBA-Code siehe Anhang 6.2 52 3.3.11 Indexformular Das Indexformular frm_index öffnet sich unmittelbar nach dem Aufruf der Datenbank rechtsunterlagen.mdb. Es dient der nutzerfreundlichen Navigation innerhalb der Datenbank. So kann der Nutzer entscheiden, ob er eine Suche ausführen, in den einzelnen Datensätzen zur Korrespondenz Rechte oder dem Schriftgut Rechte „schmökern“ oder neue Datensätze eingeben möchte. Der dem Indexformular hinterlegt VBA-Code ist im Anhang 43 aufgeführt. Abb. 3.26: Indexformular (frm_index) 43 für VBA-Code siehe Anhang 6.1 53 4 Ausblick Wie bereits mehrfach erwähnt konnte aufgrund des geringen Diplomarbeitszeitraumes keine Datenbank erstellt werden, die die rechtsrelevanten Unterlagen der DEFA-Stiftung vollständig beinhaltet und verwaltet. Deshalb enthält dieses Kapitel eine Beschreibung eines möglichen Lösungsansatzes, um im Anschluss an diese Diplomarbeit doch noch zu der gewünschten allumfassenden Datenbank zu gelangen. Abbildung 4.1 zeigt ein mögliches ER-Modell 44, dass alle rechtsrelevanten Unterlagen in einer Datenbank vereinigt. Dieses ERM befindet sich vergrößert im Anhang 45 dieser Arbeit. Die rot gekennzeichneten Bereiche stellen die zu ergänzenden Relationen, Beziehungen und Verknüpfungen dar. Der schwarz markierte Bereich kennzeichnet den Datenbankteil, der innerhalb der Diplomarbeit umgesetzt worden ist. 4.1 Integration weiterer Tabellen und Datenbanken Für die Entscheidung, welche Tabellen und Datenbanken noch in die Datenbank rechtsunterlagen.mdb übernommen werden sollten, diente die Auflistung der Rechercheschritte für rechtsrelevante Unterlagen aus Kapitel 2.1 „Problemfeld“. Hierbei sollte sich zeigen, dass die Relation tbl_filme nicht als einzige zentrale Tabelle der Datenbank rechtsunterlagen.mdb fungieren kann, da einige Tabellen, die DEFA-Verträge verzeichnen, sich nicht unmittelbar auf Filme beziehen, sondern eher allgemeiner juristischer Natur sind. 4.1.1 DEFA-Außenhandel und Progress Film-Verleih Die Unterlagen des DEFA-Außenhandels und des Progress Film-Verleihs befinden sich in der Access-Datenbank DEFA_Aussenhandel_Progress.mdb. Diese Datenbank besteht lediglich aus der Tabelle DEFA-AH mit einer Kardinalität von 29.433. Die Entität DEFA-AH sollte zunächst an das einheitliche Erscheinungsbild der Datenbank rechtsunterlagen.mdb angepasst und in tbl_aussenhandel umbenannt werden. In dieser Tabelle sind in zwei Datensätzen keine Filmtitel erfasst, jedoch jeweils die Abkürzung, Ordner- und Mappennummer. Die hier fehlenden Filmtitel sollten ergänzt werden. 44 siehe auch CD-Anhang, „ER-Modelle“ 45 siehe auch Anhang 6.27, „Ausblick:ER-Modell“ 54 Ordnertitel_alt Aussenhandel_ID OrdnerNr_alt Vertragspartei Vertrags partei_ID Ins titution_ID MappenNr_alt Film_ID Vertragsgegenstand BArch-Signatur Produz ent Ordnertitel_neu Signatur_Hauptbuc hhaltung Aussenhandel_ID tbl_ ve rtra gspa rte i tbl_a usse nha nde l_ve rtra g 1, n Farbe Hauptbuchhaltung_ID Bemerkungen tbl_ha uptbuchha ltung OrdnerNr_neu MappenNr_neu Bemerkungen Vorname Titel Name 0, n Zeitraum 1, 1 Auftrag Produktionsnr bez ieht sich auf Bemerkung Institution_Name Ort Institution_ID 0, n tbl_institution 0, n 0, n 0, n 0, n 0, n W ahr_Falsch_Autor W ahr_Falsch_Vertragspartei ist 0, n W ahr_Falsch_Dokfilm Empfaenger_ID W ahr_Falsch_Auftraggeber 1, 1 W ahr_Falsc h_Komponist Haupt_ID tbl_ha upt_ e m pfa e nge r Absender_ID OrdnerNr Haupt_ID tbl_a utor_ve rla g Datum Signaturkuerzel 1, 1 AV_Jahr Zeichen_Aktenzeichen tbl_ve rtra gsa rt 0, n 1, 1 1, 1 Komponist_Institution_ID Details hat Dok_Film_ID Komponist_Signatur Dok_Vertrag_ID tbl_ha upt tbl_kom ponist Komponist_ID 1, 1 bez ieht sich auf bezieht sich auf 0, n Dok_Jahr Komponis t_Vertragsart_ID Komponist_Jahr 0, n Deutscher_Verleihtitel Film_ID Haupt_ID Filmart_ID gehört zu Titel_Englisch Originaltitel_Archivtitel 0, n 0, n Korrespondenz ist auf tbl_ha upt_ film Filmart tbl_film a rt 1, n Titel_Sortierung Produktionsland_ID 0, 1 Film_ID 1, n Dok_Bemerkung 0, n Komponist_Film_ID Medium_ID tbl_m e dium tbl_dokfilm _ve rtra g 1, 1 Schlagworte Paragraphen_UrhG 1, 1 Dok_Vertragsart_ID 1, 1 0, m Paragraphen_Vertraege 1, n Dok _Institution_ID bezieht sich auf Medium_ID Scan geschlossen mit 0, n InstitutionA_ID Bemerkungen 0, m Vertragsart AV_Vertragsart_ID AV_Bemerkung Buch Haupt_ID hat 1, 1 festgelegt in InstitutionE_ID Vertragsart_ID AV_Signatur AV_ID ist tbl_ha upt_ a bse nde r Betreff Signatur AV_Film_ID AV_Ins titution_ID W ahr_Falsch_Haupt tbl_film e 0, n aus 0, 1 tbl_produktionsla nd 1, n 0, 1 Filmtitel_gesamt Sonstiger_Titel Produk tionsland Medium Haupt_Film_ID von Herstellungsjahr_Freigabe Bemerkungen tbl_produktion 1, n Produktion_ID Produktion_ID Produktion Filmart_ID Produktionsland_ID Bearbeitungskarte DEFA Aussenhandel 0, n Zulassungs unterlagen-Fiche Bearbeitungskarte Progress dokfilm_Signatur Lizenzvertrag Studio-Progress 0, 1 Annotation/Karte PG_KAG_ID dokfilm_Film_ID PG_KAG PG_KAG_ID 0, n Nr_ID Lizenzvertrag Studio-Aussenhandel Filmdaten_ID ist 0, n ist dokfilm_Schlagwort 0, 1 bezieht sich auf 1, 1 Koproduktion/Dienstleistungen tbl_pg_ka g 1, n genannte_Person Zeit 1, 1 dreht 1, n Bemerkungen Bemerkung hat dokfilm_Institution_ID Film_ID tbl_ka nna pie n_film stock 0, 1 Klassifikation_Gaebler Musik Information stammt von tbl_dokfilm 2007 1, 1 Literarische Vorlage Signatur Abkuerzung Mappennr Abkuerzung_ID AH_ID Erlaeuterung Ordner ProdNr Vertrag DEFA Aussenhandel Aktueller Stand Freigabe Vertrag DEFA Aussenhandel Synchronprotokoll tbl_a usse nha nde l hat 1, 1 Drittbeteiligung Vertrag Aussenhandel-Progress Remakerechte Ankaufsprotokoll Film_ID Abb. 4.1: ER-Modell einer vollständigen Datenbank der rechtsrelevanten Unterlagen der DEFA-Stiftung. Abteilung_ID tbl_a bkue rzung 1, n 0, n Das jetzige Feld2 sollte umbenannt werden in Abkuerzung. Die darin enthaltenen Angaben könnten in eine neue Tabelle übernommen werden, da so die Möglichkeit entsteht, die recht homogenen Abkürzungen in der Tabelle tbl_aussenhandel durch die entsprechenden Abkürzungs-IDs zu ersetzen. In der neu entstandenen Tabelle tbl_abkuerzung könnte noch ein Attribut Erläuterung, dass Abkürzungen wie z. B. AH/V für Außenhandel/Vertrag, Pr/Sy für Progress/Synchronisation oder Pr/T für Progress/Trickfilm auflöst, eingefügt werden. Daran anschließend sollten die Filmtitel aus der Spalte Titel durch die entsprechenden Film-IDs aus der bereits vorhandenen zentralen Relation tbl_filme ersetzt werden. Die Filme der Tabelle tbl_aussenhandel dürfen jeweils nur einmal in der Tabelle tbl_filme vorkommen. Das bedeutet, dass Filme, die in mehreren Teilen gedreht wurden, normalisiert werden müssen, wenn jeder Filmteil über eine eigene Film-ID in der Relation tbl_filme verfügt. Denn nur so kann die notwendige 1:1-Beziehung hergestellt werden. Um die Filmtitel durch ihre jeweiligen IDs in einer möglichst effizienten SQL-Abfrage zu ersetzen ist es notwendig, dass vor deren Ausführung die Artikel entsprechend der Filmerfassung der Relation tbl_filme vom Ende des Titels an den Anfang gestellt werden. Deutscher_Verleihtitel Titel_Englisch Originaltitel_Archivtitel ... Film_ID tbl_filme 0, n ist Mappennr Bemerkungen AH_ID 1, 1 Ordner tbl_aussenhandel 1, 1 Abteilung_ID Film_ID hat 1, n tbl_abkuerzung Erlaeuterung Abkuerzung_ID Abkuerzung Abb. 4.2: Außenhandel-Film-Abkürzung (ERM-Ausschnitt) 56 4.1.2 DEFA-Außenhandel-Verträge Die Globalverträge des DEFA-Außenhandels sind momentan in der Excel-Tabelle Außenhandel_Verträge.xls in 593 Datensätzen erschlossen. Diese Tabelle beinhaltet allgemeine Außenhandelsverträge, die keinen direkten Bezug zu einem Film des DEFA-Filmstocks aufweisen. Somit kann eine Integration in die Datenbank rechtsunterlagen.mdb nur über die beteiligten Vertragsparteien erfolgen. Deshalb sollten aus der Spalte Vertragspartei die Institutionen extrahiert werden, um diese in einer zusätzlichen Tabelle tbl_vertragspartei mit ihren Institutions-IDs und den dazugehörigen Vertrags-IDs zu erfassen. Diese Extraktion kann allerdings nur manuell erfolgen, da keine SQL-Anweisung in der Lage sein wird, aus einem Spalteninhalt wie z. B. „Ministerium für Kultur, HV Film und VEB DEFA, Berlin / Tschechoslowakischer Staatsfilm "CSF", Prag; vom 7.2.1955“ die Institutionen fehlerfrei zu separieren. Die Institutions-IDs der Vertragsparteien generiert man aus der Tabelle tbl_institution, nachdem man diese dort erfasst oder, wenn sie bereits vorhanden sind, übernommen hat. In der Tabelle tbl_institution sollte nun noch ein Wahr/Falsch-Attribut Wahr_Falsch_Vertragspartei eingefügt werden, sodass die Vertragsparteien hier den logischen Wert WAHR zugeordnet bekommen. Sind einzelne Institutionen hier bereits erfasst, muss ihnen nachträglich noch der Wert Vertragspartei = WAHR zugewiesen werden. Durch dieses Wahr/Falsch-Attribut lässt sich später die Suche nach Vertragsparteien innerhalb der Institutionen schon im Vorfeld einschränken. Ordnertitel_alt Aussenhandel_ID OrdnerNr_alt Vertragspartei_ID Vertragspartei_ID Institution_ID MappenNr_alt Vertragsgegenstand Ordnertitel_neu Aussenhandel_ID tbl_ vertragsparte i tbl_a usse nha nde l_vertrag 1, n Bemerkungen OrdnerNr_neu MappenNr_neu 0, n Institution_Name W ahr_Falsch_Vertragspartei ... Institution_ID tbl_institution Abb. 4.3: Außenhandel-Vertrag-Institution (ERM-Ausschnitt) Anschließend sollte die Tabelle Außenhandel_Verträge.xls umbenannt werden in tbl_aussenhandel_vertrag. Die restlichen Attribute der Tabelle Außenhandel_Verträge.xls wie Vertragsgegenstand, Ordnertitel alt, Ord-nerNr alt, Mappen-Nr. alt, Ord-nerNr. Neu, Mappen-Nr. neu, Ordner57 titel neu und Bemerkungen können unverändert in die neue Relation tbl_aussenhandel_vertrag der Datenbank rechtsunterlagen.mdb übernommen werden. Lediglich die Spaltennamen sollten den Access-Konventionen für Attributnamen angepasst werden: Aussenhandel_ID, Vertragsparteien_ID, Vertragsgegenstand, Ordnertitel_alt, OrdnerNr_alt, MappenNr_alt, OrdnerNr_neu, MappenNr_neu, Ordnertitel_neu und Bemerkungen. 4.1.3 Autoren- und Verlagsverträge Die Autoren- sowie die Verlagsverträge befinden sich in der Excel-Tabelle Autorenvereinigt april 08.xls mit über 15.000 Datensätzen. Alle Einträge beziehen sich auf genau einen Film (1:1 Beziehung), sodass die Filme durch ihre IDs aus der Tabelle tbl_filme ersetzt werden können. Damit ist auch eine unmittelbare Einbindung in die Datenbank möglich. Die Excel-Tabelle sollte in der Datenbank rechtsunterlagen.mdb in tbl_autor_verlag umbenannt werden. Ein weiterer Normalisierungsschritt ist die Übernahme der Autoren und Verlage in die Tabelle tbl_institution. Danach können sie in der neu entstandenen Tabelle tbl_autor_verlag durch ihre ID repräsentiert werden. Hierbei wäre es erneut sinnvoll, für die spätere Eingrenzung der Suchabfrage ein Wahr/FalschAttribut Wahr_Falsch_Autor einzurichten. Teilweise sind Autorenehepaare in einer Zelle erfasst, sodass eine Normalisierung unumgänglich ist. Letztlich müssten die recht homogenen Vertragsarten der Spalte Vertrag über in eine separate Tabelle exportiert werden, um sie anschließend in der Tabelle tbl_autor_verlag durch ihre IDs zu ersetzen. Dieser Schritt ist auch insofern sinnvoll, da andere Tabellen ebenfalls Vertragsarten benennen und diese dann mit der Tabelle tbl_vertragsart verbunden werden können. Jedem Autoren- und Verlagseintrag ist genau eine Vertragsart zugeordnet (1:1-Beziehung). Einträge wie beispielsweise „10 Liedtexte“ sollten in eine neue Spalte Details verschoben werden und unter Vertragsart lediglich den Eintrag „Liedtext“, repräsentiert durch die entsprechende ID, aufweisen. Die Spalten Signatur, Jahr und Bemerkungen können unverändert übernommen werden. Es sollte lediglich bei der Wahl des Datentyps darauf geachtet werden, dass die Jahresangaben mitunter einen Zeitraum aufweisen. 58 Wahr_Falsch_Autor Institution_Name ... Institution_ID tbl_institution 0, n ist AV_Film_ID AV_Institution_ID Vertragsart_ID AV_Signatur 1, 1 Vertragsart AV_ID tbl_autor_verlag 0, n tbl_vertragsart AV_Vertragsart_ID 1, 1 AV_Jahr hat 1, 1 AV_Bemerkung Details bezieht sich auf 0, n tbl_filme Film_ID ... Originaltitel_Archivtitel Titel_Sortierung Deutscher_Verleihtitel Abb. 4.4: Autor/Verlag-Vertrag-Institution (ERM-Ausschnitt) 4.1.4 Dokumentarfilmverträge Wie bereits in Kapitel 2.1 „Problemfeld“ unter Punkt 6 „Recherche in den Excel-Tabellen zu Dokumentarfilmrechten“ beschrieben, sind die Verträge zu den DEFA-Dokumentarfilmen in zwei Excel-Tabellen erschlossen. Hierbei handelt es sich zum einen um eine Karteikartenverzeichnung (dokfilm2007.xls) und zum anderen um die Nacherschließung von einzelnen Aktengruppen mit Verträgen des DEFA-Studios für Dokumentarfilme (Dokumentarfilm_Vertrag.xls). Die Excel-Tabelle Dokumentarfilm_Vertrag.xls sollte in tbl_dokfilm_vertrag umbenannt werden. Sie weist eine der Autoren- und Verlagsverträge-Tabelle ähnliche Struktur auf. Somit kann man sich bei der Übernahme der Daten an der Beschreibung in Kapitel 4.1.3 „Autoren- und Verlagsverträge“ orientieren. In dieser Tabelle müssen, wie in der Relation tbl_autor_verlag, die Filme, Personen (Institutionen) und Vertragsarten normalisiert werden. 59 Deutscher_Verleihtitel Originaltitel_Archivtitel Titel_Englisch ... Film_ID tbl_filme 0, n bezieht sich auf Dok_Institution_ID Dok_Film_ID Dok_Vertrag_ID 1, 1 Vertragsart_ID tbl_dokfilm_vertrag 1, 1 hat 0, n Vertragsart tbl_vertragsart 1, n Dok_Jahr Dok_Bemerkung Dok_Vertragsart_ID dreht 0, n tbl_institution ... Institution_ID Wahr_Falsch_Dokfilm Institution_Name Abb. 4.5: Dokumentarfilm-Vertrag (ERM-Ausschnitt) Die Excel-Tabelle der Karteikartenverzeichnung (Findmittel) dokfilm2007.xls beinhaltet eine Auflistung der Dokumentarfilmverträge im Bundesarchiv. Sie kann über die Angaben der beteiligten Institutionen in die Datenbank rechtsunterlagen.mdb eingebunden werden. Nicht zu jedem Eintrag sind entsprechende Filmtitel erwähnt. Somit wäre eine Datenbankintegration über die Filme allein nicht möglich. Aus diesem Grund ist es notwendig, die beteiligten Institutionen aus der Tabelle auszulesen. Ist die Institution nicht bereits in der Relation tbl_institution vorhanden, muss sie aufgenommen werden. Darüber hinaus befinden sich in der Spalte Filmtitel (Arbeitstitel) mitunter mehrere Filmeinträge, womit es unumgänglich ist, dieses Attribut zu normalisieren. Die Tabelle sollte in tbl_dokfilm2007 umbenannt werden. Nach der Übernahme in die Datenbank können die Spalten Nr., Sig., Name, Schlagwort, Zeit, Klassifiz. Gäbler beibehalten werden. Sie sollten jedoch den Namenskonventionen von Access angepasst werden. Das Attribut Nr. kann als Primärschlüssel (Nr_ID) in der Relation tbl_dokfilm2007 genutzt werden, da es sich hierbei offenbar um Karteikartennummern handelt. Die Inhalte der Spalte PG/KAG (Produktionsgruppe, Künstlerische Arbeitsgruppe) weisen recht homogene Angaben auf. Hier erscheint eine Normalisierung in einer separaten Tabelle tbl_pg_kag sinnvoll zu sein. Dabei können in einer zusätzlichen Spalte Abkürzungserläuterungen der verwendeten Begriffe eingefügt werden. Eine Übernahme der Produktionsgruppen bzw. Künstlerischen Arbeitsgruppen in die Relation tbl_institution ist nicht zu 60 empfehlen, da diese teilweise mit sehr reduzierten Abkürzungen wie beispielsweise „VII“ bezeichnet werden. Die Spalte Name enthält Personen, die auf den Karteikarten der einzelnen Filme erwähnt sind. Diese Namen sollten allerdings nicht in die Tabelle tbl_institution übernommen werden. Vielmehr kann dieses Attribut in der Relation tbl_dokfilm2007 erhalten bleiben. Durch die Vergabe eines logischen Wertes in einer Wahr/Falsch-Spalte Wahr_Falsch_Dokfilm würde die Kriterienwahl bei der Erstellung von Suchanfragen erleichtert werden. Auf die Wahl des Datentyps des Attributs Jahr muss geachtet werden, da hier mitunter mehrere Jahreszahlen in einer Domäne aufgeführt sind. Deutscher_Verleihtitel Originaltitel_Archivtitel Titel_Englisch ... Film_ID tbl_filme 0, n ist 1, 1 dokfilm_Film_ID PG_KAG_ID PG_KAG dokfilm_Signatur PG_KAG_ID Nr_ID tbl_dokfilm2007 0, 1 tbl_pg_kag hat 1, n Klassifikation_Gaebler dokfilm_Institution_ID 1, n dokfilm_Schlagwort genannte_Person Zeit dreht 0, n tbl_institution Institution_ID ... Wahr_Falsch_Dokfilm Institution_Name Abb. 4.6: Dokumentarfilm Findmittel (ERM-Ausschnitt) 4.1.5 Komponisten-Verträge Die Excel-Tabelle komponisten-verträge.xls beinhaltet vollständig die Musikschaffenden der DEFA-Filmproduktionen. 61 Die Komponisten können in die Relation tbl_institution übernommen werden, um sie anschließend in der in tbl_komponist umbenannten Entität durch ihre IDs zu repräsentieren. Ebenfalls normalisiert werden sollten die Filmtitel mit Hilfe der Tabelle tbl_filme. Die hier erwähnten Vertragsarten müssen, wenn nicht bereits vorhanden, in der Tabelle tbl_vertragsart ergänzt werden. Dann kann die Relation tbl_komponist mit der Tabelle tbl_vertragsart verknüpft werden. Die Attribute Signatur, Jahr und Bemerkungen können beibehalten werden. Die Komponistenverträge liegen gescannt vor. Folglich ist eine Verlinkung zu den entsprechenden Dateien für einen direkten Aufruf sinnvoll. Für eine einfache Selektion der Komponisten in der Relation tbl_institution sollte auch hier ein zusätzliches Attribut Wahr_Falsch_Komponist eingefügt werden. ... Institution_Name Institution_ID Vertragsart Vertragsart_ID tbl_institution ist 0, n 0, n 1, 1 tbl_vertragsart W ahr_Falsch_Komponist festgelegt in Deutscher_Verleihtitel Originaltitel_Archivtitel Komponist_Institution_ID Komponist_Signatur ... 1, 1 tbl_komponist Komponist_ID Komponist_Jahr Titel_Englisch Film_ID 1, 1 bezieht sich auf 0, n tbl_filme Komponist_Vertragsart_ID Komponist_Film_ID Abb. 4.7: Komponist-Film (ERM-Ausschnitt) 4.1.6 Hauptbuchhaltung Die Excel-Tabelle hauptbuchhaltung 20060329.xls beinhaltet Unterlagen aus dem Produktionsbereich der DEFA-Studios. Hierzu zählen Filmlieferverträge, Vor- und Nachkalkulationen, Arbeitspläne, Arbeitsplanerfüllungsberichte, Schlussberichte, Begründungen für Über- bzw. Unterschreitungen, Protokolle von Produktionsversammlungen sowie Besucher- und Einspielergebnisse. In der Tabelle müsste eine Normalisierung der Filmtitel und Produzenten unter Zuhilfenahme der Tabellen tbl_filme und tbl_institution erfolgen. Allerdings dürfte sich dies bei den Produzenten als recht schwieriges Unterfangen erweisen, da diese nur mit ihrem Nachnamen und teilweise den Produktionsfirmen bzw. Orten erfasst sind. So müsste beispielsweise geklärt werden, wie der Produzenteneintrag „Roter Kreis / Sonnabend“ aufzu62 lösen ist. Dies wird sich bei einer Kardinalität von über 1.100 als sehr aufwendig darstellen. Deshalb sollte hier auf eine Normalisierung der Personen bzw. Institution Produzent verzichtet werden. Die Spalten BArch-SIGN. DR 117, Signatur, Zeitraum, Prod.nr., Farbe, Auftrag und Bemerkungen können übernommen werden, wobei einmal mehr anzumerken bleibt, dass auch diese den Access-Namenskonventionen angepasst werden sollten. Film_ID BArch-Signatur Produzent Signatur_Hauptbuchhaltung Farbe Hauptbuchhaltung_ID tbl_hauptbuchhaltung Bemerkungen Zeitraum 1, 1 Auftrag Produktionsnr bezieht sich auf 0, n tbl_filme Film_ID ... Originaltitel_Archivtitel Titel_Englisch Deutscher_Verleihtitel Abb. 4.8: Hauptbuchhaltung-Film (ERM-Ausschnitt) 4.2 Abschließende Bemerkung Wie in Kapitel 2 „Ausgangslage“ unter Punkt 2 „Recherche in der Access-Datenbank Schriftgut Rechte“ beschrieben, waren die eingetragenen Signaturen nicht mit ihren ursprünglichen Dokumenten verlinkt, sodass jedes einzelne Dokument im Windows Explorer gesucht und geöffnet werden musste. Dieser Zustand wurde wie in Kapitel 3.3.3 „Ausgabe Schriftgut Rechte“ beschrieben, geändert, sodass nun die gescannt vorliegenden Dokumente direkt aus der Datenbank rechtsunterlagen.mdb geöffnet werden können. Allerdings enthält noch immer jede Dokument-Datei nur eine gescannte Seite im TIFF-Format. Somit ist es noch immer notwendig, mehrseitige Dokumente seitenweise zu öffnen. Dieser Zustand kann durch eine Zusammenführung der einzelnen Bilder zu einer TIFF-Datei geändert werden. Um Multipagebilder u.a. im TIFF-Format zu erzeugen, stän- 63 de beispielsweise das Freeware-Tool IrfanView zur Verfügung. Die Software kann von der IrfanView-Website 46 kostenfrei herunter geladen werden. Es ist auch möglich, die TIFF-Dateien bzw. TIFF-Multipagebilder in PDF-Dateien zu konvertieren. Dies können einige kostenpflichtige, aber auch kostenfreie Tools leisten. Hierbei wäre zu beachten, dass die verwendete Software über eine OCR-Texterkennung verfügt. So würde die Möglichkeit entstehen, dass in den PDF-Dateien nach einzelnen Suchtermen recherchiert werden kann. 46 http://www.irfanview.de/ 64 5 Fazit Leider konnten aufgrund des Zeitdrucks nur zwei Teile der Datenbank der rechtsrelevanten Unterlagen der DEFA-Stiftung umgesetzt werden. Mit dem Abschluss dieser Arbeit beinhaltet die Datenbank rechtsunterlagen.mdb die zwei Kategorien Korrespondenz Rechte und Schriftgut Rechte. Dies liegt in der hohen Anzahl datenbankuntauglicher Relationen der erschlossenen Rechtsunterlagen der DEFA-Stiftung begründet. Diese mussten vor der Integration in die Datenbank rechtsunterlagen.mdb mit zum Teil enormen manuellen Aufwand normalisiert werden. Das Kapitel 4 „Ausblick“ soll aus diesem Grund als Anregung für eine allumfassende Rechtsunterlagen-Datenbank verstanden werden. War anfänglich die Tabelle tbl_filme als zentrale und alles verbindende Tabelle innerhalb der Datenbank rechtsunterlagen.mdb ausreichend, zeigte sich in diesem Kapitel eine weitere Instanz für die Gesamtlösung als unentbehrlich: die Relation tbl_institution. Da eine Vielzahl der rechtsrelevanten Unterlagen der DEFA-Stiftung allgemeine Verträge zwischen zumeist juristischen Personen sind und damit keinen direkten Bezug zu einzelnen Filmen des DEFA-Filmstocks aufweisen, kann deren Einbindung in die Datenbank nur über die beteiligten Institutionen erfolgen. Damit wird die Relation tbl_institution eine erhebliche Datensatzzunahme erfahren. Dieser Umstand sollte auch Beachtung im Suchformular finden. So wäre es sinnvoll, sich von dem Kombinationsfeld für die Suche nach Institutionen zu lösen und zu einem Volltextsuchfeld zu wechseln. Es sollte in naher Zukunft auch überdacht werden, ein automatisches Indexierungstool zwischen den Scannvorgang von rechtsrelevanten Unterlagen und der Datenbank zu stellen. Eine automatische Inhaltserschließung kann bei der Schlagwortvergabe und dem späteren Retrieval äußerst hilfreich sein. Das Indexierungssystem sollte über wesentliche Funktionen wie Grundformidentifizierung bzw. –reduzierung, algorythmische Kompositumszerlegung, lexikalische wörterbuchbasierte Relationierung und Mehrworterkennung sowie eine generische Mehrwort- bzw. Sequenzerkennung verfügen. 65 6 Anhang 6.1 VBA-Code: frm_index Option Compare Database 'Aufruf frm_kannapien_filmstock Private Sub Filmstock_Click() DoCmd.OpenForm "frm_kannapien_filmstock" DoCmd.Close acForm, Me.Name End Sub 'Aufruf frm_kannapien_filmstock_eingabe Private Sub Kannapien_Filmstock_Click() DoCmd.OpenForm "frm_kannapien_filmstock_eingabe" DoCmd.Close acForm, Me.Name End Sub 'Aufruf frm_rechtsunterlagen zur Einsicht (schreibgeschützt)und Schließen Private Sub Korrespondenz_Rechtsanwalt_Click() DoCmd.OpenForm "frm_rechtsunterlagen" DoCmd.Close acForm, Me.Name End Sub 'Aufruf frm_rechtsunterlagen_eingabe zur Eingabe neuer DS und Schließen Private Sub Korrespondenz_Rechtsanwalt_Eingabe_Click() DoCmd.OpenForm "frm_rechtsunterlagen_eingabe" DoCmd.Close acForm, Me.Name End Sub 'wenn Suche geöffnet wird Private Sub Suche_Click() DoCmd.OpenForm "frm_suche" DoCmd.Close acForm, Me.Name End Sub 'beim Schließen Private Sub Schliessen_Click() DoCmd.Close acForm, Me.Name End Sub 66 6.2 VBA-Code : frm_iststitution_neu Option Compare Database 'neuer Datensatz Private Sub Form_Load() DoCmd.GoToRecord , , acNewRec End Sub 'Schließen des Eingabeformulars Private Sub Schließen_Click() DoCmd.OpenForm "frm_rechtsunterlagen_eingabe" DoCmd.Close acForm, Me.Name End Sub 'Speichern eines neuen Datensatzes Private Sub Form_BeforeUpdate(Cancel As Integer) If MsgBox("Soll die neue Institution gespeichert werden?", vbYesNo) = vbNo Then Me.Undo Cancel = True End If End Sub 'Fehlermeldung 'RunCommand abgebrochen' unterdrücken Private Sub Form_Error(DataErr As Integer, Response As Integer) If DataErr = 3201 Then Response = acDataErrContinue End Sub 'Speicher-Button eingefügt wegen Nutzerfreundlichkeit Private Sub Speichern_Click() On Error Resume Next DoCmd.RunCommand acCmdSaveRecord End Sub 6.3 VBA-Code: frm_kannapien_filmstock Option Compare Database 'Öffnet Formular im Vollbild, setzt Fokus auf Suche-Button Private Sub Form_Open(Cancel As Integer) DoCmd.RunCommand acCmdAppMaximize DoCmd.Maximize 'AC-Fenster maximieren 'Formular maximieren Me!Schliessen.SetFocus End Sub 67 'Schließen-Button Private Sub Schliessen_Click() DoCmd.OpenForm "frm_index" DoCmd.Close acForm, Me.Name End Sub 6.4 SQL-Code: frm_kannapien_filmstock SELECT tbl_kannapien_filmstock.Kanapien_ID, tbl_kannapien_filmstock.Film_ID AS tbl_kannapien_filmstock_Film_ID, tbl_kannapien_filmstock.Signatur, tbl_kannapien_filmstock.Filmdaten_ID, tbl_kannapien_filmstock.[Annotation/Karte], tbl_kannapien_filmstock.[Bearbeitungskarte Progress], tbl_kannapien_filmstock.[Bearbeitungskarte DEFA Aussenhandel], tbl_kannapien_filmstock.[Zulassungsunterlagen-Fiche], tbl_kannapien_filmstock.[Lizenzvertrag Studio-Progress], tbl_kannapien_filmstock.[Lizenzvertrag Studio-Aussenhandel], tbl_kannapien_filmstock.[Literarische Vorlage], tbl_kannapien_filmstock.Musik, tbl_kannapien_filmstock.[Koproduktion/Dienstleistungen], tbl_kannapien_filmstock.[Vertrag DEFA Aussenhandel], tbl_kannapien_filmstock.Drittbeteiligung, tbl_kannapien_filmstock.Remakerechte, tbl_kannapien_filmstock.Ankaufsprotokoll, tbl_kannapien_filmstock.[Vertrag Aussenhandel-Progress], tbl_kannapien_filmstock.Synchronprotokoll, tbl_kannapien_filmstock.Freigabe, tbl_kannapien_filmstock.[Aktueller Stand], tbl_kannapien_filmstock.ProdNr, tbl_kannapien_filmstock.Bemerkung, tbl_filmart.Filmart, tbl_filmart.Filmart_ID AS tbl_filmart_Filmart_ID, tbl_filme.Film_ID AS tbl_filme_Film_ID, tbl_filme.Originaltitel_Archivtitel AS tbl_filme_Originaltitel_Archivtitel, tbl_filme.Deutscher_Verleihtitel, tbl_filme.Herstellungsjahr_Freigabe, tbl_filme.Titel_Englisch, tbl_filme.Titel_Sortierung, tbl_filme.Sonstiger_Titel, tbl_filme.Produktion_ID AS tbl_filme_Produktion_ID, tbl_filme.Produktionsland_ID AS tbl_filme_Produktionsland_ID, tbl_filme.Filmart_ID AS tbl_filme_Filmart_ID, tbl_filme.Bemerkungen, tbl_medium.Medium_ID, tbl_medium.Medium, tbl_produktion.Produktion, tbl_produktion.Produktion_ID AS tbl_produktion_Produktion_ID, tbl_produktionsland.Produktionsland, tbl_produktionsland.Produktionsland_ID AS tbl_produktionsland_Produktionsland_ID FROM (tbl_produktionsland RIGHT JOIN (tbl_produktion RIGHT JOIN (tbl_filmart RIGHT JOIN tbl_filme ON tbl_filmart.Filmart_ID = tbl_filme.Filmart_ID) ON tbl_produktion.Produktion_ID = 68 tbl_filme.Produktion_ID) ON tbl_produktionsland.Produktionsland_ID = tbl_filme.Produktionsland_ID) RIGHT JOIN (tbl_medium RIGHT JOIN tbl_kannapien_filmstock ON tbl_medium.Medium_ID = tbl_kannapien_filmstock.Filmdaten_ID) ON tbl_filme.Film_ID = tbl_kannapien_filmstock.Film_ID ORDER BY tbl_kannapien_filmstock.Kanapien_ID; 6.5 VBA-Code: frm_kannapien_filmstock_editieren Option Compare Database 'Öffnet Formular im Vollbild, setzt Fokus auf Suche-Button Private Sub Form_Open(Cancel As Integer) DoCmd.RunCommand acCmdAppMaximize DoCmd.Maximize 'AC-Fenster maximieren 'Formular maximieren Me!Film_Kannapien.SetFocus End Sub 'Datensatz löschen Private Sub Loeschen_Click() Dim sql As String Dim result As Integer result = MsgBox("Möchten Sie wirklich diesen Datensatz löschen?", vbYesNo + vbQuestion, _ "Sicherheitsabfrage") If result = vbYes Then DoCmd.RunCommand acCmdDeleteRecord End If End Sub 'neues Medium erfassen Private Sub MediumNeu_Click() DoCmd.OpenForm "frm_medium_eingabe" End Sub 'Schließen-Button Private Sub Schliessen_Click() DoCmd.OpenForm "frm_index" DoCmd.Close acForm, Me.Name End Sub 'Speicher-Button eingefügt wegen Nutzerfreundlichkeit Private Sub Speichern_Click() 69 If MsgBox("Soll der geänderte Datensatz gespeichert werden?", vbYesNo) = vbNo Then DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70 Else Me.Refresh End If End Sub 6.6 SQL-Code: frm_kannapien_filmstock_editieren SELECT tbl_kannapien_filmstock.Kanapien_ID, tbl_kannapien_filmstock.Film_ID AS tbl_kannapien_filmstock_Film_ID, tbl_kannapien_filmstock.Signatur, tbl_kannapien_filmstock.Filmdaten_ID, tbl_kannapien_filmstock.[Annotation/Karte], tbl_kannapien_filmstock.[Bearbeitungskarte Progress], tbl_kannapien_filmstock.[Bearbeitungskarte DEFA Aussenhandel], tbl_kannapien_filmstock.[Zulassungsunterlagen-Fiche], tbl_kannapien_filmstock.[Lizenzvertrag Studio-Progress], tbl_kannapien_filmstock.[Lizenzvertrag Studio-Aussenhandel], tbl_kannapien_filmstock.[Literarische Vorlage], tbl_kannapien_filmstock.Musik, tbl_kannapien_filmstock.[Koproduktion/Dienstleistungen], tbl_kannapien_filmstock.[Vertrag DEFA Aussenhandel], tbl_kannapien_filmstock.Drittbeteiligung, tbl_kannapien_filmstock.Remakerechte, tbl_kannapien_filmstock.Ankaufsprotokoll, tbl_kannapien_filmstock.[Vertrag Aussenhandel-Progress], tbl_kannapien_filmstock.Synchronprotokoll, tbl_kannapien_filmstock.Freigabe, tbl_kannapien_filmstock.[Aktueller Stand], tbl_kannapien_filmstock.ProdNr, tbl_kannapien_filmstock.Bemerkung, tbl_filmart.Filmart, tbl_filmart.Filmart_ID AS tbl_filmart_Filmart_ID, tbl_filme.Film_ID AS tbl_filme_Film_ID, tbl_filme.Originaltitel_Archivtitel AS tbl_filme_Originaltitel_Archivtitel, tbl_filme.Deutscher_Verleihtitel, tbl_filme.Herstellungsjahr_Freigabe, tbl_filme.Titel_Englisch, tbl_filme.Titel_Sortierung, tbl_filme.Sonstiger_Titel, tbl_filme.Produktion_ID AS tbl_filme_Produktion_ID, tbl_filme.Produktionsland_ID AS tbl_filme_Produktionsland_ID, tbl_filme.Filmart_ID AS tbl_filme_Filmart_ID, tbl_filme.Bemerkungen, tbl_medium.Medium_ID, tbl_medium.Medium, tbl_produktion.Produktion, tbl_produktion.Produktion_ID AS tbl_produktion_Produktion_ID, tbl_produktionsland.Produktionsland, tbl_produktionsland.Produktionsland_ID AS tbl_produktionsland_Produktionsland_ID FROM (tbl_produktionsland RIGHT JOIN (tbl_produktion RIGHT JOIN 70 (tbl_filmart RIGHT JOIN tbl_filme ON tbl_filmart.Filmart_ID = tbl_filme.Filmart_ID) ON tbl_produktion.Produktion_ID = tbl_filme.Produktion_ID) ON tbl_produktionsland.Produktionsland_ID = tbl_filme.Produktionsland_ID) RIGHT JOIN (tbl_medium RIGHT JOIN tbl_kannapien_filmstock ON tbl_medium.Medium_ID = tbl_kannapien_filmstock.Filmdaten_ID) ON tbl_filme.Film_ID = tbl_kannapien_filmstock.Film_ID ORDER BY tbl_kannapien_filmstock.Kanapien_ID; 6.7 VBA-Code: frm_kannapien_filmstock_eingabe Option Compare Database 'alle Eingaben zurücksetzen Private Sub Abbrechen_Click() Me!Kanapien_ID = Null Me!Filmdaten_ID = Null Me!Filmtitel = Null Me!Signatur = Null Me!Annotation_Karte = Null Me!Bearbeitungskarte_Progress = Null Me!ProdNr = Null Me!Bearbeitungskarte_DEFA_Aussenhandel = Null Me!AktuellerStand = Null Me!Zulassungsunterlagen_Fiche = Null Me!Bemerkung = Null Me!LizenzvertragStudioProgress = Null Me!LizenzvertragStudioAussenhandel = Null Me!Musik = Null Me!LiterarischeVorlage = Null Me!Koproduktion_Dienstleistungen = Null Me!Drittbeteiligung = Null Me!Vertrag_DEFA_Aussenhandel = Null Me!Remakerechte = Null Me!Freigabe = Null Me!Ankaufsprotokoll = Null Me!VertragAussenhandelProgress = Null Me!Synchronprotokoll = Null End Sub Private Sub Film_Kannapien_AfterUpdate() Me!subfrm_filmdaten_kontrolldaten.Form.Filter = "Film_ID = " & Me!Film_ID Me!subfrm_filmdaten_kontrolldaten.Form.FilterOn = True End Sub 71 'Öffnet Formular im Vollbild Private Sub Form_Open(Cancel As Integer) DoCmd.RunCommand acCmdAppMaximize DoCmd.Maximize 'AC-Fenster maximieren 'Formular maximieren DoCmd.GoToRecord , , acNewRec Me!Film_ID.SetFocus End Sub 'Schließen-Button Private Sub Schliessen_Click() DoCmd.OpenForm "frm_index" DoCmd.Close acForm, Me.Name End Sub 'Speichern eines neuen Datensatzes Private Sub Form_BeforeUpdate(Cancel As Integer) If MsgBox("Soll der neue Filmstockeintrag gespeichert werden?", vbYesNo) = vbNo Then Me.Undo Cancel = True End If End Sub 'Fehlermeldung 'RunCommand abgebrochen' unterdrücken Private Sub Form_Error(DataErr As Integer, Response As Integer) If DataErr = 3201 Then Response = acDataErrContinue End Sub 'Speicher-Button eingefügt wegen Nutzerfreundlichkeit Private Sub Speichern_Click() On Error Resume Next DoCmd.RunCommand acCmdSaveRecord DoCmd.GoToRecord , , acNewRec End Sub 6.8 VBA-Code: frm_medium_eingabe Option Compare Database 'Speichern eines neuen Datensatzes Private Sub Form_BeforeUpdate(Cancel As Integer) If MsgBox("Soll das neue Medium gespeichert werden?", vbYesNo) = vbNo Then Me.Undo Cancel = True 72 End If End Sub 'Fehlermeldung 'RunCommand abgebrochen' unterdrücken Private Sub Form_Error(DataErr As Integer, Response As Integer) If DataErr = 3201 Then Response = acDataErrContinue End Sub 'Index-Formular aufrufen und Schließen Private Sub Index_Click() DoCmd.OpenForm "frm_index" DoCmd.Close acForm, Me.Name End Sub 'Schließen des Eingabeformulars Private Sub Schliessen_Click() DoCmd.OpenForm "frm_rechtsunterlagen_eingabe" DoCmd.Close acForm, Me.Name End Sub 'Speicher-Button eingefügt wegen Nutzerfreundlichkeit Private Sub Speichern_Click() On Error Resume Next DoCmd.RunCommand acCmdSaveRecord End Sub 'neuer Datensatz Private Sub Form_Load() DoCmd.GoToRecord , , acNewRec End Sub 6.9 SQL-Code: frm_medium_eingabe SELECT tbl_medium.Medium_ID, tbl_medium.Medium FROM tbl_medium ORDER BY tbl_medium.Medium; 73 6.10 VBA-Code: frm_rechtsunterlagen Option Compare Database 'Öffnet Formular im Vollbild, setzt Fokus auf Suche-Button Private Sub Form_Open(Cancel As Integer) DoCmd.RunCommand acCmdAppMaximize 'AC-Fenster maximieren DoCmd.Maximize 'Formular maximieren Me!Suche_Rechteunterlagen.SetFocus End Sub 'Index-Formular aufrufen und Schließen Private Sub Index_Click() DoCmd.OpenForm "frm_index" DoCmd.Close acForm, Me.Name End Sub 'Suche aufrufen Private Sub Suche_Rechteunterlagen_Click() DoCmd.OpenForm "frm_suche_rechtsunterlagen" End Sub 6.11 VBA-Code: frm_rechtsunterlagen_ausgabe Option Compare Database 'aktuellen Datensatz drucken Private Sub aktuellDrucken_Click() On Error GoTo Err_aktuellDrucken_Click DoCmd.OpenReport "rpt_rechtskorrespondenz", , , "tbl_filme.Film_ID =" & Me!Film_ID Exit_aktuellDrucken_Click: Exit Sub Err_aktuellDrucken_Click: MsgBox Err.Description Resume Exit_aktuellDrucken_Click End Sub 'alle aufgerufenen Datensätze drucken Private Sub aufgerufeneDrucken_Click() On Error GoTo Err_aufgerufeneDrucken_Click 74 DoCmd.OpenReport "rpt_rechtskorrespondenz", , , Me.Filter Exit_aufgerufeneDrucken_Click: Exit Sub Err_aufgerufeneDrucken_Click: MsgBox Err.Description Resume Exit_aufgerufeneDrucken_Click End Sub 'Vollbild beim Öffnen Private Sub Form_Open(Cancel As Integer) DoCmd.RunCommand acCmdAppMaximize DoCmd.Maximize 'AC-Fenster maximieren 'Formular maximieren Me!Suche.SetFocus End Sub 'Button Rechtskorrespondenz editieren Private Sub Rechtskorrespondenz_editieren_Click() On Error GoTo Err_Rechtskorrespondenz_editieren_Click DoCmd.OpenForm "frm_rechtsunterlagen_editieren", , , "Haupt_ID=" & Me!Haupt_ID Exit_Rechtskorrespondenz_editieren_Click: Exit Sub Err_Rechtskorrespondenz_editieren_Click: MsgBox Err.Description Resume Exit_Rechtskorrespondenz_editieren_Click End Sub 'Schließen des Ausgabeformulars Private Sub Schliessen_Click() DoCmd.OpenForm "frm_index" DoCmd.Close acForm, Me.Name End Sub 'Suche starten Private Sub Suche_Click() DoCmd.OpenForm "frm_suche" End Sub 'Button Filmstock editieren Private Sub Filmstock_editieren_Click() On Error GoTo Err_Filmstock_editieren_Click 75 DoCmd.OpenForm "frm_kannapien_filmstock_editieren", , , "Kanapien_ID=" & Me!Kanapien_ID Exit_Filmstock_editieren_Click: Exit Sub Err_Filmstock_editieren_Click: MsgBox Err.Description Resume Exit_Filmstock_editieren_Click End Sub 6.12 VBA-Code: frm_rechtsunterlagen_editieren Option Compare Database 'alle Eingaben zurücksetzen Private Sub Abbrechen_Click() Me!Signatur = Null Me!Datum = Null Me!OrdnerNr = Null Me!Haupt_ID = Null Me!Medium = Null Me!Zeichen = Null Me!Betreff = Null Me!Schlagworte = Null Me!UrhG = Null Me!Vertraege = Null Me!Bemerkungen = Null Me!Scan = Null End Sub ' Formular um neuen Absender (Institution) anzulegen Private Sub AbsenderNeu_Click() DoCmd.OpenForm "frm_institution_neu" End Sub ' Formular um neuen Empfänger (Institution) anzulegen Private Sub EmpfaengerNeu_Click() DoCmd.OpenForm "frm_institution_neu" End Sub 'Öffnet Formular im Vollbild Private Sub Form_Open(Cancel As Integer) DoCmd.RunCommand acCmdAppMaximize 'AC-Fenster maximieren 76 DoCmd.Maximize 'Formular maximieren Me!Index.SetFocus End Sub 'Index-Formular aufrufen und Schließen Private Sub Index_Click() DoCmd.OpenForm "frm_index" DoCmd.Close acForm, Me.Name End Sub 'neues Medium erfassen Private Sub MediumNeu_Click() DoCmd.OpenForm "frm_medium_eingabe" End Sub 'Schließen des Eingabeformulars Private Sub Schließen_Click() DoCmd.OpenForm "frm_index" DoCmd.Close acForm, Me.Name End Sub 'Speicher-Button eingefügt wegen Nutzerfreundlichkeit Private Sub Speichern_Click() If MsgBox("Soll der geänderte Datensatz gespeichert werden?", vbYesNo) = vbNo Then DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70 Else Me.Refresh End If End Sub 6.13 VBA-Code: frm_rechtsunterlagen_eingabe Option Compare Database 'alle Eingaben zurücksetzen Private Sub Abbrechen_Click() Me!Signatur = Null Me!Datum = Null Me!OrdnerNr = Null Me!Haupt_ID = Null Me!Medium = Null Me!Zeichen = Null Me!Betreff = Null Me!Schlagworte = Null 77 Me!UrhG = Null Me!Vertraege = Null Me!Bemerkungen = Null Me!Scan = Null End Sub ' Formular um neuen Absender (Institution) anzulegen Private Sub AbsenderNeu_Click() DoCmd.OpenForm "frm_institution_neu" End Sub ' Formular um neuen Empfänger (Institution) anzulegen Private Sub EmpfaengerNeu_Click() DoCmd.OpenForm "frm_institution_neu" End Sub 'Öffnet Formular im Vollbild, setzt Fokus auf Suche-Button Private Sub Form_Open(Cancel As Integer) DoCmd.RunCommand acCmdAppMaximize DoCmd.Maximize 'AC-Fenster maximieren 'Formular maximieren DoCmd.GoToRecord , , acNewRec Me!Index.SetFocus End Sub 'Index-Formular aufrufen und Schließen Private Sub Index_Click() DoCmd.OpenForm "frm_index" DoCmd.Close acForm, Me.Name End Sub 'neues Medium erfassen Private Sub MediumNeu_Click() DoCmd.OpenForm "frm_medium_eingabe" End Sub 'Schließen des Eingabeformulars Private Sub Schließen_Click() DoCmd.OpenForm "frm_index" DoCmd.Close acForm, Me.Name End Sub 'Speicher-Button eingefügt wegen Nutzerfreundlichkeit Private Sub Speichern_Click() On Error Resume Next DoCmd.RunCommand acCmdSaveRecord End Sub 78 'Speichern eines neuen Datensatzes Private Sub Form_BeforeUpdate(Cancel As Integer) If MsgBox("Soll der neue Datensatz gespeichert werden?", vbYesNo) = vbNo Then Me.Undo Cancel = True End If End Sub 'Fehlermeldung 'RunCommand abgebrochen' unterdrücken Private Sub Form_Error(DataErr As Integer, Response As Integer) If DataErr = 3201 Then Response = acDataErrContinue End Sub 6.14 VBA-Code: frm_suche Option Compare Database Option Explicit Private myCriteria As String Public Sub SQLString(FieldValue As Variant, FieldName As String, _ Criteria As String, ArgCount As Integer, _ Typ As Integer, Optional Operator As String = "=", _ Optional bAnd As Boolean = True) ' Erstelle Kriterien für die WHERE-Klausel. If Nz(FieldValue, "") <> "" Then If bAnd Then ' Füge "Und" hinzu, falls andere Kriterien vorhanden sind. If ArgCount > 0 Then Criteria = Criteria & " AND " Else ' Füge "Oder" hinzu, falls andere Kriterien vorhanden sind. If ArgCount > 0 Then Criteria = Criteria & " OR " End If Select Case Typ Case 1 'Datum Criteria = Criteria & FieldName & " " & Operator & " #" & _ Format(CDate(FieldValue), "mm-dd-yyyy") & "#" Case 2 'String Like 79 Criteria = Criteria & FieldName & " Like '*" & FieldValue & "*'" Case 3 ' Zahl Criteria = Criteria & FieldName & " " & Operator & Str(FieldValue) Case 4 'String = Criteria = Criteria & FieldName & " = '" & FieldValue & "'" Case 5 'Ja/nein If FieldValue = "Ja" Or FieldValue = "True" Or _ FieldValue = True Then Criteria = Criteria & FieldName & " = -1" Else Criteria = Criteria & FieldName & " = 0" End If Case 6 'leere Felder Criteria = Criteria & "(" & FieldName & ") Is Null" Case 7 'Wahr/Falsch If FieldValue = "Wahr" Or FieldValue = "True" Or _ FieldValue = True Then Criteria = Criteria & FieldName & " = -1" Else Criteria = Criteria & FieldName & " = 0" End If End Select ' Inkrementiere die Zahl der Argumente. ArgCount = ArgCount + 1 End If End Sub Private Function Filterbedingung() As String Dim ArgCount As Integer ' ############ Ergaenzung fuer Bereichseingrenzungen! (Anfang) ############### Dim tmpCount As Integer Dim tmpCriteria As String ' ############ Ergaenzung fuer Bereichseingrenzungen! (Ende) ################# ' Initialisiere die Argumentenzahl. ArgCount = 0 myCriteria = "" 80 ' ############ Ergaenzung fuer Bereichseingrenzungen! (Anfang) ############### tmpCriteria = "" tmpCount = 0 If tmpCriteria <> "" Then myCriteria = myCriteria & IIf(myCriteria <> "", " AND (", "(") & _ tmpCriteria & ")" tmpCriteria = "" ArgCount = tmpCount tmpCount = 0 End If ' ############ Ergaenzung fuer Bereichseingrenzungen! (Ende) ################# '**************************************************************************** ' SQLString Variable1, Variable2, mycriteria, ArgCount, Variable3, Me!Boolean '**************************************************************************** SQLString Me!OrdnerNr, "OrdnerNr", myCriteria, ArgCount, 3, , CBool(Me!Rahmen32 = 2) 'Haupt SQLString Me!Signatur, "tbl_haupt.Signatur", myCriteria, ArgCount, 2, , CBool(Me!Rahmen32 = 2) 'Haupt SQLString Me!Schlagwort, "Schlagworte", myCriteria, ArgCount, 2, , CBool(Me!Rahmen32 = 2) 'Haupt SQLString Me!Betreff, "Betreff", myCriteria, ArgCount, 2, , CBool(Me!Rahmen32 = 2) 'Haupt SQLString Me!Datum, "tbl_haupt.Datum", myCriteria, ArgCount, 2, , CBool(Me!Rahmen32 = 2) 'Haupt SQLString Me!Aktenzeichen, "Zeichen_Aktenzeichen", myCriteria, ArgCount, 2, , CBool(Me!Rahmen32 = 2) 'Haupt SQLString Me!UrhG, "Paragraphen_UrhG", myCriteria, ArgCount, 2, , CBool(Me!Rahmen32 = 2) 'Haupt SQLString Me!Vertraege, "Paragraphen_Vertraege", myCriteria, ArgCount, 2, , CBool(Me!Rahmen32 = 2) 'Haupt SQLString Me!Film, "Filmtitel_gesamt", myCriteria, ArgCount, 2, , CBool(Me!Rahmen32 = 2) 'Haupt SQLString Me!Bemerkungen, "tbl_Haupt.Bemerkungen", myCriteria, ArgCount, 2, , CBool(Me!Rahmen32 = 2) 'Kannapien SQLString Me!Institution_Empfaenger, "InstitutionE_ID", myCriteria, ArgCount, 3, , CBool(Me!Rahmen32 = 2) SQLString Me!Institution_Absender, "InstitutionA_ID", myCriteria, ArgCount, 3, , CBool(Me!Rahmen32 = 2) SQLString Me!Produktion, "tbl_filme.Produktion_ID", myCriteria, ArgCount, 3, , CBool(Me!Rahmen32 = 2) SQLString Me!Produktionsland, "tbl_filme.Produktionsland_ID", myCriteria, 81 ArgCount, 3, , CBool(Me!Rahmen32 = 2) SQLString Me!Filmart, "tbl_filme.Filmart_ID", myCriteria, ArgCount, 3, , CBool(Me!Rahmen32 = 2) SQLString Me!Medium, "tbl_haupt.Medium_ID", myCriteria, ArgCount, 3, , CBool(Me!Rahmen32 = 2) 'falls kein Kriterium spezifiziert wurde, gebe alle Datensätze zurück If myCriteria = "" Then myCriteria = "True" End If Filterbedingung = myCriteria End Function 'Zeichen/Aktenzeichen (Haupt) Private Sub Aktenzeichen_AfterUpdate() End Sub 'Bemerkungen (Haupt) Private Sub Bemerkungen_AfterUpdate() End Sub 'Betreff (Haupt) Private Sub Betreff_AfterUpdate() End Sub 'Datum (Haupt) Private Sub Datum_AfterUpdate() End Sub 'Filmsuche über alle Filmtitelfelder (Filmtitel_gesamt) Private Sub Film_AfterUpdate() End Sub 'Institution Absender (Haupt) Private Sub Institution_Absender_AfterUpdate() End Sub 'Institution Empfänger (Haupt) Private Sub Institution_Empfaenger_AfterUpdate() End Sub 'Medium (Haupt, Kannapien) Private Sub Medium_AfterUpdate() End Sub 'OrdnerNr (Haupt) 82 Private Sub OrdnerNr_AfterUpdate() End Sub 'Produktionsfirma (Film) Private Sub Produktion_AfterUpdate() End Sub 'Produktionsland (Film) Private Sub Produktionsland_AfterUpdate() End Sub 'Filmart (Film) Private Sub Filmart_AfterUpdate() End Sub 'UrhG (Haupt) Private Sub UrhG_AfterUpdate() End Sub 'Paragraphen anderer Verträge (Haupt) Private Sub Vertraege_AfterUpdate() End Sub 'Signatur (Haupt) Private Sub Signatur_AfterUpdate() End Sub 'Betreff (Haupt) Private Sub Betreff_Click() End Sub 'Schlagwort (Haupt) Private Sub Schlagwort_AfterUpdate() End Sub 'Suche Private Sub Suchen_Click() DoCmd.OpenForm "frm_rechtsunterlagen_ausgabe" SetFilter End Sub 'Suche schließen Private Sub Schließen_Click() DoCmd.Close acForm, Me.Name End Sub 'Suche abbrechen: alle Felder zurücksetzen 83 Private Sub Abbrechen_Click() Me!OrdnerNr = Null Me!Signatur = Null Me!Schlagwort = Null Me!Betreff = Null Me!Datum = Null Me!Aktenzeichen = Null Me!UrhG = Null Me!Vertraege = Null Me!Bemerkungen = Null Me!Institution_Empfaenger = Null Me!Institution_Absender = Null Me!Produktion = Null Me!Produktionsland = Null Me!Filmart = Null Me!Medium = Null Me!Film = Null End Sub 'gefundene DS zählen und ausgeben Function AnzahlDS() As Integer On Error GoTo Fehler Dim dsg As Recordset Set dsg = Me.RecordsetClone dsg.MoveLast AnzahlDS = dsg.RecordCount dsg.Close Exit Function Fehler: Select Case Err.Number Case 3021 AnzahlDS = 0 Case Else MsgBox Err.Number & ": " & Err.Description End Select End Function 'Filter setzen Private Sub SetFilter() Me.Filter = Filterbedingung() Me.FilterOn = True 84 On Error Resume Next 'Falls nicht geoeffnet With Forms("frm_rechtsunterlagen_ausgabe") .Filter = Me.Filter .FilterOn = True .OrderBy = "Originaltitel_Archivtitel" 'Tabellenfeld nicht Formularfeld, aufsteigend .OrderByOn = True End With On Error GoTo 0 '#### wenn kein DS entsprechend Filtervorgabe gefunden wurde (Anfang) #### If Me.RecordsetClone.RecordCount = 0 Then MsgBox "Ihre Suche ergab leider keinen Treffer." Me.FilterOn = False End If '#### wenn kein DS entsprechend Filtervorgabe gefunden wurde (Ende) #### End Sub 'Auswahl-Button Private Sub Index_Click() DoCmd.OpenForm "frm_index" DoCmd.Close acForm, Me.Name End Sub 6.15 VBA-Code: subfrm_absender_eingabe Option Compare Database 'Absender wird nach Verlassen des Feldes in tbl_haupt_absender übernommen Private Sub Absender_Eingabe_AfterUpdate() Me.Requery Dim Haupt_ID As Integer Dim Institution_ID As Integer If IsNull(Me!Absender_Eingabe) Then MsgBox "Bitte wählen Sie einen Absender aus.", vbInformation Else Dim strSQL As String strSQL = "INSERT INTO tbl_haupt_absender " & _ "( Haupt_ID, InstitutionA_ID) " & _ "VALUES (" & Me!Haupt_ID & "," & Me!Absender_Eingabe & ")" On Error Resume Next DoCmd.RunSQL strSQL On Error GoTo 0 85 End If End Sub 'weiteren Absender eingeben Private Sub weiterer_Absender_Click() Me!Absender_Eingabe = Null End Sub 6.16 VBA-Code: subfrm_absender_eingabe_editieren Option Compare Database 'Absender wird nach Verlassen des Feldes in tbl_haupt_absender übernommen Private Sub Absender_Eingabe_AfterUpdate() Me.Requery Dim Haupt_ID As Integer Dim Institution_ID As Integer If IsNull(Me!Absender_Eingabe) Then MsgBox "Bitte wählen Sie einen Absender aus.", vbInformation Else Dim strSQL As String strSQL = "INSERT INTO tbl_haupt_absender " & _ "( Haupt_ID, InstitutionA_ID) " & _ "VALUES (" & Me!Haupt_ID & "," & Me!Absender_Eingabe & ")" On Error Resume Next DoCmd.RunSQL strSQL On Error GoTo 0 End If End Sub 'weiteren Absender eingeben Private Sub weiterer_Absender_Click() Me!Absender_Eingabe = Null End Sub 6.17 VBA-Code: subfrm_empfaenger_eingabe Option Compare Database 'Empfänger wird nach Verlassen des Feldes in tbl_haupt_empfaenger übernommen 86 Private Sub Empfaenger_Eingabe_AfterUpdate() Me.Requery Dim Haupt_ID As Integer Dim Institution_ID As Integer If IsNull(Me!Empfaenger_Eingabe) Then MsgBox "Bitte wählen Sie einen Empfänger aus.", vbInformation Else Haupt_ID = Me!Haupt_ID Institution_ID = Me!Empfaenger_Eingabe DoCmd.RunSQL "INSERT INTO tbl_haupt_empfaenger " & _ "( Haupt_ID, InstitutionE_ID) " & _ "VALUES (" & Me!Haupt_ID & "," & Me!Empfaenger_Eingabe & ")" End If End Sub 'weiteren Absender eingeben Private Sub weiterer_Absender_Click() Me!Absender_Eingabe = Null End Sub 6.18 VBA-Code: subfrm_empfaenger_eingabe_editieren Option Compare Database 'Empfänger wird nach Verlassen des Feldes in tbl_haupt_empfaenger übernommen Private Sub Empfaenger_Eingabe_AfterUpdate() Me.Requery Dim Haupt_ID As Integer Dim Institution_ID As Integer If IsNull(Me!Empfaenger_Eingabe) Then MsgBox "Bitte wählen Sie einen Empfänger aus.", vbInformation Else Haupt_ID = Me!Haupt_ID Institution_ID = Me!Empfaenger_Eingabe DoCmd.RunSQL "INSERT INTO tbl_haupt_empfaenger " & _ "( Haupt_ID, InstitutionE_ID) " & _ "VALUES (" & Me!Haupt_ID & "," & Me!Empfaenger_Eingabe & ")" End If End Sub 'weiteren Absender eingeben Private Sub weiterer_Absender_Click() Me!Absender_Eingabe = Null End Sub 87 6.19 VBA-Code: subfrm_film_eingabe Option Compare Database 'neuen Absender in tbl_haupt_absender schreiben Private Sub Film_Eingabe_AfterUpdate() Dim Haupt_ID As Integer Dim Film_ID As Integer If IsNull(Me!Film_Eingabe) Then MsgBox "Bitte wählen Sie einen Film aus.", vbInformation Else Haupt_ID = Me!Haupt_ID Film_ID = Me!Film_Eingabe DoCmd.RunSQL "INSERT INTO tbl_haupt_film " & _ "( Haupt_ID, Film_ID) " & _ "VALUES (" & Me!Haupt_ID & "," & Me!Film_Eingabe & ")" End If End Sub 'weiteren Absender eingeben Private Sub weiterer_Film_Click() Me!Film_Eingabe = Null End Sub 6.20 VBA-Code: subfrm_film_eingabe_editieren Option Compare Database 'neuen Absender in tbl_haupt_absender schreiben Private Sub Film_Eingabe_AfterUpdate() Dim Haupt_ID As Integer Dim Film_ID As Integer If IsNull(Me!Film_Eingabe) Then MsgBox "Bitte wählen Sie einen Film aus.", vbInformation Else Haupt_ID = Me!Haupt_ID Film_ID = Me!Film_Eingabe DoCmd.RunSQL "INSERT INTO tbl_haupt_film " & _ "( Haupt_ID, Film_ID) " & _ "VALUES (" & Me!Haupt_ID & "," & Me!Film_Eingabe & ")" End If End Sub 88 'weiteren Absender eingeben Private Sub weiterer_Film_Click() Me!Film_Eingabe = Null End Sub 6.21 SQL-Code: view_filme_produktion_produktionsland_filmart SELECT tbl_filme.Film_ID, tbl_filme.Originaltitel_Archivtitel, tbl_filme.Deutscher_Verleihtitel, tbl_filme.Titel_Sortierung, tbl_filme.Titel_Englisch, tbl_filme.Sonstiger_Titel, tbl_filme.Herstellungsjahr_Freigabe, tbl_filme.Produktionsland_ID, tbl_filme.Produktion_ID, tbl_filme.Filmart_ID, tbl_filme.Filmtitel_gesamt, tbl_filme.Bemerkungen, tbl_produktion.Produktion, tbl_produktionsland.Produktionsland, tbl_filmart.Filmart FROM ( (tbl_filme LEFT JOIN tbl_produktionsland ON tbl_filme.Produktionsland_ID = tbl_produktionsland.Produktionsland_ID) LEFT JOIN tbl_produktion ON tbl_filme.Produktion_ID = tbl_produktion.Produktion_ID ) LEFT JOIN tbl_filmart ON tbl_filme.Filmart_ID = tbl_filmart.Filmart_ID; 6.22 SQL-Code: view_haupt_absender SELECT tbl_haupt_absender.InstitutionA_ID, tbl_haupt_absender.Haupt_ID, tbl_institution.Institution_Name, tbl_institution.Name, tbl_institution.Vorname, tbl_institution.Titel, tbl_institution.Ort FROM tbl_haupt_absender INNER JOIN tbl_institution ON tbl_haupt_absender.InstitutionA_ID = tbl_institution.Institution_ID; 89 6.23 SQL-Code: view_haupt_empfaenger SELECT tbl_haupt_empfaenger.InstitutionE_ID, tbl_haupt_empfaenger.Haupt_ID, tbl_institution.Institution_Name, tbl_institution.Name, tbl_institution.Vorname, tbl_institution.Titel, tbl_institution.Ort FROM tbl_haupt_empfaenger INNER JOIN tbl_institution ON tbl_haupt_empfaenger.InstitutionE_ID = tbl_institution.Institution_ID; 6.24 SQL-Code: view_haupt_film_editieren SELECT tbl_haupt_film.Haupt_Film_ID, tbl_haupt_film.Haupt_ID AS Haupt_ID_Film, tbl_haupt_film.Film_ID, tbl_filme.Filmtitel_gesamt, tbl_filme.Originaltitel_Archivtitel, tbl_filme.Deutscher_Verleihtitel, tbl_filme.Titel_Englisch, tbl_filme.Titel_Sortierung, tbl_filme.Sonstiger_Titel FROM ( tbl_haupt_film INNER JOIN tbl_haupt ON tbl_haupt_film.Haupt_ID = tbl_haupt.Haupt_ID ) INNER JOIN tbl_filme ON tbl_haupt_film.Film_ID = tbl_filme.Film_ID; 6.25 SQL-Code: view_haupt_film_titel SELECT tbl_haupt.Haupt_ID, tbl_haupt_film.Haupt_ID, tbl_filme.Film_ID, tbl_filme.Originaltitel_Archivtitel, tbl_filme.Deutscher_Verleihtitel, tbl_filme.Titel_Englisch, tbl_filme.Titel_Sortierung, tbl_filme.Sonstiger_Titel FROM ( tbl_haupt INNER JOIN tbl_haupt_film ON tbl_haupt.Haupt_ID = tbl_haupt_film.Haupt_ID ) INNER JOIN tbl_filme ON tbl_haupt_film.Film_ID = tbl_filme.Film_ID ORDER BY tbl_filme.Originaltitel_Archivtitel, tbl_filme.Deutscher_Verleihtitel, tbl_filme.Titel_Englisch; 90 6.26 SQL-Code: view_suche SELECT tbl_filme.Film_ID, tbl_filme.Originaltitel_Archivtitel, tbl_filme.Deutscher_Verleihtitel, tbl_filme.Herstellungsjahr_Freigabe, tbl_filme.Titel_Englisch, tbl_filme.Titel_Sortierung, tbl_filme.Sonstiger_Titel, tbl_filme.Filmtitel_gesamt, tbl_filme.Herstellungsjahr_Freigabe, tbl_filme.Produktion_ID, tbl_filme.Produktionsland_ID, tbl_filme.Bemerkungen, tbl_filme.Filmart_ID, tbl_medium_1.Medium_ID, tbl_kannapien_filmstock.Kanapien_ID, tbl_kannapien_filmstock.Film_ID, tbl_kannapien_filmstock.Filmdaten_ID, tbl_kannapien_filmstock.Bemerkung, tbl_kannapien_filmstock.Signatur, tbl_kannapien_filmstock.[Annotation/Karte], tbl_kannapien_filmstock.[Bearbeitungskarte Progress], tbl_kannapien_filmstock.[Bearbeitungskarte DEFA Aussenhandel], tbl_kannapien_filmstock.[Zulassungsunterlagen-Fiche], tbl_kannapien_filmstock.[Lizenzvertrag Studio-Progress], tbl_kannapien_filmstock.[Lizenzvertrag Studio-Aussenhandel], tbl_kannapien_filmstock.[Literarische Vorlage], tbl_kannapien_filmstock.Musik, tbl_kannapien_filmstock.[Koproduktion/Dienstleistungen], tbl_kannapien_filmstock.[Vertrag DEFA Aussenhandel], tbl_kannapien_filmstock.Drittbeteiligung, tbl_kannapien_filmstock.Remakerechte, tbl_ kannapien_filmstock.Ankaufsprotokoll, tbl_kannapien_filmstock.[Vertrag Aussenhandel-Progress], tbl_kannapien_filmstock.Synchronprotokoll, tbl_kannapien_filmstock.Freigabe, tbl_kannapien_filmstock.[Aktueller Stand], tbl_kannapien_filmstock.ProdNr, tbl_kannapien_filmstock.Bemerkung, tbl_haupt.Haupt_ID, tbl_haupt.Signatur, tbl_haupt.OrdnerNr, tbl_haupt.Betreff, tbl_haupt.Datum, tbl_haupt.Zeichen_Aktenzeichen, tbl_haupt.Bemerkungen, tbl_haupt.Schlagworte, tbl_haupt.Paragraphen_UrhG, tbl_haupt.Paragraphen_Vertraege, tbl_haupt.Scan, tbl_haupt.Medium_ID, tbl_medium.Medium, tbl_produktion.Produktion, tbl_produktionsland.Produktionsland, tbl_filmart.Filmart, tbl_filmart.Filmart, tbl_kannapien_filmstock.Filmdaten_ID, tbl_medium_1.Medium_ID, tbl_medium_1.Medium, tbl_medium.Medium_ID, tbl_medium.Medium, tbl_haupt.Buch, tbl_haupt.Signaturkuerzel, tbl_haupt_absender.InstitutionA_ID, tbl_haupt_empfaenger.InstitutionE_ID FROM ( ( ( ( ( qry_union_film_haupt_film LEFT JOIN ( 91 ( ( ( tbl_filme LEFT JOIN tbl_produktion ON tbl_filme.Produktion_ID = tbl_produktion.Produktion_ID ) LEFT JOIN tbl_produktionsland ON tbl_filme.Produktionsland_ID = tbl_produktionsland.Produktionsland_ID ) LEFT JOIN tbl_filmart ON tbl_filme.Filmart_ID = tbl_filmart.Filmart_ID ) LEFT JOIN tbl_kannapien_filmstock ON tbl_filme.Film_ID = tbl_kannapien_filmstock.Film_ID ) ON qry_union_film_haupt_film.Film_ID = tbl_filme.Film_ID ) LEFT JOIN tbl_haupt ON qry_union_film_haupt_film.Haupt_ID = tbl_haupt.Haupt_ID ) LEFT JOIN tbl_medium AS tbl_medium_1 ON tbl_kannapien_filmstock.Filmdaten_ID = tbl_medium_1.Medium_ID ) LEFT JOIN tbl_medium ON tbl_haupt.Medium_ID = tbl_medium.Medium_ID ) LEFT JOIN tbl_haupt_absender ON qry_union_film_haupt_film.Haupt_ID = tbl_haupt_absender.Haupt_ID ) LEFT JOIN tbl_haupt_empfaenger ON qry_union_film_haupt_film.Haupt_ID = tbl_haupt_empfaenger.Haupt_ID; 92 6.27 Ausblick: ER-Modell Ordnertitel_alt Aussenhandel_ID OrdnerNr_alt Vertragspartei Vertragspartei_ID Institution_ID MappenNr_alt Film_ID Vertragsgegenstand BArch-Signatur Produzent Ordnertitel_neu Signatur_Hauptbuchhaltung Aussenhandel_ID Farbe Hauptbuchhaltung_ID tbl_ ve rtra gsparte i tbl_a ussenha nde l_ve rtra g 1, n Bemerkungen tbl_ha uptbuchha ltung OrdnerNr_neu MappenNr_neu Bemerkungen Vorname Titel Name 0, n Zeitraum 1, 1 Auftrag Produktionsnr bezieht sich auf Bemerkung Institution_Name Ort Institution_ID 0, n tbl_institution 0, n 0, n 0, n 0, n 0, n W ahr_Falsch_Autor W ahr_Falsch_Vertragspartei ist 0, n W ahr_Falsch_Dokfilm Empfaenger_ID W ahr_Falsch_Auftraggeber W ahr_Falsch_Haupt 1, 1 W ahr_Falsch_Komponist Absender_ID Haupt_ID OrdnerNr tbl_ha upt_ a bse nde r Betreff Signatur tbl_a utor_ve rla g Details Bemerkungen 1, 1 Komponist_Institution_ID Haupt_ID hat Dok_Vertrag_ID tbl_kom ponist 1, 1 Komponist_ID bezieht sich auf bezieht sich auf 0, n Dok_Jahr Komponist_Vertragsart_ID Komponist_Jahr 0, n Filmart_ID Deutscher_Verleihtitel gehört zu Titel_Englisch Originaltitel_Archivtitel 0, n 0, n Korrespondenz ist auf tbl_haupt_ film Filmart tbl_filma rt 1, n Titel_Sortierung Produktionsland_ID 0, 1 Film_ID 1, n Dok_Bemerkung 0, n Komponist_Film_ID Film_ID Haupt_ID Medium_ID tbl_me dium tbl_dokfilm_ve rtra g 1, 1 Schlagworte Paragraphen_UrhG Paragraphen_Vertraege 1, 1 Dok_Vertragsart_ID 1, 1 0, m Scan 1, n Dok_Film_ID Komponist_Signatur tbl_ha upt geschlossen mit 0, n Dok_Institution_ID bezieht sich auf Medium_ID 0, m tbl_ve rtra gsa rt 0, n InstitutionA_ID AV_Bemerkung Buch Vertragsart AV_Vertragsart_ID 1, 1 AV_Jahr Zeichen_Aktenzeichen hat 1, 1 1, 1 InstitutionE_ID Signaturkuerzel AV_Signatur festgelegt in Datum Vertragsart_ID AV_ID ist Haupt_ID tbl_ha upt_ e mpfa e nge r AV_Film_ID AV_Institution_ID tbl_filme 0, n aus 0, 1 tbl_produktionsla nd 1, n 0, 1 Filmtitel_gesamt Sonstiger_Titel Produktionsland Medium Bemerkungen Haupt_Film_ID von Herstellungsjahr_Freigabe tbl_produktion 1, n Produktion_ID Produktion_ID Produktion Filmart_ID Produktionsland_ID Bearbeitungskarte DEFA Aussenhandel 0, n Zulassungsunterlagen-Fiche Bearbeitungskarte Progress dokfilm_Signatur Lizenzvertrag Studio-Progress 0, 1 Annotation/Karte PG_KAG_ID dokfilm_Film_ID PG_KAG PG_KAG_ID 0, n Nr_ID Lizenzvertrag Studio-Aussenhandel Filmdaten_ID ist tbl_dokfilm2007 1, 1 Literarische Vorlage Signatur 0, 1 hat tbl_pg_ka g 1, n Klassifikation_Gaebler Musik 0, n ist dokfilm_Institution_ID Film_ID dokfilm_Schlagwort genannte_Person Information stammt von bezieht sich auf tbl_ka nna pie n_filmstock 0, 1 1, 1 Koproduktion/Dienstleistungen dreht 1, n Bemerkungen Bemerkung Zeit 1, 1 Abkuerzung Mappennr Abkuerzung_ID AH_ID Erlaeuterung Ordner ProdNr Vertrag DEFA Aussenhandel Aktueller Stand Freigabe Vertrag DEFA Aussenhandel Synchronprotokoll tbl_a usse nha nde l hat 1, 1 tbl_a bkue rzung 0, n 1, n Drittbeteiligung Vertrag Aussenhandel-Progress Remakerechte Ankaufsprotokoll Film_ID Abteilung_ID 93 7 Literaturverzeichnis Albrecht, Ralf; Nicol, Natascha: Access 2003 programmieren. Professionelle Anwendungsentwicklung mit Access und VBA. München [u.a.]: Addison-Wesley, 2007. Albrecht, Ralf; Nicol, Natascha: Microsoft Office Access 2003. Das Handbuch. Unterschleißheim: Microsoft Press, 2004. Buchmann, Andreas: SQL, MySQL interaktiv. Heidelberg: dpunkt-Verlag, 2005. Däßler, Rolf: Das Einsteigerseminar MySQL 5. Bonn: bhv, 2005. Dahlke, Günther; Kaufmann, Lili (Hrsg.): ... wichtigste aller Künste: Lenin über d. Film. Berlin: Henschelverlag, 1970. DEFA-Stiftung: Informationsschrift zu rechtsrelevanten Unterlagen in der DEFA-Stiftung und an anderen Standorten, Berlin, 2007. DEFA-Stiftung (Hrsg.): apropos: Film 2000. Das Jahrbuch der DEFA-Stiftung. Berlin: Das Neue Berlin, 2000. Dresen, Andreas: Genauigkeit und Humanismus. In: Film-Dienst 10 (2006). Filmmuseum Potsdam (Hrsg.): Das zweite Leben der Filmstadt Babelsberg. DEFASpielfilme 1946 – 1992. Berlin: Henschel, 1994. Haupt, Stefan: Urheberrecht und DEFA-Film. Die Schriftenreihe der DEFA-Stiftung. Berlin: DEFA-Stiftung, 2005. Held, Bernd: Access-VBA. München: Markt + Technik, 2007. Kannengiesser, Matthias: MySQL. Das Praxisbuch. Poing: Franzis, 2003. Kinemathek-Verbund (Hrsg.): Die Deutschen Filme. Deutsche Filmographie 1895-1998 und die Top 100, Deutsche Kinemathek, CD-ROM, 1999. Minhorst, André: Das Access-2003-Entwicklerbuch. München [u.a.]: Addison-Wesley, 2005. 94 Reibold, Holger: XAMPP kompakt. Das offizielle Anwenderhandbuch. Saarbrücken: Bomots-Verlag, 2005. Widenius, Michael: MySQL. Das offizielle Handbuch. Bonn: mitp, 2003. 95 8 Verzeichnis der elektronischen Referenzen DEFA-Stiftung Schulz, Günter: Die DEFA (Deutsche Film Aktiengesellschaft) 1946 - 1990: Fakten und Daten. URL http://www.defa-stiftung.de/cms/(S(fyxymeymabhiwznu5tpuh055))/ DesktopDefault.aspx?TabID=981. Berlin, DEFA-Stiftung 2002. (letzter Zugriff: 05.06.2008). IrfanView http://www.irfanview.de/ (letzter Zugriff: 11.06.2008). MySQL http://dev.mysql.com/downloads/connector/odbc/5.1.html#win32 (letzter Zugriff: 25.05.2008). Office-Loesung http://www.office-loesung.de/ftopic13271_0_0_asc.php (letzter Zugriff: 27.05.2008). 96 9 Erklärung Ich versichere, dass ich diese Arbeit ohne fremde Hilfe und ohne Benutzung anderer als der angegebenen Quellen angefertigt habe. Diese Arbeit wurde weder in gleicher noch in ähnlicher Form einer anderen Prüfungsbehörde vorgelegt und von dieser als Teil einer Prüfungsleistung angenommen. Alle Ausführungen, die wörtlich oder sinngemäß übernommen wurden, sind als solche gekennzeichnet. Potsdam, 26. Juni 2008 Nicole Grau 97