Neuigkeiten:

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

Mobiles Hauptmenü

Formular für geologische Datenbank

Begonnen von finki, Dezember 16, 2010, 16:33:41

⏪ vorheriges - nächstes ⏩

finki

Ein Hallo an die Forum-Community!

Ich hoffe ihr könnt mir mit meinem Problem weiterhelfen - mittlerweile habe ich schon viel Zeit und Nerven in Access für mein Projekt investiert - mit mäßigem Erfolg -.-

Mein Problem:

Für die Arbeit habe ich eine Datenbank für geologische Aufschlüsse erhalten. Für jeden der notwendigen Parameter ist eine Tabelle angelegt - die Beziehungen zwischen den Tabellen stimmen.
Einige Tabellen sind schon fertig, da sie Werte enthalten, aus denen ausgewählt werden muss. Andere Tabellen müssen noch erweitert werden.
Beispiel dafür:
Tabelle für die Verwitterung vom Gestein - einer aus 4 Werten /Datensätzen muss ausgewählt werden,
Tabelle für Trennflächen: hier müssen laufend neue Werte eingetragen werden

Nun ist es jedoch sehr mühseelig für jeden neuen Aufschluss alles in den Tabellen einzugeben - deshalb dachte ich mir, die Erstellung eines Formulars erleichtert mit die Eingabe

Nun möchte ich in dieses Formular Teile von Tabellen,aus denen auszuwählen ist, einfügen - wie beispielsweise oben genannt: Verwitterung von Gestein:

Nun befinden sich schon Datensätze in der Datenbank, die ohne Formular eingegeben wurden. Diese werden im Formular prinzipiell korrekt angezeigt, es wird jedoch für Tabellen, an denen zwei Datensätze zutreffen, doppelt angezeigt
(1 mal das Formular mit Wert X und 1 mal das Formular mit Wert Y) - weiters kann auch kein neuer Datensatz angelegt werden

Nun wollte ich fragen, wie ich am einfachsten so ein Formular erstellen kann, in dem einerseits aus fix erstellten Werten ausgewählt werden können und andererseits neue Werte eingegeben werden können - wie gesagt, die Beziehung zwischen den Tabellen und die Tabellen selbst sind fertig erstellt. Es geht nur um eine praktischere und wesentlich feinere Möglichkeit diese einzugeben.

Ich hoffe mein Sachverhalt ist halbwegs nachvollziehbar und man kann mir helfen.

Vielen Dank

oma

Hallo,

so ganz nachvollziehbar ist das noch nicht ;)

Zum einen solltest du immer alle Daten Mittels Formulare eingeben!!

Desweiteren solltest du uns dein Tabellenkonzept mit den Beziehungen vorstellen. Am Besten eine kleine DB mit ein paar Musterdaten.
Dann können wir sicher Vorschläge für ein angepasstes Formulardesign vorschlagen.

Gruß Oma
nichts ist fertig!

database

Hallo,

ohne den Sachverhalt jetzt wirklich näher zu kennen ...

Zitat... in dem einerseits aus fix erstellten Werten ausgewählt werden können ...
Da würde ich Kombifelder vorschlagen, die als Datenherkunft die von dir angesprochenen Tabellen mit Inhalt (zum Auswählen) haben und an die Tabellenspalte der Zieltabelle gebunden sind.

Zitat... andererseits neue Werte eingegeben werden können ...
Wenn du mit SQL und VBA nciht gut zu Fuß bist, dann solltest hierbei ein gebundenes Formular verwenden - d.h. die Datenherkunft deines Formulars stellt die Tabelle dar, in ide du die neuen Werte eingeben willst.
Die Felder des Formulars sind an die Herkunftstabelle gebunden. Somit schreibst du beim Ausfüllen eines Formularfeldes in die entsprechende Spalte deiner Tabelle.
Beim Verlassen des aktuellen Datensatzes werden die eingegebenen Werte physikalisch in der Tabelle gespeichert.

Voraussetzung dass das Vorhaben auch wirklich gelingt ist ein funktionierendes normalisiertes Datenmodell!

Um dir aber wirklich konkret helfen zu können sollten wir das Datenmodell und die Sachverhalte etwas näher kennen. ;)

Grüße
Peter


finki

Hey,
danke für die Antworten:

