Zum Inhalt springen

Access 2000 DB-Spezial


Orchidee

Empfohlene Beiträge

Hallo!

Da ich mittlerweile ziemlich ratlos bin beschreibe ich hier erst mal die Ausgangssituation:

Meine Datenbank wird auf Access 2000 erstellt und läuft auf einem Win NT Rechner.

Die Datenbank besteht aus 3Tabellen: einer Master und zwei Child Tabellen genannt „Grunddaten“, „Selbst“ und „Kauf“. Die beiden Child Tabellen enthalten jeweils eine Referenz auf die Tabelle Grunddaten.

Die Verknüpfung der Tabelle wurde über die Auswahlabfrage hergestellt. Die Verknüpfungseigenschaften die ich eingestellt habe ist: „Beinhaltet alle Datensätze aus Grunddaten und nur die Datensätze aus der Child bei denen die Inhalte der Verkn......“

Es wurden alle Tabelleninhalte in die Abfrage aufgenommen.

Die Oberfläche wurde mit VBA erstellt. Bei Datenherkunft wurde der Name der Abfrage eingegeben.

Das Formular ist als Ausgangssituation für Eingeben, Bearbeiten, Löschen gesperrt. Hierfür wurden eigene Funktionen erstellt.

Und nun, das eigentliche Problem:

1. Direkt nach dem erstellen der Funktion konnte ich in alle drei Tabellen über mein Formular Daten neu anlegen. Einen Tag später kann ich nur noch in die Tabellen „Grunddaten“ und „Kauf“ Daten eingeben.

2. Wenn ich versuche in die Tabelle „Selbst“ Daten einzugeben und diese dann zu sichern kommt ein Fehler. (Eine von mir geschriebene Meldung die auf einen anderen Fehler gemünzt ist.

2a. beim Sichern erscheint der Laufzeitfehler „2105“ Sie können nicht zum angegbenen Datensatz springen

im Code erscheint: acNewRec = 5

Hat jemand von euch zu einem der Punkte eine Idee?????

Ist das ein Datenbankfehler oder ein Programmierfehler????

Ich weis im Moment nicht mehr mal wo ich noch ansetzten soll.

Herzlichen Dank

Orchidee

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Frank,

ja, kann ich. Und zwar in alle drei Tabellen.

Hättest du eine Idee, was es sein könnte????

Danke

Orchidee

Nachtrag: Ich kann zwar in die Tabellen selbst etwas eintragen, dies ist mir über mein Fromular dann nicht mehr möglich. Es erscheint der Laufzeitfehler '2105': Sie können nicht zum angegebenen Datensatz springen.

Gehe ich direkt auf den Code erscheint: acNewRec = 5

Link zu diesem Kommentar
Auf anderen Seiten teilen

Manchmal hilft es, einen anderen Typ des Recordsets zu definieren. Ich hatte mal ein ähnliches Problem beim Recordset vom Typ snapshot.

Guck mal in die Hilfe über Recordsets. Da steht mehr dazu.

Auswendig weiß ich das nun auch nicht mehr!

Dann müssen die Tabellen einen Primärschlüssel haben. Aber wenn du die Tabellen direkt ändern kannst, müßte das auch über ein Recordset gehen.

Viel Glück!

siga

Link zu diesem Kommentar
Auf anderen Seiten teilen

Guten Morgen!

Die Veränderung der Recordset’s hab ich versucht, ohne Ergebnis.

Wäre es ev. eine Lösung für mein Problem zwei Abfrage zu definieren und diese bei der Neuanlage des Datensatzes jeweils explizit aufzurufen?

Noch eine seltsame Erscheinung: Gestern Abend ging es bei einem teil der DB Kopien wieder. Dafür kann ich jetzt in Kaufsoftware nichts mehr eingeben?!?!?! :confused:

Grüße

Orchidee

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ich mir dein Problem nochmal durch den Kopf gehen lasse, so könnten hier mehrere Fehler aufeinander treffen.

Dein Problem ist nun, diese Fehler so einzugrenzen, daß man damit was anfangen kann.

Ich rate dir, nochmal bei den "reinen" Tabellen anzufangen, ohne Formulare usw. Kannst du die Tabellen direkt per Eingabe ändern?

Wenn ja, öffne eine Abfrage und versuche dann, die Tabellen zu ändern, DS hinzuzufügen usw.

Wenn das funktioniert, gehe weiter zu den Formularen.

Noch ein Tipp: immer eine Änderung auf einmal und aufschreiben, was du geändert hast! So kannst du immer nachvollziehen, welche Version noch funktionierte und welche nicht.

Deine Äußerung: an einem Tag funktionierte dies und das und am nächsten nicht mehr, läßt darauf schließen, daß irgendwelche Verknüpfungen (meine Vermutung jetzt mal) nicht aktualisiert wurden.

Vielleicht versuchst du es nochmal, dann hat man wenigstens eine vernünftige Fehlermeldung, bzw. kann in etwa nachvollziehen, was der Fehler sein könnte. Im Moment blicke ich da ehrlich gesagt nicht durch.

Wird schon schiefgehen!

Gruß Siga

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für deine Tipps!

Ich habe jetzt eine neue Datenbank angelegt bei der ich lediglich die Tabellenstruktur ohne Inhalte aus einer bereits bestehenden Tabelle importiert habe. Die Eingabe von Daten war ohne Probleme möglich.

Im nächsten schritt ist eine Abfrage angelegt worden. Ein anlegen oder Ändern von Daten ist hier bereits nicht mehr möglich.

Weiß jedoch nicht ob dies hier überhaupt möglich sein sollte?!

Dementsprechend ist auch die Eingabe in eine Formular nicht möglich.

Grüße

Orchidee

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab nun die Verschiedene "Stände" geprüft und festgestellt, das ein teil der Tabellen eine Sperrung enthält ein anderer Teil nicht. Konnte von den Tabelleneistellungen keinen Unterschied feststellen.

Unter verwendung der Tabellenstruktur der Nicht gesperrt ist, gibt es auch unter Abfragen keien Probleme.

Grüße

Elvira

Eine frage bleibt: Müsste nicht durch die Abfrage die ID meiner Grunddaten auch ich die Referenz der Child tabellen übernommen werden?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Na, dann bist du ja jetzt auf dem richtigen Weg.

Wenn du einen DS hinzufügen willst, muß das über eine Anfügeabfrage möglich sein (Insert into....)

Was meinst du mit Sperrung? Hast du eine Sperrung selbst definiert, oder schließt du aus der Tatsache, daß sich kein DS hinzufügen läßt, daß die Tabelle gesperrt ist?

Grüße

Siga

Link zu diesem Kommentar
Auf anderen Seiten teilen

mmmmh, also ich versuche mal zusammenzufassen, was ich verstanden habe:

(Informatiker denken nur schrittweise, deshalb immer alles ganz genau und gaaanz langsam erklären... );) ;)

