Tabellenanalyse

Werbung
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
Herunterladen