Datensätze zählen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Edding2002
*
Beiträge: 14
Registriert: Sa, 01.10.2005 16:54

Datensätze zählen

Beitrag von Edding2002 »

Hallo zusammen,
habe hier schon viel gelesen und dadurch so manches Problem gelöst.
Doch nun doch mal ne Frage.
Ich habe eine Datenbank mit einer Tabelle. Hierzu habe ich mir ein Formular erstellt um die Daten einzugeben. Nun möchte ich im Formular gerne ein Feld haben welches mir die Anzahl der vorhandenen Datensätze anzeigt.
Wie kann ich das anstellen ?

mfg Edding2002
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Edding2002,
Nun möchte ich im Formular gerne ein Feld haben welches mir die Anzahl der vorhandenen Datensätze anzeigt.
Wie kann ich das anstellen ?
Hmm, da gibt es viele Möglichkeiten. Ich würde es mit Basic machen - das Formualr läd ja die Datensätze (Aber Achtung - es läd zunächst ungefähr 10 - und weiter erst bei Bedarf), und dort gibt es dann die Eigenschaft count, welche dir die Anzahl der Datensätze angibt. Um die exakte Zahl zu erreichen, musst du zunächst zum letzten Datensatz springen (oForm.last()) - jetzt sind alle Daatensätze geladen und count funktioniert korrekt.
Ist dir Makroprogrammierung nicht vertraut, so löse es über eine Abfrage und ein zweites Formular. Ich nehme an, deine Datenbank besitzt einen Primärschlüssel in Form von einem Index? Also, Abfrage nach diesem Feld, sortieren absteigend (jetzt ist die größte Nummer ganz oben - der erste Datensatz. Formularfeld auf diese Feld verknüpfen, keine Navigation. Jetzt wird immer nur der erste Datenstz angezeigt - wäre gleichzeitig die Anzahl der Datensätze - falls du bei 1 begonnen hast ;-)
Aber Achtung: Das geht natürlch nur, wenn du zwischenzeitlich keine Datensätze gelöscht hast - dadurch wird der Index ja nicht zurückgesetzt. Ist also nur eine "Krücke".
Richtig lösen kannst du das nur mit Makros - siehe oben.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Edding2002
*
Beiträge: 14
Registriert: Sa, 01.10.2005 16:54

Beitrag von Edding2002 »

Hallo Toxitom,

danke für deine Antwort. Ich bin mit Makroprogrammierung nicht vertraut, deswegen werde ich mich damit wohl mal beschäftigen müssen.
Alles andere wäre ja wie du gesagt hast nur eine "Krücke".

Also erst einmal vielen Dank.
Steffan
****
Beiträge: 125
Registriert: Mi, 21.06.2006 10:07
Wohnort: Dresden

Beitrag von Steffan »

Hallo,

ich verwende dazu eine makrofreie Lösung.
Folgende Vorgehensweise:
  • neues Sub-Formular im Formular-Navigator erstellen:
  • in dessen Formulareigenschaften im Reiter Daten folgendes einstellen
  • Datenquelle: Name deiner Datenquelle
  • Art des Inhalts: SQL-Befehl
  • Inhalt: SELECT COUNT(DeinIdName) FROM DeinTabellenName (entsprechend deinen Bezeichnungen ergänzen)
  • Textfeld in Dein Formular einfügen ggf. im Formular-Navigator kontrollieren ob es im richtigen Sub-Formular steht
  • in dessen Kontrollfeldeigenschaften im Register Daten folgendes einstellen:
  • Datenfeld: COUNT( `DeinIdName` )
Wenn Du jetzt dem Editiermodus abschaltest, sollte das Textfeld die Anzahl Deiner Datensäte zeigen.
Ggf. muss die SQL-Syntax oben in Abhängigkeit von Deiner DB-Engine noch angepasst werden (bei mir MySQL).

Ich hoffe das ist so nachvollziehbar!
Beste Grüße,
Steffan.
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Steffan,

SELECT COUNT(DeinIdName) FROM DeinTabellenName
gute Idee :D
Obwohl laut Handbuch der COUNT-Befehl in HSQLDB nicht unterstützt wird, funktioniert es auch mit dieser DB-Engine. Also: Das ist eine Lösung.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Antworten