Orchidee Geschrieben 6. Dezember 2002 Geschrieben 6. Dezember 2002 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 Zitieren
robotto7831a Geschrieben 6. Dezember 2002 Geschrieben 6. Dezember 2002 Hallo, kannst Du denn in den Tabellen selbst was eintragen? Frank Zitieren
Orchidee Geschrieben 9. Dezember 2002 Autor Geschrieben 9. Dezember 2002 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 Zitieren
siga Geschrieben 9. Dezember 2002 Geschrieben 9. Dezember 2002 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 Zitieren
Orchidee Geschrieben 10. Dezember 2002 Autor Geschrieben 10. Dezember 2002 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 Zitieren
Orchidee Geschrieben 10. Dezember 2002 Autor Geschrieben 10. Dezember 2002 Eine weitere Frage: mit welchem Befehl sichert man die Daten, wenn man das für den Schreibmodus öffnen mit dem Befehl AllowAdditions verwendet? Ich hab das Sichern bisher mit refresh durchgeführt. Dies bereitet mir nun aber auf einmal ebenfalls Probleme. Grüße Orchidee Zitieren
siga Geschrieben 10. Dezember 2002 Geschrieben 10. Dezember 2002 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 Zitieren
Orchidee Geschrieben 10. Dezember 2002 Autor Geschrieben 10. Dezember 2002 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 Zitieren
Orchidee Geschrieben 10. Dezember 2002 Autor Geschrieben 10. Dezember 2002 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? Zitieren
siga Geschrieben 10. Dezember 2002 Geschrieben 10. Dezember 2002 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 Zitieren
Orchidee Geschrieben 10. Dezember 2002 Autor Geschrieben 10. Dezember 2002 In der Datenbank kann ich Datensätze eingeben. Sperrung heist für mich, das ich bereits in der Abfrage nichts mehr eingeben kann. Ich kann jedoch keinen Zusammenhang zwischen der Sperrung des Formulares und dem nicht schreiben oder ändern können der Datenbank feststellen. Grüße Orchidee Zitieren
siga Geschrieben 10. Dezember 2002 Geschrieben 10. Dezember 2002 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 Zitieren
Orchidee Geschrieben 10. Dezember 2002 Autor Geschrieben 10. Dezember 2002 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 Zitieren
piomode1 Geschrieben 11. Dezember 2002 Geschrieben 11. Dezember 2002 Hi, Orchidee! Falls sich das VBA-Problem "Datensatz speichern" noch nicht erledigt hat: DeinRecordset.Update Zitieren
siga Geschrieben 11. Dezember 2002 Geschrieben 11. Dezember 2002 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 Zitieren
Orchidee Geschrieben 12. Dezember 2002 Autor Geschrieben 12. Dezember 2002 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 Zitieren
Empfohlene Beiträge
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.