PDA

Vollständige Version anzeigen : Problem beim Editieren von Feldern nach Sichtbarmachen


Theobald Tiger
17.01.2008, 09:19
Hallo zusammen,

vielleicht kann mir hier jemand helfen. Ich habe folgendes Problem:
Ich rufe in Access 2003 aus einem Formular ein anderes Formular auf, in dem ich den im ersten Formular selektierten Datensatz bearbeiten möchte (also Filteransicht: 1 Datensatz).
Dieses Formular basiert auf einer Abfrage mit mehreren verknüpften Tabellen. Im Formular sind einige nicht sichtbare Felder. Diese mache ich über einen Button-Klick sichtbar (Me!Feldname.Visible = True), um sie dann auch editieren zu können (sie beziehen sich auf eine eigene Tabelle).
Jetzt taucht das Problem auf: Ich kann die Felder, die sichtbar gemacht wurden, nicht editieren. Es erscheint keine Fehlermeldung, der Cursor steht auch im Feld, aber außer einem Biep passiert nichts. Vergleichbare Felder, die genauso verknüpft sind, aber eben nicht erst sichtbar gemacht werden, lassen sich problemlos editieren.

Hat jemand eine Idee?

Vielen Dank,

mfG Theo

agmesia
17.01.2008, 10:02
was sagt er denn wenn du die "gedachten" unsichbaren felder mal sichbar machst, von anfang an ohne den button.
nur so als test, macht er dann den selben mist oder funzt es dann wie bei den anderen auch?

Theobald Tiger
17.01.2008, 12:38
Hallo Marco,

erstmal danke für Deine Meldung. Nein, auch wenn ich den Knopf wegmache und alle Felder sichtbar hat er das Problem. Mir ist aber beim Spielen noch etwas aufgefallen. Er scheint das Problem nur bei vorher nicht gefüllten Feldern zu haben. Das Editieren von bestehenden Daten klappt. Das heißt, wenn ich einen Datensatz bearbeiten will, der schon Daten hat, die in den per Knopf zu aktivierenden Feldern liegen, dann geht es. Wenn ich aber diese Daten zusätzlich eintragen will, dann geht es nicht.
Ich habe dann nochmal den Open-Command gecheckt. Ich öffne die Form mit ihren voreingestellten Property-Settings. Die sagen "Edits allowed", aber "Additions not allowed", weil ich in dieser Form wirklich keine Hinzufügungen von neuen Datensätzen erlauben wollte. Wenn ich das Hinzufügen erlaube, dann geht es scheinbar (hab noch nicht ausführlichst getestet). Kann das das Problem sein? Es ist ja eine Hinzufügung in der abhängigen Tabelle, obwohl in der Haupttabelle ja eigentlich bloß ein "Edit". Ich füge ja nur im Feld ID (=Link zur verknüpften Tabelle) einen Wert ein.

Wenn das die Lösung sein sollte, daß das Formular Hinzufügungen erlauben muß, damit diese Edits klappen sollen, gibt es dann eine Möglichkeit, das Hinzufügen von gänzlich neuen Datensätzen zu unterbinden ?

MfG,
Theo

agmesia
17.01.2008, 12:56
es könnte natürlich daran liegen, solltest du auf jeden fall nochmal testen.

wie es ist wenn man Allowadditions=false hat, und dann "an sich" einen wert in eine weitere tabelle hinzufügt weis ich nicht.
was du ja auch mal prüfen kannst wäre deine abfrage.
wenn du dir deine abfrage welche dem formular als datensatzherkunft ganz normal in der tabellenansicht anschaust, hast du dann ganz unten die leere zeile fuer neue eintragungen oder nicht?

mehr fällt mir gerade net ein, bin selber kein genius^^

achtelpetit
17.01.2008, 16:27
Bist Du sicher, daß der Abfrage, die Deinem Formular zugrundeliegt, überhaupt weitere Datensätze hinzugefügt werden können?
Wenn ich das Hinzufügen erlaube, dann geht es scheinbar (hab noch nicht ausführlichst getestet).
Scheinbar? Ja oder Nein?