Also es geht um folgendes - zum leichteren Verständnis lade ich noch zwei Bilder rauf, wie das Ganze dann in ausgedruckter Form aussehen soll bzw. eine Tabelle aussieht:
Grundlage ist eine Tabelle in der allgemeine Aufschlussdaten (siehe bild) eingegeben werden:
Beispiel koordinaten, höhe, datum, auschlussnummer usw.

Jeder Aufschluss sollte in dieser Tabelle ein Datensatz sein.

Um den Aufschluss weiter zu beschreiben braucht es weitere Parameter, diese sind in eigenen Tabellen angegeben:

Beispiel: Verwitterung Gestein - Aufschluss kann hier einen oder zwei von den vier festgelegten Werten einnehmen

Beispiel Trennflächen: Hier werden in der Tabelle für Trennflächen zu jedem Aufschluss die Werte eingetragen.
Die Aufschlusse selbst sind durch ID's in den diversen Tabellen verknüpft.

Jetzt brauch ich ein Formular, in dem ich diese Daten angeben kann.

Zum Beispiel Trennflächen: dieses habe ich bereits mit einem Unterformular gelöst und es funktioniert
Happig wird es nur, wenn bei einem "Aufschluss" zB die Verwitterung zwei Werte annimmt

Ich hoffe nun ist es ein wenig verständlicher  :)

Danke nochmals



[Anhang gelöscht durch Administrator]

oma

Hallo finki,

nochmals: besser ist, du erklärst uns deine Tabellen mit den Schlüsselfeldern u. den Beziehungen.
Sind deine  Tabellen alles 1:1 Beziehungen??

ZitatZum Beispiel Trennflächen: dieses habe ich bereits mit einem Unterformular gelöst und es funktioniert
Happig wird es nur, wenn bei einem "Aufschluss" zB die Verwitterung zwei Werte annimmt

Was sind z.B Trennflächen. Sind das mehrere Werte, sind das Aufzählungsfelder die  1:N zu der Haupttabelle stehen?
Warum gibt es Probleme, wenn die Verwittereung 2 Werte annimmt. Müssen dann mehrere Aufzählungsfelder gebildet werden.

Du siehst, mit einem Bild u. ein paar, für dich ganz eindeutigen Bemerkungen , kann schlecht Hilfe geleistet werden!
Wir brauchen die Tabellen mit den Schlüsselfelden.

STELLE UNS DEIN TABELLENMODELL VOR!

Gruß Oma
nichts ist fertig!

database

Hallo finki,

ich darf mich den Ausführungen von OMA vorbehaltlos anschließen und vielleicht noch hinzufügen:

Die Logik, die hinter einem Excel-Worksheet steht kannst du nicht einfach 1:1 auf Access-Tabellen anwenden.
Ich befürchte, dass da schon einiges in der Richtung schief gelaufen ist, wenn du versucht hast die dargestellten Excel-Sheets in Access-Tabellen umzuwandeln.

finki

Hey!
Also ich versuch jetzt mal eins nach dem anderen abzuarbeiten und lade noch ein paar Bilder rauf!

Nein es sind keine 1:1 Beziehungen!
Beziehungen sind großteils 1:n! (siehe Bild)

Das ganze Datenbanksystem ist ein wenig komplizierter aufgebaut.

Ich habe jetzt beispielsweise einen Aufschluss in die Tabelle eingetragen.
Dieser enthalt Daten in den Tabellen OUTRC, OUTCR_GT, OCGT_UCS und den restlichen Tabellen die mit OCGT beginnen.

Wie ihr seht, sind die OCGT Tabellen mit den L_... Tabellen verknüpft.

Nun in den OCGT Tabellen werden die Werte für die einzelnen Aufschlüssen gespeichert - für den jeweiligen Parameter.
In den Tabellen mit L_... sind die dazugehörigen Namen der Werte die angenommen werden können gespeichert.

Ein kleines Beispiel:
Aufschluss ABC34 hat die ID 90. Mit dieser ID wird er mit den restlichen Tabellen verknüpft.
Nun weisst dieser Aufschluss eine frische und verfärbte Verwitterung auf. Für frisch wird der Wert (Zahl 1) eins in der Tabelle OCGT_WEARM abgespeichert.
Über die Beziehung wird dann der Wert frisch ausgeworfen.

Nun stellt sich mir die Frage, wie ich diese Tabellen in einem Formular einbaue, um diese zwei Werte einzugeben.
Ist ist mir möglich hier nur einen Wert anzugeben, aber nicht zwei.



Weiters muss ich Messwerte in eine Tabelle eingeben. Diese werde ich in Form eines Unterformulars in das Formular einbinden. Das hat bei den Versuchen von mir schon gut funktioniert.

