Base - Formular - keine Änderungen an Daten möglich

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Base - Formular - keine Änderungen an Daten möglich

Re: Base - Formular - keine Änderungen an Daten möglich

von beat4u » Fr, 06.07.2012 16:04

miamit hat geschrieben:Hallo Robert, habe gerade die Verson AO 3.4.0 heruntergeladen, denn die 3.3.0 gab es im Archiv nicht mehr, nur maximal 3.2.1.
OO 3.3.0 kriegt man problemlos: Startseite deutsches OpenOffice/Download aktuelle Version/Legacy Version

Dort ist unter dem grünen Banner das OO3.3.0 zu downloaden.

Es wird empfohlen, frühere Versionen vorher zu entfernen.

Gruss
Beat

Re: Base - Formular - keine Änderungen an Daten möglich

von RobertG » Fr, 15.06.2012 18:17

Eigentlich kann es nicht sein, dass alle möglichen Versionen so fehlerhaft auf einem System laufen. Da muss noch eine andere Variante mitspielen.
Folgende Elemente sind zu beachten:
Die sicherste Installation einer neuen Version von Libre- oder OpenOffice erfolgt so, dass nicht ein vorhergehendes Benutzerverzeichnis verwendet wird. Gegebenenfalls also das alte Benutzerverzeichnis umbenennen.
Eine sichere Datenbankfunktion kann nur mit einer passenden Java-Laufzeitumgebung gewährleistet werden. So ist z.B. unter OpenSuSE von Sun nur die Version 6_u22 von der Geschwindigkeit her passabel. alle anderen Versionen danach sind gähnend langsam. Unter Windows gab es, soweit ich weiß, Probleme mit der 7er-Version, die noch nicht so lange raus ist.
Wenn ein Office-Programm allerdings neu gestartet werden muss, damit ein Primärschlüssel übernommen wird, dann kann genau an diesem Punkt etwas faul sein.

Das einzige Element, was innerhalb von Base für meine Begriffe tatsächlich recht instabil ist, ist der Reportgenerator. Instabil ist dieser aber nur beim Erstellen des Reports - also laufend abspeichern und hoffen. Wenn die Berichte erst einmal erstellt wurden, läuft auch dieses Element absturzfrei.

Gruß

Robert

Re: Base - Formular - keine Änderungen an Daten möglich

von RobertG » Fr, 15.06.2012 16:37

Hallo Miamit,
miamit hat geschrieben: Gibt es eine Möglichkeit, mit Aliasen zu rechnen?
Die einzige Möglichkeit, mit einem Alias aus einer Feldbezeichnung etwas anzufangen, ist die Verwendung in einem anderen Bereich als gerade dem der Feldbezeichnungen. Wenn Du z.B. eine Addition von zwei Feldern durchführst und die an anderer Stelle noch einmal benötigst, so kannst Du den berechneten Wert nicht aus dem vorhergehenden Feld (über ein Alias) ziehen.

Gruß

Robert

-

von Benutzer 48566 gelöscht » Fr, 15.06.2012 11:42

----------

-

von Benutzer 48566 gelöscht » Fr, 15.06.2012 10:30

----------

-

von Benutzer 48566 gelöscht » Fr, 15.06.2012 10:09

----------

Re: Base - Formular - keine Änderungen an Daten möglich

von RobertG » So, 10.06.2012 19:26

Dass eine der Abfragen einen Fehler auswirft liegt daran, dass ich einen Abfragenamen anschließend geändert habe. Ich lade jetzt die Datei noch einmal hoch - mit korrigierter Abfrage.
Die Abfragen funktionieren unter OOo 3.3, LO 3.3.4 und LO 3.5.4
Deine Fehlermeldungen liegen für mich eindeutig an der Version 3.2.1

Welche Version ich empfehlen würde? In der Schule machen wir gerade für die Schülerrechner ein Update von OOo 3.1.1 auf LO 3.3.4. Das sind alles Windows-Rechner. Mit LO 3.3.4 arbeite ich hier sehr zufriedenstellend in allen Bereichen. Die Version LO 3.4.* habe ich kurz einmal auf einem Rechner gehabt. Da wurden Formulare plötzlich im Drucklayout (mit Rand) dargestellt, so dass bei großer Breite die Formularfelder übereinander lagen. Sofort wieder runter und LO 3.3.4 installiert. Das gleiche Problem soll, wenn ich das richtig verstanden haben, bei der neuen AOO 3.4 auftreten. Also auch keine Wahl für eine Datenbank mit Formularen. OOo 3.3 habe ich noch drauf, weil die LO-Versionen in den Berichten keine senkrechten und waagerechten Linien darstellen. Das habe ich mittlerweile mit Grafiken wie Rechtecken wesentlich einfacher umgangen. Dafür stellt dann OOo 3.3 keine Diagramme in Berichten dar.
Du merkst, ich betrachte das alles aus der Datenbanksicht, weil ich eben viel mit Datenbanken arbeite.
Die 3.5.4 hat ein paar Bugfixes bezüglich fehlerhafter Abfragendarstellung erhalten. Sie läuft in der aktuellen 3.5.4.2 auch recht ordentlich - nur fehlen wieder die Diagramme in den Berichten.

