Eingabeformular- Felder-Anzeige nach/zur Auswahl aktualisieren

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Gerstenkorn
*
Beiträge: 18
Registriert: So, 26.04.2009 09:40

Eingabeformular- Felder-Anzeige nach/zur Auswahl aktualisieren

Beitrag von Gerstenkorn »

Eingabeformular- Felder-Anzeige nach/zur Auswahhl aktualisieren

Hallo sagt der Base-Neuling,

der sich keinen Rat mehr weiß und um einen kleinen Tipp bittet, wie man bestimmten Formularfeldern "sagt" dass sie den Datensatz anzeigen, der zu einem Feld gehört, der in einem vorhergehenden Feld ausgewählt wurde. Oder andersherum ausgedrückt, ich möchte zur Auswahl für ein Eingabeformular zur eindeutigen Identifizierung jeweils mehrere Felder eines Datensatzes aus einer Liste angezeigt bekommen.

Mit meiner noch im Aufbau befindliche Datenbank (sie ersetzt ein große XLS-Sammlung....) will ich alle Energieverbraucher im Haus erfassen um anschließend die einzelnen Verbrauchswerte mit Kosten darstellen zu können und natürlich entsprechend aggregiert aufbereiten. Ich glaube, dass wird zwar mühsam, ist aber nicht allzu kompliziert, es sei denn, man hat als Neuling keinen Austauschpartner.

Ich stolpere jetzt mehrfach darüber, dass ich nicht weiß, wie ich definiere, welche zusammenhängenden Felder jeweils angezeigt werden sollen:

Ich habe in der DB u.a. eine Liste aller Verbrauchszähler. Z.B. Wasseruhr (für Gartenwasser ), Stromzähler oder so. Die Liste beinhaltet natürlich immer einen eindeutigen Schlüssel für jeden Verbraucher. Jeder Verbraucher hat eine Bezeichnung sowie Gerätenummern und Standort etc.

Will ich nun via Formular die Verbrauchswerte in eine Tabelle mit den Verbrauchswerten eingeben stellt sich für mich die Frage, wie ich den Verbraucher auswähle. Dazu habe ich in das Formular Listfelder aufgenommen, die neben der Bezeichnung den Standort und die Gerätenummer anzeigen sollen, damit für die Eingabe des Zählerstandes der Zähler einwandfrei identifiziert werden kann. Ich könnte das natürlich über eine "sprechende" Bezeichnung machen, das befriedigt mich aber nicht. Besser wäre es doch, wenn ich jeweils bei Auswahl aus dem Listenfeld (es sind untereinander 3 x aufgeführt "Wasserzähler") von einem Wasserzähler, gleich auch die Felder "Standort" und "Gerätenummer" im Formular aktualisiert angezeigt werden, oder ist es sinnvoller als Identifizierungskriterium sich eine Liste der Zähler anzuzeigen und wie auch immer per Klick den jeweiligen auszuwählen, geht das?

Ich bedanke mich schon jetzt für eine kleine Hilfe zum Vorgehen oder wie ich weiter lernen kann.
:-) Hans
Ich verwende Apache OO 4.1.2, WIN 10 Pro 64, habe bisher nur mit XLS gearbeitet - wenn auch sehr ausgefeilt - kenne noch Notes-DB, bin ansonsten aber kein SQL/Base-Kenner :-)
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Eingabeformular- Felder-Anzeige nach/zur Auswahhl aktualisieren

Beitrag von RobertG »

Hallo Hans,

2 Möglichkeiten:

Dur regelst das Ganze wie bisher über ein Listenfeld. Den SQL-Code für dieses Listenfeld hast Du ja bereits irgendwie erstellt (Assistent o.ä.). Jetzt musst Du nur noch wissen, wie Du die Schlüsselnummer des Gerätes abspeicherst, aber gleichzeitig das Gerät genau identifizieren kannst.
Angenommen die Tabelle heißt "Zähler", die Felder ID(Schlüsselfeld), Name, Gerätenummer und Standort.
Der SQL-Code für das Listenfeld würde jetzt mit der folgenden Anweisung drei Informationsfelder zusammenfassen:

Code: Alles auswählen

SELECT "Name"||' - '||"Gerätenummer"||' - '||"Standort", "ID" FROM "Zähler" ORDER BY "Name"||' - '||"Gerätenummer"||' - '||"Standort"
Du regelst das Ganze über die Beziehung von Hauptformular und Unterformular. Im Hauptformular wird der Zähler mit allen Feldern aus der Tabelle angezeigt. Aus dem Hauptformular wird an das Unterformular die "ID" als Fremdschlüssel weiter gegeben. Du suchst also zuerst den Zähler und fügst dann für den Zähler einen Datensatz hinzu.

Weitere Ausführungen dazu findest Du auch im Base-Handbuch, das nicht nur für LO, sondern weitgehend auch für AOO nutzbar ist. Besonder beachten: Kapitel "Formulare".

Gruß

Robert
Gerstenkorn
*
Beiträge: 18
Registriert: So, 26.04.2009 09:40

Re: Eingabeformular- Felder-Anzeige nach/zur Auswahhl aktualisieren

Beitrag von Gerstenkorn »

Hallo Robert,

