Frage stellen
0

Mehrspaltige Liste erstellen

gefragt 2018-12-07 22:56:04 +0200

peschiber Gravatar-Bild

updated 2018-12-07 23:02:45 +0200

Mehrspaltige Liste Anzeigen Ziel: Es soll ein Formular erstellt werden, um gezielt einzelne bereits gespeicherte Datensätze aufzurufen. In dem Formular befinden sich ein Liste und darunter fast alle Textfelder zum Beispiel der Stammdaten. Um den richtigen Datensatz auszuwählen, muss die Liste allerdings folgende Daten enthalten: Nachname, Vorname, Geburtsdatum (um Verwechselungen zu vermeiden, könnte ja sein, dass es in der Tabelle Daten gibt von Personen, die sowohl den gleichen Vornamen, als gleichen Nachnamen haben, daher wird Geburtstag in der Liste benötigt. Daher auch die Notwendigkeit einer mehrspaltigen Liste. Vorstellung: Benutzer*in wählt aus der Liste einen entsprechenden Eintrag und anschließend sollen alle im Formular enthaltenen Textfelder und Optionsfelder entsprechend der in der Tabelle gespeicherten Daten automatisch ausgefüllt werden, um dann gegebenenfalls einzelne Einträge zu ergänzen oder zu ändern. Ich habe nichts im Internet gefunden, wie mehrspaltige Listen unter Base erstellt werden können. Und Base,Version 6.0.8, bietet mir scheinbar keine Möglichkeit an, mehrspaltige Listen anzulegen, egal ob in einem Listenfeld oder Kombinationsfeld. Ich möchte auch kein Unterformular einfügen, sondern nur eine mehrspaltige Dropdown-Liste. Sollte das mit LibreOffice Base nicht möglich sein, wäre das mehr als Schade und meine kurzer Einstieg seit einigen Tagen in Libre Office hätte sich dann leider erledigt. Von daher bitte keine Scheu zu sagen: geht leider nicht. Hoffe natürlich, die Antwort fällt positive aus. Danke im Voraus für die Antworten.

Bearbeiten Tags ändern Melden schließen vereinen löschen

2 Antworten

1

geantwortet 2018-12-08 09:52:12 +0200

RobertG Gravatar-Bild

Von der Beschreibung her suchst Du nicht nach einer mehrspaltigen Liste sondern nach einem Feld, aus dem Du Daten aussuchen kannst, die dann den Blick auf die gesamten Daten öffnen.

So etwas geht durch ein Listenfeld, das den Inhalt mehrerer Spalten darstellen kann, aber eben nur einen entsprechenden Primärschlüssel zu diesen Daten weitergibt. Das regelst Du am einfachsten durch eine separate Tabelle "Filter", die neben einem Primärschlüsselfeld (Ja/Nein-Feld, nur eine Datenzeile wird gebraucht) eben so ein Feld enthält, das den Wert speichern soll, der aus dem Listenfeld ausgesucht wird (z.B. "PersonID"). Den ersten Datensatz gibst Du vor, indem Du das Ja/Nein-Feld einfach auf "Ja" setzt und speicherst.

Jetzt machst Du ein Formular, das diese Tabelle als Inhalt des Hauptformulars hat. Dieses Hauptformular soll nur zum Ändern von Daten dienen und zeigt auch nur den Datensatz an, bei dem das Ja/Nein-Feld auf "Ja" steht. Das einzige Feld, das aus der Tabelle im Hauptformular existiert, ist das Feld "PersonenID". Dies wird zu einem Listenfeld mit der gewünschten Darstellung gemacht (mehrere Spalten über eine Abfrage gekoppelt, siehe Handbuch).

Das Unterformular enthält Zugriff auf die Tabelle, in der Du Daten bearbeiten möchtest. Hauptformular und Unterformular sind über die "PersonenID" miteinander verknüpft. Außerdem brauchst Du im Unterformular noch einen Button, der die Anzeige des Formulars aktualisiert, wenn in dem Listenfeld des Hauptformulars eine Änderung vorgenommen wurde. Diesen Button positionierst Du am besten direkt neben das Listenfeld und benennst ihn mit "OK". Sieht dann so aus, als wäre er im Hauptformular, dient aber dazu, dass beim Verlassen des Hauptformulars (Listenfeld betätigt) der Wert gespeichert und anschließend das Unterformular mit dem Wert versorgt wird.

Wenn Du mit der Filterung auch erreichen willst, dass bei keiner Auswahl im Listenfeld alle Datensätze angezeigt werden, dann kannst Du mit dieser Hauptformular/Unterformular-Konstruktion nicht arbeiten. Hier musst Du Dich mit Abfragen auseinandersetzen und die beiden Formulare als Nebenformulare betreiben. Siehe dazu das Handbuch.

Bearbeiten Melden löschen Link mehr

Kommentare

Hallo Robert ist mir fast unangenehm noch mal nachzuhaken. Nach dem Motto: Bilder sagen mehr als 1000 Worte, versuche ich ein Wirter Dokumkent anzufügen, um besser zu verdeutlichen, was ich gerne machen würde.Linktext Ich habe keine Ahnung ob das mit dem Anhang funktioniert

peschiber Gravatar-Bildpeschiber ( 2018-12-09 18:15:22 +0200 )Bearbeiten

Du musst vermutlich einen Anhang machen. Der Linktext geht ins Leere, weil das eine Datei auf Deinem Rechner ist.

RobertG Gravatar-BildRobertG ( 2018-12-09 18:16:57 +0200 )Bearbeiten
0

geantwortet 2018-12-08 19:49:12 +0200

peschiber Gravatar-Bild

Vielen Dank für die sehr ausführliche Antwort. Aber das ist eigentlich nicht die Lösung die ich suche. Ich würde gerne ein mehrspaltiges Kombinationsfeld erstellen, in dem z. B. Name, Vorname und Geburtstag stehen. Dort soll z. B. aufgekistet sein: Müller Bernd 22. 12. 1988 und Müller Bernd 30.12. 1999. Ich wähle hier in dem Beispiel den 2. Müller mit Geburtsdatum 30.12. 1999 aus, das Kombinatinsfeld klappt wieder zu und der entsprechende Datensatz wird ins Formular geladen. Allein schon aus optischen Gründen, möchte ich kein Listenfeld nutzen, weil es zuviel Platz einnimmt. Allerdings ist mir aufgefallen, dass bei Nutzen des Kombifeldes das entsprechende Textfeld nicht sofort aktualisiert wird, sondern erst wenn ich den aktuell Datensatz wechsle, oder in ein anderes Textfeld clicke. Ist es erforderlich in dem Fall ein Macro zu schreiben? Beispiel Nach Verlassen oder änderung des Kombifeldes set focus auf textfeld xx? Nach Möglichkeit möchte ich Makros vermeiden, zum einen weil ich mich erst seit wenigen Tagen mit Base beschäftige, abar zum anderen auch deshalb, weil ich langfristig Formulare als Standallone nutzen möchte und bei denen meines Wissens die Makros nicht funktionieren

Bearbeiten Melden löschen Link mehr

Kommentare

Da scheint mir ein Missverständnis vor zu liegen. Kombinationsfelder und Listenfelder unterscheiden sich äußerlich überhaupt nicht. Kombinationsfelder sind allerdings dafür gedacht, neben den angezeigten Werten auch neue Werte einzugeben. Sie speichern immer das ab, was Du siehst. Listenfelder hingegen zeigen nur das an, was bereits in der Datenbank vorhanden ist. Neue Daten für die Listenfelder musst Du zuerst erstellen. Dann liest das Listenfeld diese Daten aus. Listenfelder speichern in der Regel den zu den angezeigten Daten passenden Primärschlüssel.

Schau Dir einmal das Beispiel Adressen mit Filter an. Ich habe da keine Daten rein gepackt, müsstest Du also zuerst für die Funktionsweise befüllen. Die Filterung erfolgt mit einem Listenfeld.

... und zu den Makros: Natürlich kannst Du auch Makros in Standalone-Formularen installieren. Die Makros gehören dann in die Formulardatei.

RobertG Gravatar-BildRobertG ( 2018-12-09 08:53:07 +0200 )Bearbeiten

Hallo Robert, ganz lieben Dank für die schnelle Antwort und die Beispieldatei. Wollte mir die Strukturen der Beispieldatei "Adressen mit Filter" anschauen bzw. sie mit Daten füllen. Ging aber leider nicht. Der Versuch mir die Struktur der Tabellen, Abfragen, des Formulares anzuschauen, scheiterte schon deshalb, weil mir keine „Bearbeiten“ – Modus angeboten wurde. Und Tabellen, Abfragen oder Formulare einfach aufrufen ging auch nicht, weil es dann folgende Fehlermeldung gab: „Die Verbindung zur Datenquelle konnte nicht hergestellt werden. General Error …“ Auch mehrmalige Versuche, Datei schließen, neu aufrufen usw. half nicht. Was allerdings dann nach dem 3. Versuch passierte: Base stürzte unerwartet ab und konnte nur noch mit dem Taskmanager beendet werden. Das Fehlerprotokoll habe ich dann weitergeleitet. Noch einen schönen Adventsonntag, Peter

peschiber Gravatar-Bildpeschiber ( 2018-12-09 16:24:08 +0200 )Bearbeiten

Hast Du die Datenbank wirklich heruntergeladen? Wenn ich das so lese scheint mir, dass Du die Datei im Internet öffnen wolltest - und das klappt natürlich nicht.

RobertG Gravatar-BildRobertG ( 2018-12-09 18:15:34 +0200 )Bearbeiten

Danke Robert Nein, die Datenbank befindet sich auf meinem Rechner, ist abgespeichert und ich kann sie unter Base aufrufen. Sie wurde nach dem unerwarteten Absturz von Libre Office auch wieder "repariert" Habe vor wenigen Minuten versucht ein Wirter Dokument hochzuladen. Das scheint aber nicht geklappt zu haben. Als Link wahrscheinlich die falsche Syntax für den Linktext verwendet. Ich versuches es noch mal. Die Datei befindet sich bei mir (OS Windows) auf der Partiton D/ Mehrspaltige Dropdown-Liste.odt : [Linktext]//D:/Mehrspaltige Dropdown-Liste.odt) Für einen Hinweis, Syntaxe für Linktext für Windows Rechner wäre ich dankbar

peschiber Gravatar-Bildpeschiber ( 2018-12-09 18:29:34 +0200 )Bearbeiten

Du kannst keinen Link auf Deinen eigenen Rechner hier eingeben. Der hat doch keine nach außen sichtbare Adresse - sollte zumindest nicht sein. Wenn das nämlich so wäre, dann könnte ja jede(r) Deine Festplatte durchstöbern.

Die Datenbank habe ich testweise von meinem Link aus hochgeladen. Kann ich ohne Probleme hier öffnen. Gibt es da bei Dir eventuell das Problem, dass die aus irgendeinem Grunde schreibgeschützt auf Deinem Rechner abgelagert wird?

RobertG Gravatar-BildRobertG ( 2018-12-09 19:22:49 +0200 )Bearbeiten
Registrieren oder einloggen, um zu antworten

Antwortwerkzeuge

1 Beobachter

Statistik

Gefragt: 2018-12-07 22:56:04 +0200

Angesehen: 57 Mal

Aktualisiert: Dec 08 '18