Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Mykis am Juli 09, 2014, 21:43:41

Titel: Editieren nach Sortierung
Beitrag von: Mykis am Juli 09, 2014, 21:43:41
Hallo Access Freunde,

in Access 2003 kann ich in einem Endlosformular in Tabellenansicht nach der Sortierung eines Feldes andere Felder editieren. Mit Access 2010 kommt da der Hinweis "Diese Datensatzgruppe kann nicht aktualisiert werden". Hat Microsoft da was verändert oder muß ich was umprogrammieren. Wenn ich den Recordsettyp auf Dynaset (inkosistente Aktualisierung) setze, kann ich zwar wieder editieren aber dafür keinen kompletten Datensatz mehr löschen!

LG
Frank
Titel: Re: Editieren nach Sortierung
Beitrag von: MaggieMay am Juli 09, 2014, 22:10:20
Hallo,

die Aktualisierbarkeit hängt in der Regel von der Art der Abfrage ab und nicht von der Art der Formularansicht.
Kann es sein, dass du da etwas verwechselt hast?

Ansonsten muss ich sagen, dass mir diesbezügliche Unterschiede zwischen A2003 und A2010 nicht bekannt sind.
Titel: Re: Editieren nach Sortierung
Beitrag von: Mykis am Juli 09, 2014, 22:22:11
Hallo MaggieMay,

die gleiche Datenbank funktioniert unter Access 2003 und unter Acces  2010 tritt das Problem auf. Die Abfrage, auf der das Formular basiert, reagiert ebenfalls so.

Vielen dank für deine Antwort
Frank
Titel: Re: Editieren nach Sortierung
Beitrag von: MaggieMay am Juli 09, 2014, 23:28:05
Dann solltest du uns doch vielleicht mal den SQL-Code der Abfrage zeigen, oder wie sonst sollte man sich dem Problem nähern?
Titel: Re: Editieren nach Sortierung
Beitrag von: Mykis am Juli 10, 2014, 17:33:14
Hallo MaggieMay,

SELECT DISTINCTROW Fundorte_komplett.Fundort, beobachtung.datum2 AS bis, beobachtung.datum1 AS von, beobachtung.nr_beob, Fundorte_komplett.mtb
FROM beobachtung INNER JOIN Fundorte_komplett ON beobachtung.nr_fundort = Fundorte_komplett.nr_fundort
WITH OWNERACCESS OPTION;


Das wäre ein SQL-Code einer der vielen Abfragen, die unter Access 2010 das Problem haben.
Wenn ich das Feld "Fundort" sortiere, läßt sich das Feld MTB nicht mehr aktualisieren. Ohne Sortierung geht die Editierung und in Access 2003 auch mit Sortierung.


Frank   
Titel: Re: Editieren nach Sortierung
Beitrag von: Mykis am Juli 10, 2014, 17:54:49
Bei meiner "Fehlersuche" bin ich noch auf etwas gestoßen, was vielleicht einen Experten weiterhilft: Wenn ich in den entsprechenden Abfragen oder Formularen ein Filter gespeichert ist, tritt der Fehler nach der Sortierung in diesen Abfragen nicht mehr auf.
Titel: Re: Editieren nach Sortierung
Beitrag von: DF6GL am Juli 11, 2014, 07:57:42
Hallo,

die Aktualisierbarkeit einer Abfrage ist dann nicht mehr verhanden, wenn ein Datensatz nicht mehr eindeutig bestimmbar ist. Das kann z. B. in der Verjoinung begründet sein oder durch die Verwendung von "DISTINCTROW"...
Titel: Re: Editieren nach Sortierung
Beitrag von: Mykis am Juli 11, 2014, 09:13:51
Hallo Franz,

vielen Dank für deine Antwort. Ich werde mal in den entsprechenden Abfragen nach den "Fehler" weitersuchen. "DISTINCTROW" benötige ich allerdings, damit ich auch Datensätze löschen kann!. Es ist halt nur merkwürdig, dass das Problem bei Access 2003 bei exakt gleicher Datenbank und Datensätzen nicht auftritt.

