Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Aufbau einer Datenbank

Begonnen von Daniela, Dezember 08, 2010, 12:36:03

⏪ vorheriges - nächstes ⏩

Daniela

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ß. >:(

database

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

Daniela

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 :)

database

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

Grüße

Daniela

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]

MzKlMu

#5
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?
Gruß Klaus

database

#6
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]

Daniela

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 

MzKlMu

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.
Gruß Klaus

Daniela

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

Daniela

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

MzKlMu

Hallo,
nimm den Datentyp "Memo".
Gruß Klaus

database

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://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

Daniela

#13
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

Daniela

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]