gpswanderer
17.01.2008, 16:44
Hallo,
das hat mit dem Sichtbarmachen nichts zu tun. Du hast eine nichtaktualisierbare Abfrage. Das ist bei bestimmten Abfragen völlig normal. Gruppierte Abfragen, Union Abfragen, Abragen mit rekursiven Beziehungen usw. sind nicht aktualisierbar.

Hier gibt es Infos dazu:
--- hier klicken -- (http://office.microsoft.com/de-de/assistance/HP030702011031.aspx) und klicke anschließen auf:

"Spezielle Abfragetypen"/"Auswahlabfragen"/"Ich kann Daten aus einer Abfrage nicht aktualisieren"
Dort findest Du Informationen dazu, was zu beachten ist, damit Abfragen aktualisierbar sind.

Aber verwende nicht die dort genannte Lösung: Datensatzgruppentyp auf Dynaset (Inkonsistente Aktualisierungen) einstellen. Das ist keine gute Lösung, versuche erst die Ursache zu finden.

ebs17
17.01.2008, 16:46
Hallo und willkommen im Forum!

Du müsstest bei Deiner Konstellation vor dem Öffnen des Bearbeiten-Formulars sicherstellen, dass in allen Tabellen, die dem Datensatz zugrundeliegen, bereits ein entsprechender Datensatz angelegt wurde (über Pflichtfelder?, Anlegen per VBA o.ä.), so dass Du Bearbeiten kannst.

Theobald Tiger
17.01.2008, 16:53
Hallo Marco,

hab nach einigem Rumprobieren jetzt eine Lösung gefunden. Das Problem lag in der Eigenschaft RecordSetType. Offensichtlich können die verlinkten Tabellen nur editiert werden, wenn diese Eigenschaft auf "Dynaset (inconsistent updates)" steht. Frag mich nicht warum, soweit bin ich in der Recherche noch nicht, bin erstmal froh, daß es jetzt überhaupt funktioniert.
Dir vielen Dank für Deine freundliche Hilfe. Auch wenn es manchmal doof klingt: Es hilft oft doch, wenn man mit anderen drüber spricht! :)
Hab hier leider niemanden, der solche Probleme versteht. ;)

MfG
Theo

Theobald Tiger
17.01.2008, 17:02
Hallo achtelpetit,
sorry, habe nicht gewußt, daß ich dauernd aktualisieren muß, um neue Antworten zu sehen. Ich habe mittlerweile eine Lösung gefunden (s.u. RecordsetType = Dynaset (inconsistent update)), die aber wie ich aus einem anderen Beitrag sehe nicht die beste zu sein scheint. Werde noch weiter recherchieren. Aber um auf Deine Frage zurückzukommen: Nein, in der Tabellenansicht der Abfrage kann man auch nicht editieren, nur neu anlegen.

Vielen Dank für Deine Hilfe

MfG Theo

Theobald Tiger
17.01.2008, 17:08
Hallo Klaus,

erstmal danke für das "Willkommen". Sorry, habe nicht gewußt, daß ich dauernd aktualisieren muß, um neue Antworten zu sehen. Bin inzwischen auch auf die Antwort gekommen, die Du als keine gute Lösung bezeichnest (warum, wenn ich fragen darf?). Auf jeden Fall vielen Dank für den Link, werde mich morgen damit auseinandersetzen.

MfG,
Theo

Theobald Tiger
17.01.2008, 17:14
Hallo Eberhard,

erstmal danke für das "Willkommen".
Eben das will ich genau nicht. In den verlinkten Tabellen soll nur dann ein Datensatz angelegt werden, wenn ich ihn wirklich brauche. Wenn das schon bei der Ersteingabe des Hauptdatensatzes klar ist, kann ich im Neuer Datensatz-Modus alle Felder füllen. Erst wenn ich nachträglich einen bestehenden Hauptdatensatz editieren will (d.h. einen neuen Datensatz in der verlinkten Tabelle anlegen), dann trat das Problem auf.
Ich bin jetzt auf die Lösung gekommen, es mit RecordsetType = Dynaset (inconsistent updates) zu probieren. Dann geht es. Soll aber nicht die beste Lösung sein, werde mal weitersuchen.

Danke für Deine Hilfe.

MfG,
Theo