PDA

Vollständige Version anzeigen : Problem bei Löschoperation


MC-Bernd
26.03.2006, 21:22
Hallo,

hätte mal noch ne Frage. :(

Und zwar. Hab verknüpfte Tabellen in einem Formular.

Ich hab jetz wie gewohnt (und wie ich auch schon oft gemacht hab) ganz einfach einen "Lösch"-Button mit dem Assistenten gemacht.

Wenn ich den Button aber drücke kommt die Fehlermeldung:
"ISAM untersützt das Löschen von Daten in verknüpften Tabellen nicht"

Was muss ich machen, damit das Löschen untersützt wird?

Ganz nebenbei: Was muss ich noch weiter tun, damit die verknüpften Datensätze gelöscht werden.

Also ich hab quasi Grundinformationen und dazugehörig in Unterformularen in einerm Registersteuerelement zugehörige Informationen aus anderen Tabellen.

Wenn ich den Mitarbeiter lösche, sollen eben die zugehörigen Datensätze in den anderen Tabellen auch gelöscht werden!

Ich hoffe mir kann jemand weiterhelfen!

MfG

Bernd

elmar
26.03.2006, 21:23
Hast Du bei den Beziehungen die Löschweitergabe eingestellt?

MC-Bernd
26.03.2006, 21:29
An das hab ich auch sofort gedacht.

Da hab ich mir aber grundsätzlich schon mal was gefragt.

Nämlich folgendes:
Ich habe glaub ich die Tabellen nicht direkt verknüpft.

Es ist vielmehr so das ich zuerst das Formular erstellt habe und dann die Felder für die Grundoperationen.
Weiter habe ich dann die Felder für die zusätzlichen Informationen angefügt.

Die Daten werden nun auch optimal angezeigt.

Im Beziehungen-Fenster finden sich aber keine Striche und somit auch keine Verknüpfungen oder???

Die Felder sind über eine Nummer verbunden (aber nicht die ID).

Würde es was helfen wenn ich noch enstprechende Beziehungen herstelle?

elmar
26.03.2006, 21:35
Rate auf jeden Fall zur ordentlichen Verknüpfung der Tabellen! (unter Beachtung der relationalen Integrität)

MC-Bernd
26.03.2006, 21:41
Da hast du wohl eindeutig recht.

Werd das gleich noch machen.

Die Faulheit siegt halt leider zu oft...

rapunzel
26.03.2006, 21:54
Die Faulheit siegt halt leider zu oft...
Das hat IMHO nichts damit zu tun, sondern mit einer grundsätzlich falschen Vorgehensweise zur Datenbankerstellung ;)

Tabellen - Beziehungen - (Abfragen) - Formulare - Berichte

MC-Bernd
26.03.2006, 22:04
Jetzt habt ihr mich aber sauber verunsichert.

Jetzt schildere ich mal ausführlichst mein Problem.

Hab eine Exceldatei aus der ich Grundinformationen übernehme.
Dazu noch weitere Informationen aus einer Accessdatenbank.

Diese waren mir schon vorgegeben.

Die Tabellen enthalten alle eine Nummer, die diese verbindet.

In einem Formular werden eben diese Informationen gesammelt wiedergegeben.

Quasi die Grundinformationen in Feldern und die zugehörigen Informationen aus den Tabellen der *.mdb-Datei in Unterformularen in einem Registersteuerelement.

Ich hab mir schon Gedanken gedacht, aber Beziehungen, so dachte ich mir, seien hier fehl am Platz zumal all diese Informationen in meine Programm quasi "zusammengesammelt" werden.

Irgendwie fehlt dann hier das Verständnis.

Was muss ich denn anders machen um nun hier die Löschweitergabe noch hinzukriegen?

rapunzel
26.03.2006, 22:15
Ja schon, aber die Daten von Excel werden doch auch in Tabellen geschrieben, oder lieg ich falsch?

Nachdem die Tabellen offensichtlich untereinander eine gemeinsame Nummer besitzen, zumindestens verstehe ich diesen Satz Die Tabellen enthalten alle eine Nummer, die diese verbindet. so, gibt es ja schon Gemeinsamkeiten. Kannst Du nicht über diese Verknüpfung (welcher Art ist die? 1:1, 1:n..) die Löschweitergabe aktivieren?

Vielleicht kannst mal einen Screenshot der Beziehungen bzw. die Tabellen im Beziehungsfenster posten?

MC-Bernd
26.03.2006, 22:24
Ja stimmt. Die Daten aus Excel liegen auch in einer Tabelle vor.

Genau. Die Tabellen haben alle eine Nummer als Gemeinsamkeit.

Die Beziehung ist 1:1 denk ich. Mann Mann Mann. Das ist schon alles so lang her.
Kurze Überprüfung ob ich schon das richtige meine.