Ich hoffe nun ist mein Sachverhalt um einiges klarer. Es geht im wesentlich nur darum, die obenen genannten Tabellen in ein Forumalur zu bekommen, und einem Aufschluss hier zwei Werte zu geben. Wie geht das ?



[Anhang gelöscht durch Administrator]

oma

Hallo,

ZitatNein es sind keine 1:1 Beziehungen!
Beziehungen sind großteils 1:n! (siehe Bild)

welches Bild

ZitatDas ganze Datenbanksystem ist ein wenig komplizierter aufgebaut.

das glauben wir, ist es auch möglicherweise nicht normalsiert?

ZitatIch habe jetzt beispielsweise einen Aufschluss in die Tabelle eingetragen.
Dieser enthalt Daten in den Tabellen OUTRC, OUTCR_GT, OCGT_UCS und den restlichen Tabellen die mit OCGT beginnen.

Das ist so nicht verständlich, wir kennen die daten eines "Aufschlusses" nicht, wir wissen nicht warum die Aufteilung in den verschiedenen Tabellen; wir kennen den Aufbau der Tabellen OUTRC, OUTCR_GT, OCGT_UCS nicht....

Also die Informationen sind für einen, der die DB nicht kennt, einfach nutzlos!

ZitatWie ihr seht, sind die OCGT Tabellen mit den L_... Tabellen verknüpft.

Wo sehen wir das?

ZitatNun in den OCGT Tabellen werden die Werte für die einzelnen Aufschlüssen gespeichert - für den jeweiligen Parameter.
In den Tabellen mit L_... sind die dazugehörigen Namen der Werte die angenommen werden können gespeichert.

? ? ?

ZitatNun stellt sich mir die Frage, wie ich diese Tabellen in einem Formular einbaue, um diese zwei Werte einzugeben.
Ist ist mir möglich hier nur einen Wert anzugeben, aber nicht zwei.

Sind für ein Parameter mehrere Werte möglich, so muss das eben im Tabellenaufbau berücksichtigt werden!!!!

ZitatEs geht im wesentlich nur darum, die obenen genannten Tabellen in ein Forumalur zu bekommen, und einem Aufschluss hier zwei Werte zu geben. Wie geht das ?

das kann ich nicht sagen, da ich nicht weiss, wie die Tabellenfelder aussehen u. welches Problem überhaupt gibt?

finki, es kann doch nicht so schwer sein, zu verstehen, dass ein Außenstehender mit fachlichen Begriffen u. so dahin genannten Tabellen nichts anfangen kann! Ebenso wie die Darstellung von Excel-Tabellen mit allen Daten helfen Ausschnitte aus einzelnen Tabellen ohne Erläuterung des Zusammenhanges nichts!

Also; wir benötigen:

tblTabelle1: Tabelle1_ID(PK), Feld1, Feld2,....
tblTabelle2: Tabelle2_ID(PK), Tabelle1_ID(FK), Feld1, Feld2,....

Nur so wird das was!

Gruß Oma
nichts ist fertig!

database

Hallo,

mal abgesehen davon, dass die ID 90 nirgends in deinen Bilderchen vorkommt, die Frage:

Was trägst du in das  Feld 'WAERM_CL' der Tabelle 'OCGT_WAERM' ein? Den Wert aus 'WEA_CL' der Tabelle 'L_WEA_R' ?
Wenn das so ist - was ich auf Grund der Bildschirmfotos mal so erahne - dann kannst es vergessen, dann stimmt dein Datenmodell nicht mal im Ansatz!

ZitatDas ganze Datenbanksystem ist ein wenig komplizierter aufgebaut
Du darfst aber darauf vertrauen, dass wir es entschlüsseln KÖNNTEN, wenn wir nur WÜSSTEN wie es aussieht.
Kannst du denn nicht statt den aussagearmen Bildchen einfach mal ein Datenbankdiagramm reinstellen oder ist das Ganze so streng geheim, dass wir nur Teile einzelner (uns nichts sagender) Tabellen sehen dürfen?


database

Hi,

@oma
ZitatNur so wird das was!

Auch hier bin uneingeschränkt deiner Meinung  ;D

oma

Hallo,

@Peter, Zitat
ZitatDu darfst aber darauf vertrauen, dass wir es entschlüsseln KÖNNTEN, wenn wir nur WÜSSTEN wie es aussieht.