Also: Wenn Du unbedingt bei OpenOffice bleiben willst: OOo 3.3.0 wird es machen. Diese Version wird bei mir wohl auch noch länger zum Testen liegen - bis vielleicht eine der Office-Versionen endlich die betagte interne HSQLDB 1.8 durch die Version 2.2 ersetzt. Dann ist auf jeden Fall ein Update erforderlich, dann sind die damit einmal bearbeiteten Datenbanken nicht mehr abwärtskompatibel.

Gruß

Robert
Dateianhänge
Editierbarkeit_Abfragen.odb
Korrektur der ersten Abfrage ...
(25.93 KiB) 109-mal heruntergeladen

Re: Base - Formular - keine Änderungen an Daten möglich

von RobertG » So, 10.06.2012 07:43

Hallo Miamit,

ich habe mir die Datenbank und die Abfragen angesehen. Ich kann keine Besonderheiten entdecken.
miamit hat geschrieben:

Code: Alles auswählen

SELECT "Artikelgesamtliste"."Artikelnummer", "Artikelgesamtliste"."VK brutto" FROM "Artikelgesamtliste", "Lieferanten" WHERE "Artikelgesamtliste"."Lieferant" = "Lieferanten"."Lieferant"
Liefert eine editierbare Abfrage mit den Feldern Artikelnummer und VK brutto.
Diese Abfrage erscheint bei mir nicht editierbar - in OOo 3.3.0 und LO 3.3.4.
miamit hat geschrieben: Dann bringe ich, wie du sagst, den Primärschlüssel der Tabelle Lieferanten, also Lieferant ein:

Code: Alles auswählen

SELECT "Artikelgesamtliste"."Artikelnummer", "Artikelgesamtliste"."VK brutto", "Lieferanten"."Lieferant" FROM "Artikelgesamtliste", "Lieferanten" WHERE "Artikelgesamtliste"."Lieferant" = "Lieferanten"."Lieferant"
Das liefert mir die Fehlermeldung:
Invalid Argument in JDBC Call: Parameter Index out of range: 2.
Diese Abfrage erscheint bei mir editierbar - keine Fehlermeldung.
miamit hat geschrieben:

Code: Alles auswählen

SELECT "Artikelgesamtliste"."Artikelnummer", "Artikelgesamtliste"."VK brutto", "Lieferanten"."Lieferant", "Artikelgesamtliste"."Lieferant" FROM "Artikelgesamtliste", "Lieferanten" WHERE "Artikelgesamtliste"."Lieferant" = "Lieferanten"."Lieferant"
Erhalte ich wieder eine uneditierbare Abfrage mit allen Daten und zwei SPalten, in der der Lieferant eines Artikels angezeigt wird, was logisch ist.
Auch diese Abfrage erscheint bei mir editierbar.
Was mir noch auffällt:
  • - Du benutzt die Namen der Lieferanten als Primärschlüssel. Was machst Du bei gleichen Namen? Gleiches gilt für die Mitarbeiter.
    - Du hast die Beziehungen Deiner Datenbank unter Extras → Beziehungen nicht definiert. So eine Definition schützt vor Fehleingaben. Würde ich dringend machen.
    - Du hast noch nicht Deine Office-Version benannt.
Gruß

Robert

Re: Base - Formular - keine Änderungen an Daten möglich

von RobertG » So, 10.06.2012 07:25

Hallo Miamit,
miamit hat geschrieben: Ich habe die mal die DB geelert, vereinfacht und hochgeladen.
Die 3 Situationen können in den 3 Abfragen nachvollzogen werden.
Ich habe gerade eine einfache Datenbank mit 4 verschiedenen Abfragen bestückt und hochgeladen, damit wenigstens klar wird, wann eine Abfrage editierbar ist. Jetzt werde ich mir Deine Datenbank ansehen.

Gruß

Robert
Dateianhänge
Editierbarkeit_Abfragen.odb
(25.99 KiB) 67-mal heruntergeladen

-

von Benutzer 48566 gelöscht » Sa, 09.06.2012 23:14

----------

Re: Base - Formular - keine Änderungen an Daten möglich

von RobertG » Sa, 09.06.2012 22:29

Hallo Miamit,

mir scheint, dass Du hier im Code nicht den Originalinhalt Deiner Abfragen postest. Amnders kann ich mir das nicht erklären,
miamit hat geschrieben:

Code: Alles auswählen

