Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Access 2010 - Naturwissenschaftliche Datenbank

Frage Entwicklung Datenbanken

Mitglied: wilkau

wilkau (Level 1) - Jetzt verbinden

10.03.2013, aktualisiert 18:31 Uhr, 3044 Aufrufe, 13 Kommentare

Es handelt sich um eine umfangreiche naturwissenschaftliche Datenbank, in der etwa 6000 Pflanzenarten und 40'000 Funde gespeichert sind. Die Datenbank hat sich über 30 jahre bewährt, doch jetzt kommt ein Abfrageproblem hinzu.

TABELLE ART: Hier sind u.a. 14 Optionsfelder Ja/Nein untergebracht. Sie beschreiben die Höhenstufen, d.h. den Lebensraum einer Art, ausgedrückt in Begriffen wie planar, kollin usw. Bei der Erfassung einer neuen Art werden die Optionsfelder angeklickt. Eine einzige Art kann auf bis zu 8 Höhenstufen vorkommen.

TABELLE HÖHENSTUFEN: Hier sind in 14 Datensätzen neben dem Primärschlüssel 8 Textspalten untergebracht, die Details über Höhenstufen beschreiben. Es geht hier um den textlichen Ausdruck der oben genannten Optionsfelder.

Damit die Datentypen der Schlüssel auf beiden Seiten Zahlen sind, sind neben den oben genannten Optionsfeldern auch die Schlüsselzahlen aus der TABELLE HÖHENSUFEN in einem Zahlenfeld der TABELLE ART ergänzt. Dieses Zahlfeld enthält den Primärschlüssel der TABELLE HÖHENSTUFEN.

Es soll nun eine Abfrage über sämtliche Arten mit den entsprechenden Höhenstufen und den textlichen Ergänzungen aus der TABELLE HÖHENSTUFEN erstellt werden. In dieser Abfrage scheitert sowohl die Entwurfsansicht als auch die SQL-Ansicht. Offensichtlich sind zu viele Felder vorhanden, denn es erscheint die Meldung: "Für Beziehung ist dieselbe Anzahl an Feldern und dieselben Datentypen erforderlich."

Mit einer n:m-Beziehung komme ich auch nicht weiter. Auch nicht mit einer UNION-Abfrage. Wir haben hier die Sondersituation, dass in einer 1:n-Beziehung die 1-Tabelle in der Abfrage 14 mal Informationen an die Abfrage liefern soll. Das heißt, dass in der Entwurfsansicht die TABELLE HÖHENSTUFEN ARTEN 14 mal geöffnet werden muss. Nach 8 Verbindungen stürzt die Fuhre ab.

Weiß jemand einen anderen Lösungsansatz?
Mitglied: 2hard4you
10.03.2013 um 19:49 Uhr
Moin,

Du solltest Dich erst mal mit Grußformeln beschäftigen, bevor Du Dich mit höherer Syntax beschäftigst.

Gruß

24
Bitte warten ..
Mitglied: wilkau
10.03.2013 um 22:44 Uhr
Danke für den Hinweis auf Knigge. Ich bin erst seit heute Abend registriert und habe keine Ahnung über die Gepflogenheiten in administrator.de. Bitte entschuldige meine Unhöflichkeit.
Viele Grüße von wilkau
Bitte warten ..
Mitglied: Dirmhirn
11.03.2013, aktualisiert um 08:54 Uhr
Hi!

mach bitte eine Skizze der Tabellen. Kann leicht sein, dass die GUI damit überfordert ist, aber mit einer SQL-Query sollte das kein Problem sein.

und wie soll die Ausgabe aussehen:
01.
Blume1, planar, blablabla 
02.
Blume1, kollin, dadada 
03.
Blume2, planar, blablabla 
04.
Blume3, kollin, dadada
oder eher so?
01.
Blume1, [(planar, blablabla), (kollin, dadada)] 
02.
Blume2, [(planar, blablabla)] 
03.
Blume3, [(kollin, dadada)]
sg Dirm
Bitte warten ..
Mitglied: wilkau
11.03.2013, aktualisiert um 11:17 Uhr
Hallo Dirmhirn

