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]