Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: Daniela am Dezember 08, 2010, 12:36:03

Titel: Aufbau einer Datenbank
Beitrag von: Daniela am Dezember 08, 2010, 12:36:03
Hi,

vorweg:
Office 2007 Access (english)

Ich mache es erst mal einfach. Wenn jemand ein ausführliche  Bescheibung möchte, hänge ich die gerne noch an.

Ich habe eine kleine Beispieldatenbank angelegt.

Nun möchte ich das ein User festlegen kann, welche Daten er braucht.

Daraus soll nun eine Tabelle entstehen, die diese Daten ausgibt.

Ich habe eine Datenbank bestehend aus diversen Tabellen.
Diese sind normalisiert und atomisiert.
Desweitern habe ich Verknüpungen eingefügt.
Soweit so gut.

Nun brauche ich ein Formular (Form) zur Eingabe der gewünschten Daten und ein Ausgabe (Report).
Ist das soweit richtig?
Inwiefern brauche ich auch eine Abfrage (Query)?

Gruß Daniela

PS.: Die Datenbank ist leider schon 800 KB groß. >:(
Titel: Re: Aufbau einer Datenbank
Beitrag von: database am Dezember 08, 2010, 12:48:40
Hallo,

naja, deine Frage ist nicht einfach in Bausch und Bogen zu beantworten!

ZitatNun möchte ich das ein User festlegen kann, welche Daten er braucht.
Es sollte ja Sinn und Zweck einer Datenbank sein, jene Daten, die da gesammelt werden in strukturierter Form bei Bedarf auch wieder anzuzeigen.

ZitatDaraus soll nun eine Tabelle entstehen, die diese Daten ausgibt
Tabellen geben keine Daten aus, das erledigt eine Abfrage.

ZitatNun brauche ich ein Formular (Form) zur Eingabe der gewünschten Daten
Hier würde ich eher davon ausgehen, dass du ein Formular benötigst in dem der Benutzer die Möglichkeit hat
anzugeben welche Daten er in einem Bericht dargestellt haben will. Also ein Auswahlformular - kurz gesagt.
Oder der Benutzer bekommt die Möglichkeit anzugeben welchen Bericht er sehen/drucken will.

ZitatInwiefern brauche ich auch eine Abfrage (Query)?
Wenn du die Erstellung eines Berichts NICHT vollständig in VBA erledigst brauchst du als
Datenherkunft für den Bericht immer eine Abfrage oder eine Tabelle (wobei der Abfrage m.E. der Vorzug zu geben ist)

Die Erstellung von Berichten an sich ist eine recht komplexe Angelegenheit, da es hierbei sehr viele Möglichkeiten
in Bezug auf Datenauswahl und Gestaltung gibt - daher mein erster Satz...

Grüße
Peter
Titel: Re: Aufbau einer Datenbank
Beitrag von: Daniela am Dezember 08, 2010, 13:10:55
Danke erst mal.

Kann ich ein Auswahlformular erstellen, welches mit Hilfe von Kombinationsfeldern funktioniert?

Bsp.: Ein Formular mit 3 Kombinationsfeldern:

Im Ersten hat man die Auswahl zwischen 3 Automarken, Audi, BMW und VW.
Im Zweiten wird nach dem Model sortiert: 316, 525, 725. Dabei wird (wenn im ersten BMW gewählt wurde) nicht der A6 oder der Golf als Auswahl angeboten.
Im Dritten werden 300PS, 400PS oder 500PS angeboten (in diesem Beispiel BMW 525 spezifisch)

Ausgeggeben wird dann:

BMW, 525, 300PS, Turbolader, elekt. Fensterheber, 30.000€

Ist das möglich?
Brauche ich dafür VBA, oder ist dies sinnvoll (Programiergrundkenntnissen sind vorhanden, hab schon mal Basic und Turbopascal programiert)?

Danke Daniela :)
Titel: Re: Aufbau einer Datenbank
Beitrag von: database am Dezember 08, 2010, 13:54:05
Hallo Daniela,