vielen Dank schon mal für Deine Bemühungen.

Hier ein Auszug aus den beiden betroffenen Tabellen:

TABELLE ART
01 Zähler (AutoWert, Zahl Long Integer)
...
02 Höhenstufe planar ID (Zahl Long Integer). Die ID ist mit dem ID-Schlüssel 01 der Tabelle Höhenstufen identisch
03 Höhenstufe planar (Ja/Nein)
04 Höhenstufe kollin ID (Zahl Long Integer. Die ID ist mit dem ID-Schlüssel 02 der Tabelle Höhenstufen identisch
05 Höhenstufe kollin (Ja/Nein)
06 Höhenstufe submontan ID (Zahl Long Integer). Die ID ist mit dem ID-Schlüssel 03 der Tabelle Höhenstufen identisch
07 Höhnstufe submontan (Ja/Nein)
... weitere Höhenstufen bis 14

TABELLE HÖHENSTUFEN
01 ID (AutoWert, Zahl Long Integer)
02 ID 1 planar (weitere Felder, z.B. Höhengürtel, Höhenlage, Beschreibung)
03 ID 2 kollin (do.)
04 ID 3 submontan (do.)
... weitere Höhenstufen ID 04-14(do.)

Ausgabe:
01 Blume 1 planar kollin subalpin alpin nival usw.
02 Blume 2 planar kollin
03 Blume 3 submontan alpin nival
d.h. zu jeder Art wird angegeben, auf welcher Höhenstufe sie wächst. Die Begriffe sollten tabellarisch für sich alleine stehen.

Ich habe es auch schon mit einer SQL-Abfrage versucht. Gleich wie in der Entwurfsansicht, stürzt die Abfrage nach 8 Feldern ab. 8 Felder kriege ich hin. Mir scheint, dass Access nach 8 Feldern aussteigt. Dafür spricht auch die (verschwommene) Meldung "Für Beziehung ist dieselbe Anzahl an Feldern und dieselben Datentypen erforderlich". Wenn die Höhenstufen nur ein Feld hätten, wäre es leicht. Aber es gibt neben dem Primärschlüssel noch acht beschreibende Felder, die ebenfalls eingebaut werden müssen.

Mein Grundproblem: Normalerweise wählt man in einem Kombinationsfeld einen Begriff, und der Schlüsselwert wird gespeichert. Hier aber habe ich mehrere Begriffe einzugeben (bis zu 14), und es sollten bis zu 14 Schlüsselwerte in die Tabelle eingegeben werden. Deshalb bin ich auf dem Erfassungsformular auf 14 Ja/Nein-Felder ausgewichen und habe zu diesen 14 Ja/Nein-Werten zusätzlich 14 ID Felder geschaffen. In diesen ID Feldern erscheint der entsprechende Schlüsselwert aus der Tabelle HÖHENSTUFEN ARTEN.

Viele Grüße
wilkau
Bitte warten ..
Mitglied: Dirmhirn
11.03.2013 um 13:50 Uhr
Hi!

hmmm in welcher Tabelle steht bei dir jetzt Blume1? fehlt die noch?
mach bitte mal ein ordentliches Beispiel, vor allem wie die Spalten heißen.
(verwend keine umlaute und sonderzeichen in den Tabllen-, Spalten-Namen!)

ich glaub du hast das Tabellen layout bissl verbaut.

01.
BLUMEN 
02.
ID | Name 
03.
---+------- 
04.
1  | Blume1 
05.
2  | Blume2 
06.
3  | Blume3 
07.
 
08.
BLUMEN_AUF_HOEHENSTUFEN 
09.
ID | _ID-Blume | _ID-Hoehe 
10.
---+-----------+--------- 
11.
1  | 1         | 1 
12.
2  | 1         | 2 
13.
3  | 2         | 3 
14.
4  | 3         | 2 
15.
Diese Tabelle bildet die n:m Beziehung ab - die IDs sind Fremdschlüssel auf die andern beiden Tabellen. (Die Spalte ID ist egal, Access erzwingt nur einen Primärschlüssel) 
16.
 
17.
 
18.
HOEHENSTUFEN 
19.
ID | Namehoehe | Lage  | Beschr 
20.
---+-----------+-------+------- 
21.
1  | pallin    | oben  | blavbla 
22.
2  | kollin    | unten | hjk kj 
23.
3  | submon    | innen | ghj gh j
dann kannst du deine Daten wie folgt abfragen (nur grobes Beispiel):
SELECT * FROM hoehenstufen JOIN blumen_auf_hoehenstufen JOIN blumen

Diese Tabelle musst du dann gruppieren, aber GROUP_CONCAT gibt es anscheinend in Access nicht direkt - aber ConcatVar hilft ev. weiter. Musst aber noch googeln.

Mein Grundproblem: Normalerweise wählt man in einem Kombinationsfeld einen Begriff, und der Schlüsselwert wird gespeichert. Hier aber habe ich mehrere Begriffe einzugeben (bis zu 14), und es sollten bis zu 14 Schlüsselwerte in die Tabelle eingegeben werden. Deshalb bin ich auf dem Erfassungsformular auf 14 Ja/Nein-Felder ausgewichen und habe zu diesen 14 Ja/Nein-Werten zusätzlich 14 ID Felder geschaffen. In diesen ID Feldern erscheint der entsprechende Schlüsselwert aus der Tabelle HÖHENSTUFEN ARTEN.

gibts da nicht die mehrfach Kombifelder? sonst mach Checkboxen - musst zur Not per VBA verarbeiten.

sg Dirm
Bitte warten ..
Mitglied: wilkau
11.03.2013 um 16:27 Uhr
Hallo Dirm,
aller Anfang ist schwer. Ich habe eben eine Antwort an Dich geschrieben und "Melden" gedrückt. Das war wohl ein Fehler, denn alles ist weg. Hast du die Nachricht erhalten?
Gruß Wilfried
Bitte warten ..
Mitglied: Biber
11.03.2013, aktualisiert 12.03.2013
Moin wilkau,

willkommen im Forum.


Zitat von wilkau:
Hallo Dirm,
aller Anfang ist schwer. Ich habe eben eine Antwort an Dich geschrieben und "Melden" gedrückt. Das war wohl ein
Fehler, denn alles ist weg. Hast du die Nachricht erhalten?
Gruß Wilfried
Na ja, Datenbanken sind ja nicht so mein Hobby, aber das mit dem Meldebutton könnte ich dir erklären.
Du kennst doch diese gelben Telefonapparate alle 5 Autobahn-Kilometer hinter der Leitplanke?
Wenn du da anhältst, um deiner Mutti telefonisch mitzuteilen, dass es 20 Minuten später wird... klappt das?

--> Ich denke, Dirm hat deine Nachricht (noch) nicht erhalten und wird es in diesem Leben vermutlich auch nicht mehr.

--> Deshalb bitte neu schreiben oder noch guter: Diskutiert doch bitte im Forum weiter.

Es spricht doch nichts dagegen, eine Zuordnungs-Tabelle zusammenzuschrubbeln wie von Dirm angeregt.
Okay, die Anzahl der Tabellen in deinem Datenmodell veranderthalbfacht sich auf einen Schlag.

Aber der Nutzen ist ja nicht von der Hand zu weisen.

Denn selbst Access 2010 (ein Produkt des 21. Jahrhunderts!!) kann laut M$-Produktblatt maximal 16 "Beziehungen" in einer Query handeln.
*schenkelklopf*

Da bist du mit deinen Heute-schon-14-Joins definitiv an der Das-kann-ich-so-nicht-dauerhaft-einsetzen-Grenze.

Grüße
Biber
Bitte warten ..
Mitglied: Dirmhirn
12.03.2013 um 11:26 Uhr
Hi!

Tut's doch nicht immer alle verschrecken Ist ja der aller erste Beitrag.

OT:
Das Problem an Access ist, dass es eher für kleine Projekte gedacht ist - aber oft für alles eingesetzt wird oder mit der Zeit wächst und nie ersetzt wird.

Ein großes Wirtschaftsinstitut in Ö hat über Jahre eine Access DB mit ihren Kundendaten "gepflegt". Am Ende hatte das Hauptformular 5 Reiter mit je 50 Formularelementen. Eines Tages kam das Ding nicht mehr hoch und dann war plötzlich Budget für das neues da...

und noch ein "Nachteil" an Access - es werden dadurch MAs ohne DB Know-How zur DB Entwicklung "gezwungen" - "is ja eh Office"

Andererseits unsere Sekretärin verwaltet sich ihre Adressen in Access, da kann sie sich alles zusammenklicken wie sie will und die IT hat kein Problem damit

sg Dirm
Bitte warten ..
Mitglied: wilkau
12.03.2013 um 15:11 Uhr
Hallo Dirm,
da meine Nachricht an Dich beim "Biber" gelandet ist, kurz Folgendes:
Ich habe einen Print Screen der Beziehungen der ganzen DB erstellt. Ich würde ihn Dir gerne per Mail schicken, da hier der Raum zu klein ist. Dann hast Du die Übersicht über das, was ich versuche aufzubauen, aber nur, wenn Du magst.
Gruß Wilfried
Bitte warten ..
Mitglied: wilkau
13.03.2013 um 15:21 Uhr
Hallo Dirm,
nun bin ich doch sehr verunsichert. Die letzten zwei oder drei Nachrichtn sind verschwunden. Ich habe Dir gestern Abend eine lange Erklärung geschickt, nun ist alles weg. Wie kann das passieren?
Gruß wilkau
Bitte warten ..
Mitglied: wilkau
14.03.2013 um 11:45 Uhr
Hallo Dirm,
nun habe ich die verschwundenen Nachrichten gefunden. Ich habe sie unter persönliche Benachrichtigungen geschickt, statt hier im Forum zu veröffentlichen.
Gruß wilkau
Bitte warten ..
Mitglied: NetWolf
14.03.2013 um 19:14 Uhr
Grüß Gott,

nun muss ich doch mal fragen, was du eigentlich als (End-)Ergebnis benötigst.

Sollte es etwa ein Bericht sein? Denn der wäre vermutlich die Löung deiner Problem.


Grüße aus München
Wolfgang(Netwolf)
Bitte warten ..
Mitglied: wilkau
14.03.2013, aktualisiert um 20:52 Uhr
Hallo NetWolf,

Es soll eine Abfrage sein. Sie muss nicht unbedingt ausgedruckt werden. Falls es mit einem Bericht besser lösbar ist, warum auch nicht. Der Bericht ist die suboptimale Lösung, vergleichbar etwa jener der Bayern gestern Abend.

Ich weiß jetzt nicht, ob Du alle Informationen verfügbar hast, die ich an Dirmhirn geschickt habe. So habe ich die gesamte Beziehungsgrafik dieser DB per Mail an ihn geschickt. Wenn Du mir Deine Mailadresse gibst, schicke ich dir eine Kopie.

Gruß wilkau
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Datenbanken
gelöst Syntaxfehler VBA Access 2010 (6)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
gelöst Access 2010 Abfrage erster Werktag (10)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
gelöst Access 2010 komplizierte Abfrage (3)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
gelöst Hilfe bei "Distinct" Befehl in Access 2010 (3)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...