Hallo Robert,

Robert Großkopf schrieb am 12.03.2009 16:03:

Wenn sie direkt miteinander über Primärschlüssel verknüpft sind, warum sind es dann 2 Tabellen? Eine 1:1-Beziehung macht eigentlich nur bei viel zu großen Tabellen Sinn.

Weil es - wie ich geschrieben - habe eine Inventurtabelle ist.
Von Jahr zu Jahr bleiben die Artikel ziemlich gleich, nur die Menge und der EK-Preis ändern sich. Also habe ich diese beiden Felder in eine externe Tabelle ausgelagert.

Nun habe ich ein Formular aufgebaut, Hauptformular Menge | EK-Preis,
Unterformular Artikeldaten | Geschäftsbereich.
Das Subformular filtere ich je nach Geschäftsbereich der gerade
bearbeite wird 1 oder 2.
Leider kann ich dann (wenn ich das Subformular filtere) keine Daten
eingeben.
Was mach ich falsch und wie macht man es richtig?

Ich habe das gerade einmal an einem einfachen Beispiel probiert. Wenn ich in dem Subformular filtere, das nur den Inhalt einer Tabelle wiedergibt, so funktioniert bei den alten Datensätzen der vorhandene einfache Filter. Es lassen sich auch Neueingaben Tätigen - allerdings unbhängig von der Vorfilterung. Der Filter taugt also nur zum Suchen, nicht aber zum Eingeben.

Stimmt, will ich einen Datensatz neu anlegen, mache ich das zuerst in der Artikeltabelle, dann in der Inventurdatentabelle.

Der formularbasierte Filter taugt bei Subformularen nicht viel. Er filtert zwar die Elemente des Subformulars, zeigt aber alle Datensätze des Hauptformulars an - unabhängig davon, ob im Subformular ein entsprechendes Element vorhanden ist oder nicht.

Anzeigen ja, aber ich konnte beim fomularbasierten Filter einen vorhandenen Datensatz gar nicht bearbeiten. Beispiel: Das Subformular filtert und zeigt somit alle Datensätze aus Geschäftsbereich 2 an. Im Hauptformular steht dazu ein passenden Datensatz z. B Hauptformular DS 1 Sub DS 1, ich kann aber im Hauptformular nichts eingeben oder ändern.

Wenn Du das Subformular über eine gefilterte Abfrage ansteuerst, so ist die Abfrage selbst nicht editierbar.

Das Subformular soll gar nicht editiert werden, nur das Hauptformular.


Dein Hauptformular müsste eigentlich nur die beiden Geschäftsbereiche enthalten - von dort muss es in das Unterformular gehen. Wobei ich nicht durchschaue, wie denn die Beziehung der Tabellen zueinander wirklich ist. Die Geschäftbereiche sind in einer gesonderten Tabelle am besten untergebracht und geben ihre ID an die Unterformulare weiter. Eine 1:n-Beziehung also.

Zeige doch einmal genauer Deine Tabellenkonstruktion.

Aus der Sicht des Formulars:
MAIN: Inventurdaten
ID(Primärschlüssel); Menge; Einzelpreis; Erfasst(Ja/Nein)
SUB:Artikeldaten
ID(Primärschlüssel); Bezeichnung; Einheit; VPE; Bemerkung; LieferantID; Geschäftsbereich

Verknüpfung erfolgt 1:1 über Inventurdaten,ID: Artikeldaten, ID
Gefiltert wird im SUB über Geschäftsbereich.

Ich hab nun noch ein anderes Problem:
Wenn ich Beziehungen einrichte Inventurdaten <-> Artikeldaten akzeptiert die HSQLDB kein kaskadiertes Update/Löschen es bleibt immer bei "keine Aktion" gelegentlich schmiert mir OOo dann auch ab, wenn ich was ändern will.


--

Einen schönen Tag noch.
Mit freundlichem Gruß
Edgar Kuchelmeister

### Anwenderbetreuer users-Mailingliste
### edeku<at>openoffice.org
### http://wiki.services.openoffice.org/wiki/DE/FAQ

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Antwort per Email an