ZitatKann ich ein Auswahlformular erstellen, welches mit Hilfe von Kombinationsfeldern funktioniert
Na sicher - in dem von dir beschriebenem Anwendungsfall handelt es sich um so genannte abhängige Kombifelder.
Dabei ist der Inhalt der Felder 2 und 3 immer von der Auswahl im Feld 1 abhängig - es wird praktisch 'nach hinten' verfeinert.
Die Auswahlen stellen dann Einschränkungskriterien für eine Abfrage dar, die dann wiederum die Datenherkunft eines Berichts sein KANN.

ZitatIst das möglich?
JA

ZitatBrauche ich dafür VBA, oder ist dies sinnvoll
Ich persönlich würde diese Frage mit JA beantworten obwohl es ohne VBA auch geht (...aber wer will das schon?  ;) :D ;D).
Siehe hierzu bitte mal da rein ... www.donkarl.com?FAQ4.36 (http://www.donkarl.com?FAQ4.36)

Grüße
Titel: Re: Aufbau einer Datenbank
Beitrag von: Daniela am Dezember 11, 2010, 17:37:17
Danke,

Ich habe mir den Link mal angeschau,
und auch die Datenbank heruntergeladen.

Leider hat sie auf meinem acc07 nicht funktioniert,

Auch ist die Datenbank ganz anders aufgebaut.

Ich sende mal meine Datenbank.

Vielleicht siehst du ja die Ungereimtheiten.

Daniela

[Anhang gelöscht durch Administrator]
Titel: Re: Aufbau einer Datenbank
Beitrag von: MzKlMu am Dezember 11, 2010, 19:13:08
Hallo,
ZitatDiese sind normalisiert und atomisiert.
Desweitern habe ich Verknüpungen eingefügt.
Soweit so gut.
Nein, nicht gut die DB ist weder normalisiert noch atomisiert.
Das Tabellenkonzept halte ich so für unbrauchbar.
Du kannst noch nicht mal rferentielle Integrität anlegen, weil die Datentypen nicht stimmen.
Die Tabellen mit den Markennamen sind falsch, die Markennamen sind keine Tabellenamen sondern Feldinhalte (Werte) in einer Tabelle "tblAuomarken". Das gleiche gilt für die Typen. Die Typen werden dann in einer weiteren Tabelle den Marken zugordnet.

Bevor man aber weiter ins Detail geht, kannst Du mal etwas besser beschreiben, was die DB machen soll?
Titel: Re: Aufbau einer Datenbank
Beitrag von: database am Dezember 11, 2010, 21:44:15
Hallo Daniela,

für den Eindruck, wie ein normalisiertes Datenmodell aussehen KÖNNTE ... der Anhang.

...und dann - gemäß der letzten Zeile im Posting von MzKlMu!

Grüße
Peter

p.s. Also die DB auf die im Link von donkarl.com hingewiesen wird macht NACH der Konvertierung unter ACC2007 KEINE Probleme und funktioniert tadellos!
Sie birgt all die Geheimnisse, die du lüften musst um zum Erfolg zu gelangen  ;)


[Anhang gelöscht durch Administrator]
Titel: Re: Aufbau einer Datenbank
Beitrag von: Daniela am Dezember 12, 2010, 11:23:38
Erst mal danke für die Datenbank!

Es ist mir nun einiges klarer geworden.

"Anfang der Beschreibung:"
Ausgangssituation:
Nehmen wir an ich habe ein Autohaus.
Da führe ich die Marken:
- Audi
- BMW
- VW
Vom Audi führe ich:
- A4
- A6
- A8
Von BMW führe ich:
- 316
- 525
- 725
Von VW führe ich:
- Polo
- Golf
- Passat
Zu jedem Modell habe ich eine ausführliche Beschreibung (zum Teil eine DIN A4 Seite lang) und einen Preis.
Interessant in dem Zusammenhang ist vielleicht, dass sich alle Beschreibungen und Preise unterscheiden.
Es ist eher unwarscheinlich, dass ein Preis zweimal vor kommt. Auch die Beschreibungen sind alle einmalig.
Das war der Grund für meine Wahl der Normalisierung/Atomisierung. Die Beschreibung von Audi A6 passt zu keinem anderen Auto.