Du hast drei Tabellen, zwei mit Daten und eine Referenz-Tabelle.

In allen dreien kannst du Daten direkt eingeben.

Wenn du die Referenz-Tabelle öffnest und DS eingibst, erscheinen diese dann auch in den anderen Tabellen?

Du hast eine Abfrage erstellt. Diese ist in der Datenblatt-Ansicht jedoch zur Eingabe gesperrt?

Dann dürftest du auch auf direktem Wege nichts ändern können.

Vielleicht ist die Referenz nicht richtig definiert.

Auch dabei Schritt für Schritt vorgehen. Mehr kann ich im Moment nicht raten. Hab versucht, deine DB aufgrund deiner Beschreibung nachzubauen; bei mir klappt das jedoch alles....

Ich würde noch nicht an den Formularen rumkaspern, solange die Abfragen nicht änderbar sind. Erst muß das funktionieren!

Wünsche dir viel Glück bei der Fehlersuche!

Gruß Siga

Link zu diesem Kommentar
Auf anderen Seiten teilen

Grunddaten

Grunddaten_ID

(weitere Daten)

Selbst

Selbst_ID

Ref_Grunddaten_ID

(weitere Daten)

Kauf

Kauf_ID

Ref_Grunddate_ID

(weitere Daten)

Beziehung:

in Worten: In Grunddaten muß ein Datensatz vorhanden in den beiden anderen kann kein oder ein Datensatz enthalten sein.

Bildlich:

1_________________0..1

Grunddaten________Kauf; Selbst

Alle drei Tabelle enthalten weitere Daten. Ist da vielleicht schon der erste Denkfehler???

Ich kann in alle drei Tabelle direkt Daten eingeben.

Die ID wird an die „Kauf“ weitergegeben, an die „Selbst“ nicht.

Meiner Meinung nach liegt da der Hund begraben. Habe aber im Moment keine Idee wo oder wie ich das ändern kann.

Danke und gute Nacht

Orchidee

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also, liebe Orchidee, ich glaube, wir packens jetzt :)

Ich habe deinen Fehler nun nachvollziehen können. Hier hab ich nun eine Version, die funktioniert. Du mußt dann entscheiden, ob du sie so übernehmen kannst oder noch anpassen mußt:

Tabelle Grunddaten

------------------------------

Grunddaten_ID (P-Schlüssel AutoWert)

Kauf_ID (Zahl)

Selbst_ID (Zahl)

weitere_Daten (Text)

Tabelle Kauf

-----------------------

Kauf_ID (P-Schlüssel AutoWert)

weitere_kauf_daten (Text)

Tabelle Selbst

-----------------------

Selbst_ID (P-Schlüssel AutoWert)

weitere_selbst_daten (Text)

Bei den Beziehungen muß Kauf_ID mit Kauf_ID in Grunddaten und Selbst_ID mit Selbst_ID in Grunddaten verknüpft werden. Welche Verknüpfung du da am besten benötigst, mußt du selbst ausprobieren. Zum Testen hab ich die einfach ohne ref.Integrität mal miteinander verknüpft.

Eine Abfrage, die nun die Tabellen Selbst und Kauf abfragt, ist nun änderbar. Wenn ich in diese Abfrage neue Daten eingebe, so werden diese Daten in allen drei Tabellen übernommen.

Ich hoffe, das hilft dir weiter. Nun mußt du das nur irgendwie deiner Sache anpassen....

Schreib dann mal, ob's geklappt hat!

Grüße Siga

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke Siga!

Die von dir vorgeschlagene Variante hatte ich ganz am Anfang bereits. Sie hat nur einen „kleinen“ Schönheitsfehler. Wenn ich Referentielle Integrität angebe (was ich ja zur Löschweitergabe brauche) muss in beiden „Verweisschlüsselfeldern“ ein Wert stehen. Das wiederum kann ich aber nicht brauchen, da ich ja entweder in Selbst ODER in Kauf was eingeben will.

Dies war auch der Grund weshalb ich mich dann für die Ref. auf die Grunddaten_ID entschieden hatte.

Dieses Feld enthält immer einen Wert.

Danke piomode1!

Da war ich wirklich auf dem Schlauch gestanden!!

Grüße

Orchidee

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...