SELECT "Artikelgesamtliste"."Artikelnummer", "Artikelgesamtliste"."VK brutto" FROM "Artikelgesamtliste", "Lieferanten" WHERE "Artikelgesamtliste"."Lieferant" = "Lieferanten"."Lieferant"
Liefert eine editierbare Abfrage mit den Feldern Artikelnummer und VK brutto.
Es besteht ein innerer Verbund zwischen Artikelgesamtliste.Lieferant und Lieferanten.Lieferant.
Wenn ich so zwei Tabellen miteinander verbinde und von der zweiten Tabelle nicht das Schlüsselfeld in der Abfrage als Feld vorhanden ist, ist die Tabelle bei mir nicht editierbar. Das teste ich hier mit OOo 3.3, LO 3.3.4 und LO 3.5.4 mit gleichem Ergebnis.
miamit hat geschrieben: Dann bringe ich, wie du sagst, den Primärschlüssel der Tabelle Lieferanten, also Lieferant ein:

Code: Alles auswählen

SELECT "Artikelgesamtliste"."Artikelnummer", "Artikelgesamtliste"."VK brutto", "Lieferanten"."Lieferant" FROM "Artikelgesamtliste", "Lieferanten" WHERE "Artikelgesamtliste"."Lieferant" = "Lieferanten"."Lieferant"
Das liefert mir die Fehlermeldung:
Invalid Argument in JDBC Call: Parameter Index out of range: 2.
Da komme ich nicht mehr mit. Das Feld hast Du vorher auch schon in Deiner Abfrage über die Beziehung drin.
Ohne genauere Informationen zur Datenbank (Beziehungsdefinition unter Extras → Beziehungen) oder die Datenbank selber kann ich Dir da nicht helfen. Die obige Abfrage müsste die editierbare Abfrage sein, wenn "Lieferanten"."Lieferant" der Primärschlüssel von "Lieferanten" und "Artikelgesamtliste"."Artikelnummer" der Primärschlüssel von "Artikelgesamtliste" ist und die Fremdschlüssel zu den Primärschlüsseln passen.
Hast Du überhaupt eine richtige Beziehungsdefinition erstellt?
Mit welcher Office-Version arbeitest Du?

Gruß

Robert

Re: Base - Formular - keine Änderungen an Daten möglich

von RobertG » Sa, 09.06.2012 16:00

Hallo Miamit,
miamit hat geschrieben:

Code: Alles auswählen

SELECT "Artikelgesamtliste"."Artikelnummer", "Artikelgesamtliste"."Lieferant" FROM "Artikelgesamtliste", "Lieferanten" WHERE "Artikelgesamtliste"."Lieferant" = "Lieferanten"."Lieferant"
Diese Abfrage zeigt mir alle meine Artikel und die zugehörigen Lieferanten an.
So, wie die Abfrage da steht, ist sie bereits nicht editierbar. Es fehlt der Primärschlüssel der Tabelle "Lieferanten". Das Gleiche gilt für die folgenden Abfragen:
miamit hat geschrieben:

Code: Alles auswählen

SELECT "Artikelgesamtliste"."Artikelnummer", "Artikelgesamtliste"."Lieferant", "Artikelgesamtliste"."VK brutto" FROM "Artikelgesamtliste", "Lieferanten" WHERE "Artikelgesamtliste"."Lieferant" = "Lieferanten"."Lieferant"

Code: Alles auswählen

SELECT "Artikelgesamtliste"."Artikelnummer", "Artikelgesamtliste"."Lieferant", "Artikelgesamtliste"."VK brutto", "VK brutto" / 1.19 AS "VK netto" FROM "Artikelgesamtliste", "Lieferanten" WHERE "Artikelgesamtliste"."Lieferant" = "Lieferanten"."Lieferant"
In den ersten Abfragen, die Du hier gepostest hast, war einfach noch das Feld "Lieferanten"."Lieferant" drin - "Artikelgesamtliste"."Lieferant" zeigt zwar den gleichen Inhalt, ist aber nur der Fremdschlüssel.

Gruß

Robert

Re: Base - Formular - keine Änderungen an Daten möglich

von RobertG » Sa, 09.06.2012 12:25

Wenn Du als Erfolg siehst: "Abfrage editierbar", dann musst Du einfach die Abfrage, die Du in eine andere Abfrage reinpackst, rausnehmen.
Ansonsten verstehe ich nicht, wo Du "Erfolg" sehen willst.
Oder meinst Du "Erfolg", dass die Datensätze beim zweiten Mitarbeiter nicht plötzlich auf die doppelte Zahl ansteigen?

Gruß

Robert

Re: Base - Formular - keine Änderungen an Daten möglich

von RobertG » Sa, 09.06.2012 09:33

