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
Datensätze zählen
Moderator: Moderatoren
Hey Edding2002,
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
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.Nun möchte ich im Formular gerne ein Feld haben welches mir die Anzahl der vorhandenen Datensätze anzeigt.
Wie kann ich das anstellen ?
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
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
-
- *
- Beiträge: 14
- Registriert: Sa, 01.10.2005 16:54
Hallo,
ich verwende dazu eine makrofreie Lösung.
Folgende Vorgehensweise:
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.
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` )
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.
Hey Steffan,
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
gute IdeeSELECT COUNT(DeinIdName) FROM DeinTabellenName

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
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic