Der erste Wert in einer Listbox soll NULL sein

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

madmatmed
**
Beiträge: 32
Registriert: Do, 15.01.2015 09:26

Der erste Wert in einer Listbox soll NULL sein

Beitrag von madmatmed »

Hallo zusammen,

mal wieder eine Frage zu der ich leider nichts finden kann.

Ich hab eine Tabelle mit einem Feld Konto. Letztendlich sollen hier nur 2 Werte möglich sein: Girokonto, Sparkonto. Deswegen habe ich mich für einen TinyInt entschieden mit 0 = Girokonto und 1 = Sparkonto. In der Tabelle steht immer 0 oder 1, aber in den Formularen arbeite ich mit Listenfeldern:
Listen-Einträge: "Girokonto";"Sparkonto"
Art des Listeninhalts: Werteliste
Listeninhalt: "0";"1"
Alles super bis hierhin.

Jetzt habe ich ein Erfassungsblatt gebaut, in dem ich Buchungen erfassen kann.

Hier gibt es das Feld Gegenkonto. Dies unterscheidet sich in seinen Eigenschaften etwas vom obigen Listenfeld:
Listen-Einträge: "";"Girokonto";"Sparkonto"
Art des Listeninhalts: Werteliste
Listeninhalt: "";"0";"1"

Ist dieses Feld gefüllt, so wird beim Buchen nicht nur eine Buchung, sondern auch eine zweite Gegenbuchung vorgenommen. Ist es leer (also NULL) so findet nur eine einfache Buchung statt. Das funktioniert auch alles.

Wenn ich nun das Erfassungsblatt starte, steht in dem Feld Gegenkonto auch NULL drin. Passiert ist es mir allerdings, dass ich das Feld Gegenkonto asuwähle, dann aber merke, dass ich es nicht benötige und den Wert zurücksetzen möchte, dann funktioniert dies nicht. Er macht aus dem ersten leeren Eintrag immer eine 0 und zeigt mir als Gegenkonto das Girokonto an.

Ist es möglich den Wert "NULL" in der Werteliste zu hinterlegen?

Falls ja, wie? Falls nein, habt ihr eine andere Idee?
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Der erste Wert in einer Listbox soll NULL sein

Beitrag von F3K Total »

Hi,
wenn du das Listenfeld an eine Tabelle bindest, hast du auch eine Leerzeile (Null) zur Auswahl, siehe Beispiel.
HTH R
Dateianhänge
BoundListbox.odb
(11.42 KiB) 67-mal heruntergeladen
madmatmed
**
Beiträge: 32
Registriert: Do, 15.01.2015 09:26

Re: Der erste Wert in einer Listbox soll NULL sein

Beitrag von madmatmed »

Hm.... Mir ging es darum genau das nicht zu tun...

Jetzt habe ich noch eine andere Idee, die leider funktioniert....

Leider, weil ich sie nicht besonders schön finde...

Hab die Listenart auf SQL umgestellt und folgende Abfrage hinterlegt... dann funktioniert es einwandfrei...

Code: Alles auswählen

SELECT 'Girokonto' AS "Account", '0' AS "ID" FROM "Workdate"
UNION ALL
SELECT 'Sparkonto' AS "Account", '1' AS "ID" FROM "Workdate"
... aber ich weiß nicht, ob mir das gefällt

Nicht wundern.... das Workdate steht da, weil ich unbedingt eine FROM Klausel benötige.... und in Workdate immer genau ein Datensatz vorhanden ist...
madmatmed
**
Beiträge: 32
Registriert: Do, 15.01.2015 09:26

Re: Der erste Wert in einer Listbox soll NULL sein

Beitrag von madmatmed »

Ich hab mich jetzt für deine Lösung nur im etwas größerem Stil entschieden.

Ein Tabelle Option, in der ich dann alle (auch zukünftige) Option-Felder verwallten kann:
Felder
ID (PK, Auto-Increment)
OptionValue (TINYINT)
OptionCaption (VARCHAR)
OptionGroup (VARCHAR)

und dann in der Listbox die Abfrage:

Code: Alles auswählen

SELECT "OptionCaption", "OptionValue" FROM "Option" WHERE "OptionGroup" = 'Account'
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Der erste Wert in einer Listbox soll NULL sein

Beitrag von F3K Total »

Mir ging es darum, das die Listbox ihren Wert in eine Tabelle, an die sie gebunden ist, schreibt, in meinem Beispiel F, damit eine leere Zeile mitkommt.
Oder schaffst Du das ohne?
Gruß R
madmatmed
**
Beiträge: 32
Registriert: Do, 15.01.2015 09:26

Re: Der erste Wert in einer Listbox soll NULL sein

Beitrag von madmatmed »

Nein nein, bei mir ist es genauso... Ich habe eine Tabelle der Erfassung zu Grunde liegen.

Um ehrlich zu sein, wüsste ich gar nicht, wie das geht, wenn ich keine Tabellen als Grundlage hätte.

Überhaupt bin ich mir bei meiner Datenbank nicht so richtig sicher. Ich bin eigentlich ein Freund davon sauber zu programmieren und mich der Ideologie der jeweiligen Programmierumgebung anzupassen, auch wenn ich selber meinen Stil mit reinbringe. Bei OOo Base finde ich leider keine Musterlösungen und ich finde es schwer einen sauberen Stil reinzubringen. Könnte aber auch daran liegen, dass ich mich mit Base erst 2 Wochen beschäftige....

Hätte vielleicht jemand mal Lust meine DB ein bisschen anzuschauen und vielleicht ein bisschen was dazu zu sagen? Ich hab die DB mal angehängt. Sie ist noch Work in Progress, allerdings habe ich meine grundlegenden Funktionen schon drin, so dass ich heute mit meinem Haushaltsbuch in Base beginnen werde.

Um die DB nutzen zu können, benötigt ihr HSQLDB 2.3.2 und ich verwende die momentan aktuellste Version von LibreOffice.
Dateianhänge
HaushaltsbuchKopie.zip
(59.14 KiB) 80-mal heruntergeladen
Antworten