Hallo Miamit,
miamit hat geschrieben: Außerdem wird für jeden Mitarbeiter auf Basis der Werte Stundenlohn und Arbeitsgeschwindigkeit (in Lohnkosten enthalten) in der Abfrage Lohnkosten die Kosten pro Stück berechnet.
Diese Kosten pro Stück fließen dann mit in die Berechnungen ein.
Wenn ich "Kosten pro Stück" lese gehe ich jetzt davon aus, dass Deine Abfrage nur einen Datensatz enthält. Solange das der Fall ist hast Du natürlich keine Verdoppelungen bei der Konstruktion zu befürchten. Vielleicht hast Du ja auch bisher nur einen Mitarbeiter in Deiner Testdatenbank?
Noch einmal: Die folgende Konstruktion erzeugt erst einmal nicht zusammenhängende Datensätze:

Code: Alles auswählen

FROM "Artikelgesamtliste", 
"Lieferanten",
"Abfrage_Lohnkosten", 
"Lohnkosten" 

WHERE 
"Artikelgesamtliste"."Lieferant" = "Lieferanten"."Lieferant" 
AND 
"Abfrage_Lohnkosten"."Mitarbeiter" = "Lohnkosten"."Mitarbeiter" 
"Mitarbeiter" hängt nicht mit "Lieferant" zusammen. Wenn Du z.B. in der Tabelle "Lieferanten" jedem "Lieferant" einen bestimmten "Mitarbeiter" zuordnen würdest, dann könntest Du eine entsprechende Bezihung definieren:

Code: Alles auswählen

WHERE 
"Artikelgesamtliste"."Lieferant" = "Lieferanten"."Lieferant" 
AND 
"Abfrage_Lohnkosten"."Mitarbeiter" = "Lohnkosten"."Mitarbeiter" 
AND 
"Lohnkosten"."Mitarbeiter" = "Lieferanten"."Mitarbeiter" 
Damit wären dann alle Tabellen eindeutig verbunden. Natürlich kannst Du auch einen "Mitarbeiter" in der "Artikelgesamtliste" haben.
Diese folgenden Felder finde ich allerdings in Deiner Abfrage:

Code: Alles auswählen

SELECT 
"Artikelgesamtliste"."Artikelnummer", 
"Abfrage_Lohnkosten"."Lohnkosten pro Artikel", 
"Lohnkosten"."Mitarbeiter", 
"Lieferanten"."Lieferant",
...
Dass eine bestimmte Artikelnummer einen bestimmten Lieferanten hat ist definiert. Dass aber ein bestimmter Mitarbeiter nur für eine bestimmte Artikelnummer zuständig ist, das ist nirgendwo beschrieben. Sobald Du zwei Mitarbeiter hast wird in Deiner Abfrage die Artikelnummer doppelt dargestellt - mit dem ersten und dem zweiten Mitarbeiter.

Gruß

Robert

Re: Base - Formular - keine Änderungen an Daten möglich

von RobertG » Fr, 08.06.2012 21:10

Hallo Miamit,
miamit hat geschrieben: Ich habe die Abfrage nach dem WHERE wie folgt geändert,
sodass die Beziehung zwischen Abfrage_Lohnkosten und Lohnkosten nun auch definiert ist, richtig?

Code: Alles auswählen

WHERE 
"Artikelgesamtliste"."Lieferant" = "Lieferanten"."Lieferant" 
AND 
"Abfrage_Lohnkosten"."Mitarbeiter" = "Lohnkosten"."Mitarbeiter" 
ORDER BY 
"Artikelgesamtliste"."Artikelnummer" 
ASC
In der Designansicht ist neben der Verbindungslinie zwischen Lieferant und Lieferant
demnach auch eine Verbindungslinie (innerer Verbund) zwischen
Mitarbeiter und Mitarbeiter zu sehen.
Das Problem wird weiter die Verwendung einer Abfrage in einer Abfrage sein. Aber was anderes fällt mir immer noch auf: "Artikelgesamtliste" ist mit "Lieferanten" verbunden. Auch eine zweite Verbindung von "Abfrage_Lohnkosten" zu "Lohnkosten" hast Du drin. Aber wie hängen "Lieferanten" und "Lohnkosten" zusammen?
Wenn Du zwei Tabellen nebeneinander darstellst, ohne die Beziehung zu definieren, dann erscheinen so viele Datensätze, wie es Kombinationen zwischen beiden Tabellen gibt. Nimm einmal an, dass die eine Tabelle aus 3 Datensätze, die andere aus 4 Datensätzen besteht. Dann werden bei
SELECT "Tabelle1".*, "Tabelle2".* FROM "Tabelle1", "Tabelle2"
insgesamt 3*4=12 Datensätze angezeigt. Dadurch, dass Du 2 Paare definierst, erzeugst Du das gleiche Verhalten. Du multiplizierst die Datensatzanzahl des ersten Paares mit der des zweiten Paares.

Gruß

Robert

Nach oben