Mein Ziel:
Ich möchte Kundenanfragen bearbeiten. Verschiedene Kunden möchten mehrere Autos zum Teil auch von verschiedenen Marken kaufen.
Dabei möchte ich:
1. Für die angefragten Autos ein Wordfile herstellen, in dem die Bescheibungen untereinander aufgelistet sind.
2. Für die angefragten Autos ein Excelfile herstellen, in dem die Preise untereinander aufgelistet sind und am Ende eine Gesamtsumme steht.
3. Diese Word- und Excelfiles im nachhinein bearbeiten können. (Daher fallen PDF-Files und das direkte Ausdrucken weg.)

Der Kunde soll also ein Angebot bekommen, das aus einem Wordfile (evtl. nachträglich verändert) und einer Excelliste (evtl. ebenfalls nachträglich verändert) besteht.
"Ende der Beschreibung"

Meine nächsten Schritte sind nun, aus dem Feld "Hersteller" ein Kombifeld zu machen und ein weiteres Feld mit dem "Typ" einzufügen.
Des Weitern versuche ich ein Endlosformular zu erstellen um verschieden Hersteller/Tpyen zusammenstellen zu können.

Der darauffolgende Schritt wäre das Importieren der Beschreibung aus einer Textdatei. Der Letzte das Exportieren in eine Word- und eine Exceldatei.

Daniela 
Titel: Re: Aufbau einer Datenbank
Beitrag von: MzKlMu am Dezember 12, 2010, 11:36:32
Hallo,
ZitatDas war der Grund für meine Wahl der Normalisierung/Atomisierung.
Auch unter dieser Annahme ist ein Markenname als Tabellenname falsch. Der Markenname ist immer eine Feldinhalt und niemals ein Tabellen oder Feldname.
Die Übertragung nach Word und Excel halte ich für vollkommen überflüssig.
Zitat1. Für die angefragten Autos ein Wordfile herstellen, in dem die Bescheibungen untereinander aufgelistet sind.
2. Für die angefragten Autos ein Excelfile herstellen, in dem die Preise untereinander aufgelistet sind und am Ende eine Gesamtsumme steht.
3. Diese Word- und Excelfiles im nachhinein bearbeiten können. (Daher fallen PDF-Files und das direkte Ausdrucken weg.)
Das solltest Du alles in Access direkt machen, dazu brauchst Du weder Word noch Excel. Und das kann auch Access und einfacher dazu, korrekter Aufbau der DB vorrausgesetzt.

Die ganze Sache wird vom Tabellenaufbau auch etwas komplexer, Du willst ja auch noch bestimmt das Zubehör der Autos verwalten.
Also z.B.
Anhängerkupplung
Automatik
El. Fensterheber
Sitzheizung usw. usw.
Titel: Re: Aufbau einer Datenbank
Beitrag von: Daniela am Dezember 12, 2010, 12:13:01
Zitat:
Die ganze Sache wird vom Tabellenaufbau auch etwas komplexer, Du willst ja auch noch bestimmt das Zubehör der Autos verwalten.
Also z.B.
Anhängerkupplung
Automatik
El. Fensterheber
Sitzheizung usw. usw.

Nein, das kommt alles in die Beschreibung (Vorgabe vom Chef). Eigentlich ist das Feld PS schon zu viel. Aber ich habe es mal extra gelassen für den Fall das wir später noch ein Feld brauchen. ich würde es dann "einfach" umbenennen.
Des Weiteren ist die Exporiterung in Ecxel und Word nach möglichkeit auch zu machen, damit mein Chef mit den Dokumenten arbeiten (individuelle Veränderungen vornehmen) kann.

Aber dazu später.

Erstmal bin ich an der Aufgabe die Eingabe anzupassen, siehe meinen letzten Eintrag Kombifeld/Endlosabfrage.
Lass mir dafür aber noch bis heute abend Zeit: learning by doing oder besser learning by try and error.

Daniela
Titel: Re: Aufbau einer Datenbank
Beitrag von: Daniela am Dezember 12, 2010, 13:24:31
Sorry noch eine Frage:

Kann man ein Text Feld in Access einbauen, welches aus mehr als 255 Zeichen Text besteht?