Beste Grüße
Frank
Titel: Re: Editieren nach Sortierung
Beitrag von: MzKlMu am Juli 11, 2014, 09:28:54
Hallo,
Zitat"DISTINCTROW" benötige ich allerdings, damit ich auch Datensätze löschen kann!.
mit DISTINCTROW (und DISTINCT) ist es unmöglich Datensätze zu löschen. Es ist auch ausgeschlossen, dass man eine Abfrage mit DISTINCTROW editieren kann.
Das solltest Du alles noch mal prüfen.
Titel: Re: Editieren nach Sortierung
Beitrag von: DF6GL am Juli 11, 2014, 09:32:06
Hallo,

was hat Distinctrow mit Löschen zu tun?

Dieser Zusatz sorgt für die Unterdrückung von Datensätzen, die gleichen Felder-Inhalt haben. D. H. beim Vorhandensein mehrfacher gleicher Datensätze wird lediglich einer angezeigt..  Somit kann bei einer evtl. Änderung eines Feldwertes dieser Wert nicht mehr einem bestimmten Datensatz zugeordnet werden und die Änderung schlägt fehl...

Titel: Re: Editieren nach Sortierung
Beitrag von: Mykis am Juli 11, 2014, 09:54:48
Hallo MzKlMu und Franz,

als Laie bin ich jetzt aber überrascht. Wenn ich in meinen Abfragen
die Eigenschaft "Eindeutige Datensätze" auf "JA" stelle, kann ich Editieren und Datensätze löschen. "Eindeutige Datensätze auf Ja" bedeutet doch in SQL Distinctrow!?

Die Anzahl der Datensätze bleibt bei beiden Eintragungen gleich.

Frank
Titel: Re: Editieren nach Sortierung
Beitrag von: DF6GL am Juli 12, 2014, 09:23:16
Hallo,

allein die Angabe von Distinct(row)  im SQL-String heißt ja noch lange nicht, dass zwingend auch im Ergebnis der Abfrage Mehrfach-Datensätze ausgeblendet sind, z. B:, wenn gar keine Mehrfach-Daten vorhanden sind und damit Distinct(row) wirkungslos ist....
Titel: Re: Editieren nach Sortierung
Beitrag von: Mykis am Juli 12, 2014, 12:11:03
Hallo Franz,

ja, in meiner Datenbank sind keine Duplikate, deshalb stimmt die Anzahl der Datensätze mit und ohne Distinct(row) überein.
Ich war nur überrascht, dass MzKlMu schreibt:
Zitatmit DISTINCTROW (und DISTINCT) ist es unmöglich Datensätze zu löschen. Es ist auch ausgeschlossen, dass man eine Abfrage mit DISTINCTROW editieren kann.
In meinen verknüpften Abfragen muß ich immer die Eigenschaft "Eindeutige Datensätze" auf "JA" stellen, damit ich Datensätze löschen kann. Aktualisieren ist mit Distinctrow ebenfalls möglich!
Nur mit der Angabe Distinct im SQL-String ist Löschen und Aktualisieren gesperrt.

Vielen Dank und beste Grüße
Frank
Titel: Re: Editieren nach Sortierung
Beitrag von: MaggieMay am Juli 12, 2014, 21:16:51
Halloo,
Zitat von: Mykis am Juli 12, 2014, 12:11:03Ich war nur überrascht, dass MzKlMu schreibt:
Zitatmit DISTINCTROW (und DISTINCT) ist es unmöglich Datensätze zu löschen. Es ist auch ausgeschlossen, dass man eine Abfrage mit DISTINCTROW editieren kann.
Ja, ich denke auch, hier irrt der Klaus. Distinct und DistinctRow funktionieren unterschiedlich. Letztendlich kommt es wohl auf den Abfrage-Code, d.h. den Inhalt der Abfrage an, inwieweit die Parameter überhaupt eine Rolle spielen.