Werte im Formular mit Daten aus Join nicht veränderbar

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Bratmatzen
**
Beiträge: 27
Registriert: So, 05.03.2006 15:12
Wohnort: Schwoiga

Werte im Formular mit Daten aus Join nicht veränderbar

Beitrag von Bratmatzen »

Hallo,

ich hab folgendes Problem seit ich von OOO 2.0.3 auf OOO 2.1.0 umgestiegen bin. Ich kann in meinen Formularen, die den Inhalt eines Joins aus 2 Tabellen enthalten, werden alle Daten angezeigt, ich aber keine Daten mehr veränderen.

Wenn ich das gleiche Formular unter 2.0.3 verwende funktioniert alles Problemlos, Syntaxfehler sinds also nicht.

Ist das ein Fehler in 2.1.0 oder ist das schreiben von Daten bei einem Join grundsätzlich nicht möglich, sprich Fehler in 2.0.3

Gruß Matze
Bratmatzen
**
Beiträge: 27
Registriert: So, 05.03.2006 15:12
Wohnort: Schwoiga

Beitrag von Bratmatzen »

Hat keiner eine Idee?

könnte es vielleicht daran liegen, dss ich HSQL verwende? Währe es besser auf mySQL umzusteigen?

Gruß Matze
Bratmatzen
**
Beiträge: 27
Registriert: So, 05.03.2006 15:12
Wohnort: Schwoiga

Beitrag von Bratmatzen »

Toxitom hat mich gerade in einem anderen Beitrag auf die vielleicht entscheidente Idee gebracht:

Ich lasse die Werte im Formular in Form einer Tabelle darstellen, da die Tabelle aber eigendlich nur zum anzeigen und nicht zum zurückschreiben gedacht ist, könnte es sein dass das Problem da liegt.
Ich werd das mal testen sobald ich Zeit finde ooo 2.1.0 nochmal zu installieren.

Danke trotzdem

Gruß Matze
Bratmatzen
**
Beiträge: 27
Registriert: So, 05.03.2006 15:12
Wohnort: Schwoiga

Beitrag von Bratmatzen »

Hallo,
bin jetzt endlich mal dazu gekommen mySQL auf meinem rechner zu installieren und das ganze mal so zu probieren.
Leider funktioniert das schreiben von Daten in einem Join auch nicht, wenn ich als Formularinhalt nur eine Tabelle hab, kann ich alle Daten veränderen, sprich schreibrechte sind vorhanden und die Verbindung funktioniert auch gut.

Leider bin ich dadurch bei meinem Problem auch nicht weiter gekommen. Hat jemand eine Idee was man anderst einstellen muss, damit es funktioniert?

Gruß Matze
berndkli
*****
Beiträge: 289
Registriert: Di, 12.04.2005 22:05

Beitrag von berndkli »

Hallo Matze
Ist das ein Fehler in 2.1.0 oder ist das schreiben von Daten bei einem Join grundsätzlich nicht möglich, sprich Fehler in 2.0.3
Joins werden ja in/durch Abfragen erstellt und Datenmanipulation ist in Abfragen generell nicht möglich, auch nicht mit MySQL.
Von daher würde das auf einen "geglückten" Fehler in 2.0.3 schliessen lassen.


Gruss Bernd
Bratmatzen
**
Beiträge: 27
Registriert: So, 05.03.2006 15:12
Wohnort: Schwoiga

Beitrag von Bratmatzen »

Hall Bernd,

danke für deine Antwort.
Joins werden ja in/durch Abfragen erstellt und Datenmanipulation ist in Abfragen generell nicht möglich, auch nicht mit MySQL.
Hab das mal mit einer Abfrage in Form einer ganzen Tabelle ausprobiert (auch direkt SQL) und konnte die Daten problemlos ändern. Sprich nur wenn die Abfrage aus einem Join besteht, ist Datenmanipulation nicht möglich.

Nja wenn es sonst keine Lösung für das Problem gibt, werd ich wohl ein Makro schreiben müssen, das die Daten "manuell" per insert/update Befehl einfügt.

Gruß Matze
berndkli
*****
Beiträge: 289
Registriert: Di, 12.04.2005 22:05

Beitrag von berndkli »

Hallo Matze
Hab das mal mit einer Abfrage in Form einer ganzen Tabelle ausprobiert (auch direkt SQL) und konnte die Daten problemlos ändern.
Kannst du mal ganz kurz beschreiben wie du das angestellt hast?
Würde mich echt interessieren.