Bsp:" Die 6 Zylinder schnurren wie ein Kätzchen. Tippt man jedoch nur leicht auf das Gaspedal, lässt man den Tiger aus dem Tank. Bei einer Probefahrt werden Sie von den 274 PS, die diese nur 952kg leichte Raubkatze beschleunigen, begeistert sein. Den Durst den diese Katze nach einem längeren Sprint hat werden sie verkraften können. Moderat gefahren, geschmeidig durch die Kurven geführt erleben sie Komfort der Extraklasse. Die Qualität der Verarbeitung ist bemerkenswert. Die vier Türen schließen passgenau und somit leise. Das Sie bei diesem Fahrzeug auf die kleinen Annehmlichkeiten wie elektrische Fensterheber, Zentralverriegeung und Einparkhilfe nicht verzichten müssen versteht sich von selbst. Das ,,Keyless Go" System entspricht ebenfalls dem Klassenstandart. ..."

Das ist nur ein Beispieltext der noch überarbeitet werden muss und in dem noch weiter Details, wie die Art der Schaltung, Tuningtauglichkeit, ...... fehlen.
Im Allgemeinen kennen unsere Kunden die technischen Details der Fahrzeuge in tabellarischer Form.

Wie gesagt, diese Texte können schon mal länger sein.

Daniela
Titel: Re: Aufbau einer Datenbank
Beitrag von: MzKlMu am Dezember 12, 2010, 13:26:27
Hallo,
nimm den Datentyp "Memo".
Titel: Re: Aufbau einer Datenbank
Beitrag von: database am Dezember 12, 2010, 17:44:26
Hallo Daniela,

ich darf den Worten von MzKlMu noch hinzufügen...

ZitatDas war der Grund für meine Wahl der Normalisierung/Atomisierung
DU wählst keine Normalisierung, DU kannst NICHT bestimmen, wie die Normalisierung aussieht - das sind FEST VORGEGEBENE Regeln, die gewährleisten, dass relationale Datenbankmodelle funktionieren.
Das einzige, das du als Datenbankentwicklerin beeinflussen sollst ist die Zusammsetzung der zu erfassenden Informationen.

Du hättest die Möglichkeit aus der Signatur von DF6GL die Links #1 und #1a zu diesem Thema durchzuackern oder unter Anderem hier...
http://de.wikipedia.org/wiki/Normalisierung_(Datenbank) (http://de.wikipedia.org/wiki/Normalisierung_(Datenbank))

http://www.lehrer-online.de/relationale-datenbanken.php?sid=35643181451183623829217101711030 (http://www.lehrer-online.de/relationale-datenbanken.php?sid=35643181451183623829217101711030)

... dein Wissen um das Thema Normalisierung / relationale Datenbanken zu erweitern.

Bei solchen Aussagen ---> damit mein Chef mit den Dokumenten arbeiten (individuelle Veränderungen vornehmen) kann <--- krieg' ich die Krise.
Die Wünsche und Vorstellungen von Chefs wurden in diesem Forum schon oft und gebetsmühlenartig abgehandelt.
Meist sind diese mit Datenbanken und schon gar nicht mit funktionierenden Datenbanken in Einklang zu bringen.
Wozu soll dann alles zuerst in einer Datenbank gesammelt und eingegeben werden wenn der Herr Chef dann die GESPEICHERTEN Texte ausgegeben in Fremdprogrammen umändert?
Das macht doch absolut ÜBERHAUPT KEINEN SINN!
Zu solchen Zwecken solltest du nur Marken und Typen in der Datenbank erfassen und dazu den Link zu vorgefertigten Excel-/Worddateien, die dann nach Herzenslust umgemodelt werden können.

Grüße
Peter
Titel: Re: Aufbau einer Datenbank
Beitrag von: Daniela am Dezember 13, 2010, 12:17:53
Erst mal die Gute Nachrricht:

Die zweite Abfrage funktioniert nun.
Ich kenne mich nun mit SQL Ansatzweise ein wenig aus.

Wenn ich BMW und 316 eingebe, gibt er mir nur den 316er BMW.
Wenn ich BMW und A6 eingebe, gibt er mir einen leeren Bericht.
Nun lassen sich noch Fehlermeldungen einfügen, oder Verbote für Eingaben einfügen.  

Nun such ich den Platz, an dem ich die Abfrageform auf Combo umstellen, die Stelle, wo ich das "Endless" eingeben kann.