vielen Dank für die schnelle Hilfe, das klingt nicht nur sehr einleuchtend, ich kann das auch nachvollziehen und ich werde einfach einmal beide Wege ausprobieren. Bin schon gespannt, brauche aber etwas Zeit für die Erfolgsmeldung. Vielen Dank und bis dann :-) Hans
Ich verwende Apache OO 4.1.2, WIN 10 Pro 64, habe bisher nur mit XLS gearbeitet - wenn auch sehr ausgefeilt - kenne noch Notes-DB, bin ansonsten aber kein SQL/Base-Kenner :-)
Gerstenkorn
*
Beiträge: 18
Registriert: So, 26.04.2009 09:40

Re: Eingabeformular- Felder-Anzeige nach/zur Auswahl aktualisieren

Beitrag von Gerstenkorn »

Hallo Robert,

es hat mir doch keine Ruhe gelassen und ich musste probieren, klappt beides sehr gut, wobei mir aufgefallen ist, dass bei Lösung zwei, wenn ich mit "Klick" eine Auswahl treffe, dann keine "Eingabe" möglich ist, nur wenn ich dann die ID ( also die Nummer) aingebe, funktioniert alles so wie es soll. Jedoch,
ich bekomme es nicht hin, dass mir anstelle der ID-Nummern der Text angezeigt wird, das ist dann ja wohl eine "verschachtelte" SQl-Abfrage und ich weiß nicht ob das überhaupt geht. Ich dachte, ich nehme als Basis für das Formular eine Abfrage, die den "Klartext" anzeigt, aber das funktioniert eben auch nicht.
Auch im Handbuch finde ich leider keinen Hinweis, wie ich eine Anzeige hinbekomme, die mir eben die entsprechenden ID-Werte aus einer anderen hinterlegten Tabelle (Standort-ID in Standorte) anstelle der ID-Nummern anzeigt.
Wenn es nicht zuviel Mühe macht, vielen Dank schon jetzt für einen weiteren Tipp. Mit dem Essen kommt auch der Hunger, oder ich möchte es halt genau wissen, denn mit der jetzigen Anzeige kann ich natürlich schon meine Zähler identifizieren, aber wissen möchte ich eben, wie es geht.

viele Grüße :-) hans
Ich verwende Apache OO 4.1.2, WIN 10 Pro 64, habe bisher nur mit XLS gearbeitet - wenn auch sehr ausgefeilt - kenne noch Notes-DB, bin ansonsten aber kein SQL/Base-Kenner :-)
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Eingabeformular- Felder-Anzeige nach/zur Auswahl aktualisieren

Beitrag von RobertG »

Hallo Hans,
Gerstenkorn hat geschrieben:Bei Lösung zwei, wenn ich mit "Klick" eine Auswahl treffe, dann keine "Eingabe" möglich ist, nur wenn ich dann die ID ( also die Nummer) eingebe, funktioniert alles so wie es soll.
Dann hast Du vermutlich die Formulare nicht korrekt verbunden. Das macht bei den ersten Versuchen mit Base in der Regel der Assistent - aber nur dann, wenn Du vorher unter Extras → Beziehungen eine Beziehung zwischen den Tabellen definiert hast. Ansonsten musst Du das Formular erneut bearbeiten, über den Formularnavigator ins Unterformular gehen und die entsprechende Verknüpfung der Felder vornehmen.
Gerstenkorn hat geschrieben: Auch im Handbuch finde ich leider keinen Hinweis, wie ich eine Anzeige hinbekomme, die mir eben die entsprechenden ID-Werte aus einer anderen hinterlegten Tabelle (Standort-ID in Standorte) anstelle der ID-Nummern anzeigt.
Das ist jetzt zu den Listenfeldern? Der Code, den ich Dir gepostet habe, war so ein Code für ein Listenfeld. Die Abfrage zeigt zwei Felder der Datenbank. Ein Feld (das erste) wird im Formular angezeigt. Das andere Feld (das zweite) wird im Formular abgespeichert. Das zweite Feld ist in der Regel das Feld, das den Fremdschlüssel enthält.

Wenn Du etwas Zeit aufbringen kannst, dann versuche aus dem Einführungskapitel des Base-Handbuches das Testbeispiel nach zu vollziehen. Da steckt sowohl die Beziehung Hauptformular- Unterformular als auch die Beziehung zu Listenfeldern drin.

Gruß

Robert
Gerstenkorn
*
Beiträge: 18
Registriert: So, 26.04.2009 09:40

Re: Eingabeformular- Felder-Anzeige nach/zur Auswahl aktualisieren

Beitrag von Gerstenkorn »

Hallo Robert,

nur schnell > vielen Dank für Deinen Sonntagseinsatz :-),

die Beziehungen werde ich überprüfen, angezeigt wird alles so, wie von Dir vorgesehen, nur eben die ID anstelle Klartext. Ich werde aber noch einmal das Testbeispiel vornehmen, damit ich das auch richtig nachvollziehen kann und melde mich dann hoffentlich mit vollem Erfolg.

Einen schönen Wochenanfang und viele Grüße :-) Hans
Ich verwende Apache OO 4.1.2, WIN 10 Pro 64, habe bisher nur mit XLS gearbeitet - wenn auch sehr ausgefeilt - kenne noch Notes-DB, bin ansonsten aber kein SQL/Base-Kenner :-)
Antworten