(gelöst) Duplikate werden nicht angezeigt

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

(gelöst) Duplikate werden nicht angezeigt

Beitrag von Noebian »

Hallo, vielleicht kann mir einer weiterhelfen.
Ich habe ein Formular, das sich ganz merkwürdig benimmt. Es soll Personen anzeigen; die Datenquelle ist eine Abfrage.
Merkwürdigerweise wird aber dann, wenn mehrere Personen mit dem gleichen Nachnamen existieren, nur die erste angezeigt.
Das ist in einem Land mit vielen Petersens und Hansens ziemlich schlecht :-)
- in der Abfrage sind die betreffenden Personen enthalten
- wenn ich ein neues Formular mit der gleichen Datenquelle erstelle, werden die Datensätze korrekt angezeigt
ergo muss der Fehler im Formular selbst liegen - ich habe aber keinen Plan, wo ich noch suchen soll...
Zuletzt geändert von Noebian am Fr, 13.04.2012 17:49, insgesamt 1-mal geändert.
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Re: Duplikate werden nicht angezeigt

Beitrag von pmoegenb »

Dann lass mal den SQL-Befehl sehen, der dahinter steckt.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

Re: Duplikate werden nicht angezeigt

Beitrag von Noebian »

Du meinst die Abfrage im SQL-Format? Die funktioniert ja wie sie soll.
Oder meinst du den Filter? Ich habe für das Formular verschiedene Sortierungen definiert, zB so

Code: Alles auswählen

Sub nach_Nachname_sortieren

oDoc=ThisComponent
oForm = oDoc.DrawPage.Forms.getByName("MainForm")

	oForm.ApplyFilter = true	
	oForm.Filter = ""
	oForm.order = "Nachname, Rufname"
	oForm.reload

end sub
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

Re: Duplikate werden nicht angezeigt

Beitrag von Noebian »

Nochmal anders gefragt: was müsste ich tun, um diesen Effekt (Keine Duplikate bei den Nachnamen) bewusst hervorzurufen? Kann man das irgendwo einstellen?
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

Re: Duplikate werden nicht angezeigt

Beitrag von Noebian »

Ja, es werden per Makro verschiedene Filter gesetzt - aber die aktuellen Filter werden ja immer auch bei den Formulareigenschaften angezeigt.
Es ist (laut Formulareigenschaften) aktuell kein Filter gesetzt, die Abfrage liefert die richtigen Ergebnisse und das Formular zeigt sich nicht an. Ich komme einfach nicht dahinter...
Übrigens tritt der gleiche Effekt auch auf, wenn ich als Datenquelle eine Tabelle nehme: das Formular filtert die Duplikate aus. Es muss also am Formular liegen.

NACHTRAG
Das Formular beinhaltet Nachnamen, Rufnamen, Alter. Duplikate bei Alter und Rufnamen treten auf - nur nicht beim Nachnamen.
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Duplikate werden nicht angezeigt

Beitrag von F3K Total »

Hi,
ohne das ich es geprüft habe, sieht dein Makro komisch aus:

Code: Alles auswählen

   oForm.ApplyFilter = true   
   oForm.Filter = ""
   oForm.order = "Nachname, Rufname"
   oForm.reload[/quote]
würde ich mal ändern in

Code: Alles auswählen

   oForm.Filter = ""
   oForm.order = "Nachname", "Rufname"
   oForm.reload
wobei du auf die Gänsefüßchen um Nachname und Rufname achten solltest.

Gruß R
Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

Re: Duplikate werden nicht angezeigt

Beitrag von Noebian »

Hi R,
"Nachname, Rufname" funktioniert,
während "Nachname", "Rufname" die Fehlermeldung "Unerwartetes Symbol: ,"
hervor ruft.
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Duplikate werden nicht angezeigt

Beitrag von DPunch »

Servus
F3K Total hat geschrieben:ohne das ich es geprüft habe, sieht dein Makro komisch aus
Nein, .Order ist ein String und kann daher selbstverständlich nicht mehr als Anführungszeichen am Anfang und am Ende verarbeiten.
Gegen die ursprüngliche Schreibweise ist nichts einzuwenden.

Zum Thema:
kannst Du eine Beispieldatei hochladen, in der das Verhalten nachvollziehbar ist?
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Duplikate werden nicht angezeigt

Beitrag von F3K Total »

Hallo DPunch,
da hast Du Recht, ich hatte mit von der Eintragung im Formular irreführen lassen:
S.png
S.png (1.44 KiB) 2642 mal betrachtet
Gruß R
Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

Re: Duplikate werden nicht angezeigt

Beitrag von Noebian »

HI,
das Formular ist so kontruiert, dass es ein Main-Formular gibt, welches ein Tabellenfeld enthält. Hier werden die Ergebnisse einer Abfrage angezeigt. Dann gibt es mehrere Subformulare, die mit dem Main-Formular verknüpft sind und direkt auf Tabellen zugreifen.
Wie schon gesagt: die Abfrage liefert die gewünschten Ergebnisse, die werden aber vom Tabellenfeld nicht richtig dargestellt. Es kann eigentlich keine Unterschiede im Handling zu den Rufnamen geben, es sind auch keine Makros am Start - außer den Sortierungen, die per Makro vorgenommen werden (dafür gibt es einzelne Buttons). Aber die aktuellen Filter und Sortierungen werden im Eigenschaftsdialog des Feldes ja angezeigt, sind also nachvollziehbar!
Ich habe jetzt mal spaßeshalber ein neues Unterformular eingefügt und als Datenquelle die gleiche Abfrage genommen wie im Main-Formular: siehe da, das dort eingefügte Tabellenfeld zeigt auch die doppelt vorhandenen Nachnamen an.
Ich kann mir die Sache beim besten Willen nicht erklären, vielleicht gibt es einen ganz blöden Grund dafür. Im Moment weiß ich mir nicht anders zu helfen als ein neues Formular zu erstellen. :?
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

Re: Duplikate werden nicht angezeigt

Beitrag von Noebian »

Wenn Du meinst, dass das was bringt ohne Daten - danke schön! Ist unterwegs.
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

Re: Duplikate werden nicht angezeigt

Beitrag von Noebian »

Durch die freundliche Hilfe von Robert hat sich herausgestellt, dass mit dem Formular ein "Group by" Statement verknüpft ist. Dies wurde sichtbar, als ich das isolierte Formular (dh kopiert und in eine neue Datenbank verfrachtet) mit einer Tabelle als Datenquelle verknüpft habe. Dann kam folgende Fehlermeldung: Not in aggregate function or group by clause... in Statement [SELECT * FROM "tbl_personendaten" GROUP by "Nachname" ORDER BY "Nachname"].
Robert hat dann die *.odb-Datei entpackt und am Quelltext geschraubt um die Klausel wieder loszuwerden. Wir haben keinen Weg gefunden, sie über die normale Oberfläche zugänglich zu machen.
Hat jemand eine Erklärung dafür, wie soetwas entstehen und vermieden bzw. behoben werden kann?
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

Re: Duplikate werden nicht angezeigt

Beitrag von Noebian »

um die Sache hier abzuschließen: man bekommt die Klausel über ein simples Makro in den Griff - ganz einfach, wenn man es weiß :-)
vermutlich ist sie auf einem ähnlichen Weg auch hinein gekommen.

Code: Alles auswählen

sub test
oDoc = ThisDatabaseDocument.FormDocuments.getByName( "frm_Einladungsliste" ).open 
oForm = oDoc.DrawPage.Forms.GetByIndex(0) 
oForm.Groupby=""
end sub 
herzlichen Dank an alle!
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
Antworten