An den Stellen wo ich diese Option vermutet habe, habe ich sie nicht gefunden.
In der Query habe ich eine Möglichkeit gefunden Combo einzustellen.
Das hatte aber keinen Effekt; weder in der Queryabfrage noch im Report.

Nun noch eine kleine Erklärung:
Die Aufgabe ist klar.
Erstelle eine Exceltabelle mit den Bezeichnungen und Preisen und ein Wordfile mit den Beschreibungen.
Anschließend werden Diese Daten angeschaut und kundenspezifisch angepasst.
Es war meine Vermutung bei den umfangreichen Daten, dies ist einfacher mit einer Datenbank zu erreichen.
(Eingeben der Fahrzeuge und Modelle, Knopfdruck, Ausgabe.) Des Weitern hilft es mir mich in Datenbanktools einzuarbeiten.
Alternative wäre ein oder mehrere Excelsheets sowie ein oder mehrere Wordfiles. Anschließend copy and paste.
Aber dies ist später aufwendiger und fehleranfälliger.

Gruß Daniela

Mein bisherig Hauptquelle ist:
http://www.access-tutorial.de/index.htm
Titel: Re: Aufbau einer Datenbank
Beitrag von: Daniela am Dezember 14, 2010, 14:16:28
Hi

ich habe nun weiter herumprobiert.

ich brauche jetzt noch mal Hilfe, Bitte!

Mittlerweile eingefügt ist eine Summe und wie schon oben beschrieben die zweite Eingabe.

Ich bekomme leider keine Comboabfrage hin.

Ich versuche dies in der Query einzutragen, aber irgendwie hat das nicht den erwünschten Effekt.

Gleiches gilt für die Endlosabfrage.

Gruß

Im Anhang der derzeitige Stand.

[Anhang gelöscht durch Administrator]
Titel: Re: Aufbau einer Datenbank
Beitrag von: database am Dezember 15, 2010, 20:29:52
Hallo Daniela,

ich habe mir deinen letzten Stand angesehen.

Grundsätzlich musst du bei der Erstellung von Formularen im Vorfeld überlegen, was du damit machen willst.
Soll es ein Auswahlformular werden, in dem du diverse Informationen nach Auswahl bestimmter Kriterien anzeigst oder möchtest du ein Formular erzeugen mit dem du Werte in ein Tabelle schreibst.

In dem Fall, wie du dein Formular aufgebaut hast, bestand das Problem, dass bei jeder Auswahl gleich auch die Tabellenwerte überschrieben wurden, da die Kombis an die entsprechenden Tabellenfelder gebunden waren.
Es wird dir sicher aufgefallen sein, dass nach der Auswahl eines Herstellers und dem Versuch einen Fahrzeugtyp zu wählen die Tabellenwerte nicht mehr zusammenstimmten.
Natürlich hat sich das auch auf die Berichte ausgewirkt, die nach ein paar unterschiedlichen Auswahlen dusseliges Zeug angezeigt haben  ;D

Ich habe also nun im angehängten Beispiel dieses Formular in ein Auswahlformular umgebaut.
Der Hintergedanke dabei war jener um dir zu zeigen, wie abhängige Kombifelder funktionieren und wie man diese mit den richtigen Werten befüllen KANN.

Ein Eingabeformular ist in ähnlicher Weise zu realisieren, allersdings ist dabei zu beachten, dass die Fremdschlüssel der Tabellen nicht verändert werden.
Man kann und darf z.B. bei Auswahl von AUDI keinen Typ 316 eintragen. Diese Möglichkeit muss ausgeschlossen bleiben.
Das Befüllen der Felder PS, Description und Price erfolgt dann anslog des Auswahlformulars jedoch sind diese Felder dann auch an die
Tabelle Fahrzeug GEBUNDEN um etwaige gewollte Änderungen an die Tabelle weitergeben zu können.

Versuche nun ein solches Formular zu erstellen um die Daten EINZELNER Typen zu verändern.
Bitte KEIN Endlosformular erstellen, ein Endlosformular werden wir später herstellen - als Unterformular zu einem Hauptform!!

Bei Problemen bitte keine Scheu dich zu melden.

Grüße
Peter

[Anhang gelöscht durch Administrator]