Auch hier bin uneingeschränkt deiner Meinung ;D

@finki: das ist nur Spaß, wir wollen wirklich nur HELFEN!

Gruß Oma
nichts ist fertig!

finki

hallo leute!
habe erst jetzt wieder zeit euch zu schreiben - unisachen gingen die letzten 2 wochen vor...


so ich dachte mir schon, dass meine Datenbank ein wenig unübersichtlich ist.

So zuerst zum Prinzip der Datenbank:
Es wurde für jeden Parameter eines geologischen Aufschlusses eine Tabelle angelegt.

Ich stelle jetzt als erstes nocheinmal ein Foto online, in dem die Beziehungen der einzelnen Tabellen ersichtlich sind.

Als Grundlage sollte die Tabelle OUTCR sein, in der jeder Aufschluss ein Datensatz sein sollte!
Ein Bild von dieser Tabelle habe ich raufgeladen. In dieser Tabelle sind bis jetzt zwei Datensätze, die wurde mühseelig in Tabellenform eingegeben.

So und jetzt gibt es zahlreiche weitere Parameter für den Aufschluss.
Ich habe jetzt noch ein Formular raufgeladen, in dem die meisten dieser Parameter dargestellt sind. (formular_aufschluss)

Wie ihr im Bild formular_aufschluss seht nimmt dort der Parameter zwei Werte an. Dieser Parameter ist in der Datenbank an zwei Tabellen gebunden. In einer Tabelle wird der Wert für den Aufschluss eingetragen. Eine zweite Tabelle bezieht sich auf diesen Wert und zeigt den dann an.

Hier mein Beispiel: Bild Beispiel Verwitterung
In der Tabelle OCGT_WEA wird der zutreffende Wert vom Aufschluss eingetragen (1 - 5)
Die Tabelle L_WEA_R wirft dann, abhängig vom Wert 1 - 5, die dazugehörige Bezeichnung aus - in der Spalte WEA ersichtlich (frisch, verfärb, zerfalllen, zersetzt)

Nach diesem Schema müssen so 6 Parameter eingegeben werden.
Wie kann ich nun ein Formular erstellen, in dem für diesen Parameter mehrere Werte wählbar sind??

Ich hoffe so ist jetzt die Grundsatz verständlicher

Oder wäre vl. jemand bereit sich kurz mal die Datenbank anzuschaun (verschicke sie per mail)??

wie gesagt, die Verknüpfungen sind alle gemacht und stimmen. Es fehlt nur das Formular um die Daten effizient eingeben zu können.

Vielen Dank im Vorraus für eure Hilfe und eure Gedanken!!!!



[Anhang gelöscht durch Administrator]

finki

und hier noch das foto von den Beziehungen. Es war insgesamt für einen Post zu groß

[Anhang gelöscht durch Administrator]

DF6GL

Hallo,


ZitatNein es sind keine 1:1 Beziehungen!
Beziehungen sind großteils 1:n! (siehe Bild)


Und was sind das sonst für 1:1-Beziehungen um die Tabelle "outcr" herum ???

Verfrachte alle Felder aus diesen 1-Tabellen nach outcr.

Alle n-Tabellen(daten) zeigst Du mit Hilfe von Unterformularen in einem (Haupt-)Formular mit Datenherkunft zu Tabelle outcr an.


Alle Werte, die aus den n- Tabellen, die an outcr (jetzt noch outcr_gt) hängen , übernommen werden sollen, werden mittels gebundenen Kombifeldern ausgewählt.


Die Beziehungen über nicht-Schlüsselfelder (BLSH_CL in t_BLSH  z. B.) sind ebenfalls zu hinterfragen.

finki

1:1 Beziehung um die Tabelle "OUTCR" gibts ja nur eine, und zwar zu OUTCR_GT.
Und in dieser Tabelle erhält der Datensatz die ID für die restlichen Tabellen, deswegen muss diese Beziehung ja so sein oder?

Geht leider nicht, dass ich die Felder versetzte, da die Datenbank in dieser Struktur bleiben muss.

Die nicht Schlüsselfelder haben schon einen Sinn. Denn beispielsweise wird im Feld BLSH_CL in der Tabelle OCGT_BLSH ein Wert von 1 bis 5 angegeben.
Und in der Tabelle L_BLSH wird dieser Wert einem Wort zugeordnet.

Also du würdest alle Tabellen in Form von Unterformularen in ein Hauptformular der Tabelle OUTCR einfügen oder???