In jeder Tabelle gibt es nur einen Datensatz mit dieser Nummer.
Wenn es mehrere wären dann wärs 1:n richtig???

Da dies nicht der Fall ist müsste es 1:1 sein...

Aber da ist das nächste was mir Kopfweh bereitet.
Im Beziehungsfenster sind gar keine Beziehungen hergestellt. Wenn ich ganz normal welche herstellen will (also das geht noch) dann sind alle "Häkchen" nicht anklickbar und bei Beziehungstyp steht "Undefiniert".

Hab jetzt bei nem anderen Projekt von mir gescahut. Da hab ich ne 1:n Beziehung mal gemacht und konnte auch die Löschweitergabe aktivieren. Da hab ich aber auch alle Tabellen selber gestaltet.

Ich denke der Wurm liegt einfach darin, das ich die Beziehung irgendwie falsch herstelle.

Deshalb ist wahrscheinlich die Frage: Wie stelle ich hier eine anständige 1:1 Beziehung her???

elmar
26.03.2006, 22:43
Wie stelle ich hier eine anständige 1:1 Beziehung her???Lege mal eine ganz neue, leere DB an. Dann importierst Du aus Deiner jetzigen DB die beiden Tabellen, die in einer 1:1 Verknüpfung stehen bzw. stehen sollen.
Beim Import-Dialog klickst Du aber auf die Schaltfläche "Optionen" und wählst dann die Option "Nur Definitionen". Außerdem entfernst Du das Häkchen bei "Beziehungen", falls dort etwas angehakt sein sollte. Wähle die gewünschten Tabellen aus und klick dann auf OK.
Nun stellst Du im Fenster "Beziehungen" nach dem hinzufügen beider Tabellen eine 1:1 Beziehung her. Sie scheint nach Deiner Erläuterung wohl die zutreffendsde Form zu sein.

MC-Bernd
26.03.2006, 22:55
Hab ich nun alles gemacht.

Aber irgendwo hakt es bei mir grad gewaltig...

Eine 1:1 Beziehung stelle ich doch einfach her indem ich das eine Feld auf das zugehörige der anderen Tabelle ziehe. Wenn ich das mache kommt aber als Typ wie oben schon erwähnt "Undefiniert" und keine Optionen sind wählbar.

Liegt das vielleicht irgendwie an der Struktur der Tabellen?

EDIT:
Kann das vielleicht irgendwie mit Primärschlüsselen zusammenhängen? Die Mastertabelle (also die mit dem Excel-File verknüpft ist) hat keinen. Die anderen schon

elmar
26.03.2006, 23:00
Sende mir doch mal (db_forum@ewetel.net) die DB mit den importierten, leeren Tabellen zu, das will ich mir mal ansehen. Kannst sie auch hier als Anhang gezippt einem Beitrag anfügen. Schreib dabei, welche Felder betroffen sind.
###
Klar liegt das daran!!

MC-Bernd
26.03.2006, 23:30
Aber wie kann ich der verknüpften Excell-Tabelle nen Primärschlüssel verpassen?

elmar
26.03.2006, 23:35
Lieber Bernd, das geht leider garnicht!
Ich würde die Daten der Excel-Tabelle in eine Access-Tabelle importieren. Dann hast Du die Probleme nicht und die Löschweitergabe geht dann auch.

elmar
26.03.2006, 23:46
Des weiteren ist jetzt bei Erstellung einer Beziehung die Auswahl der referenziellen Integrität möglich.Frage: Welche Felder??
Als die Tabellen noch Informationen enthalten haben, war dies nicht möglich.Das liegt daran, dass in den verknüpften Feldern der Tabellen definitiv nicht die gleichen Werte drinstehen oder der Felddatentyp unterschiedlich ist. Gab es beim Versuch, die ref. Integr. zu legen, nicht eine Fehlermeldung?? Wie sah die aus??

MC-Bernd
27.03.2006, 06:41
Hallo Elmar,

das Feld über die die Verknüpfung gemacht wird, ist in einem Fall die Personalnmr und im anderen die Personalnummer.

Beim Versuch die referenzielle Integrität zu belege kam:
"Es wurde kein eindeutiger Index für das in Beziehung stehende Feld der Primärtabelle angegeben."

Ich werde jetzt mal versuchen das irgendwie anders in den Griff zu kriegen!

Trotzdem VIELEN Dank für eure (bzw. insbesondere deine Elmar) Mühen

MfG

Bernd

rapunzel
27.03.2006, 07:21
Na, da wurde ja gestern noch fleißig weitergeforscht :)
Bernd, es ist egal, wie das Feld heißt, wichtig ist, daß die Primärtabelle einen Schlüssel als Autowert, und in den anderen der Fremdschlüssel eine Zahl vom Typ Long Integer ist. Dann kannst Du die Verbindung herstellen. Wird über 2 Autowertfelder verknüpft, so entsteht eine 1:1 .