Statt Makro könntest du auch ein (Eingabe-)Formular erstellen mit 2 Tabellenkontrollfeldern die auf die jeweilige Datentabelle zugreifen und diese per Formular und Subformular über die Schlüsselspalten miteinander verbinden.

Gruss Bernd
Bratmatzen
**
Beiträge: 27
Registriert: So, 05.03.2006 15:12
Wohnort: Schwoiga

Beitrag von Bratmatzen »

Hallo Bernd,
Kannst du mal ganz kurz beschreiben wie du das angestellt hast?
Ich hab als Inhalt des Formulars einfach einen SQL Befehl (Select * from Tabelle) angegeben und das ändern der Daten dann ausprobiert. Das gleiche hab ich mit einer seperat erstellten Abfrage gemacht.
Die Test waren jeweils unter HSQL, also nicht über MySQL.
Statt Makro könntest du auch ein (Eingabe-)Formular erstellen mit 2 Tabellenkontrollfeldern die auf die jeweilige Datentabelle zugreifen und diese per Formular und Subformular über die Schlüsselspalten miteinander verbinden.
Wenn ich dich richtig verstanden habe, soll ich ein Formular mit ingesammt 3 Tabellenkontrollfeldern machen:
-1. Tabelle: zeigt nur Daten Tabelle 1 (mit Datenmanipulation)
-2. Tabelle: zeigt nur Daten Tabelle 2 (mit Datenmanipulation)
-3. Tabelle: Vereint Tabelle 1+2 über Schlüssel, dafür können die Daten dann nicht mehr geändert werden.

Dieser Ansatz währe auf jeden Fall um einiges einfacher zu realisieren, dafür leidet die Übersicht etwas. Das probier ich jedenfalls mal aus.

Gruß Matze
berndkli
*****
Beiträge: 289
Registriert: Di, 12.04.2005 22:05

Beitrag von berndkli »

Hallo Matze

Du brauchst zur Dateneingabe 2 Tabellenkontrollfelder in einem Formular

-1. Tabelle: zeigt alle Daten aus Tabelle 1 (mit Datenmanipulation)

-2. Tabelle: zeigt nur zum ausgewählten Datensatz der Tabelle 1 den korresbondierenden Datensatz (bzw. Datensätze) aus Tabelle 2 (mit Datenmanipulation).

Verknüpfen musst du sie über die gleichen Spalten die du auch für den Join nimmst.

Hier ist's nochmal genauer erklärt:
viewtopic.php?t=5800&highlight=

Nur wenn dir das zu unübersichtlich ist - weil im Tabellenkontrollfeld 2 ja immer nur ein Datensatz dargestellt wird - empfiehlt es sich dann noch ein "Ubersichtsformular" (kann ja auch eine neue Formulardatei sein) auf der Basis einer normalen Abfrage zu erstellen, die den Join darstellt.

Gruss Bernd
berndkli
*****
Beiträge: 289
Registriert: Di, 12.04.2005 22:05

Beitrag von berndkli »

Hallo Matze
Ich hab als Inhalt des Formulars einfach einen SQL Befehl (Select * from Tabelle) angegeben und das ändern der Daten dann ausprobiert. Das gleiche hab ich mit einer seperat erstellten Abfrage gemacht.
Das das funktioniert scheint daran zu liegen dass du mit * alle Spalten abfragst, also quasi die "Tabelle"

Wenn du den Selectausdruck so aufbaust

Code: Alles auswählen

SELECT "Spalte1","Spalte2", usw. FROM "Tabelle"
und nur 1 Spalte weglässt (das wäre dann eine "Ansicht") geht's schon nicht mehr (zumindest bei mir).

Gruss Bernd
Bratmatzen
**
Beiträge: 27
Registriert: So, 05.03.2006 15:12
Wohnort: Schwoiga

Beitrag von Bratmatzen »

Hallo Bernd,

Danke für deine Antwort. Jetzt kann ich mir vorstellen wo das Problem liegt und meine Formulare entsprechend ändern. Das nicht alle SELECT Abfragen gleich behandelt werden, sondern es auch nur Tabellenansichten gibt, wusste ich bis jetzt noch nicht.

Ich werde das mit den zwei Tabellen mal ausprobieren und so gestalten wie es am übersichtlichsten erscheint.

Vielen Dank,

Matze :D
Antworten