Listbox ohne Datenbankfeld als Kannangabe ?

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Listbox ohne Datenbankfeld als Kannangabe ?

Beitrag von WSO »

Guten Morgen Zusammen,
ich versuche eine Listbox, die auf einer Abfrage basiert, aber auf kein Datenbankfeld verweist als Kanneingabe zu definieren.
Im Kontrollfeld ist die Eigenschaft "Eingabe erforderlich" aber gesperrt. :(
Wenn ich der Listbox ein Datenfeld zuordne, ist "Eingabe erforderlich" wieder offen.
[img]
Unbenannt-1.png
Unbenannt-1.png (21.85 KiB) 4869 mal betrachtet
[/img]

Ein unschöner workaround ist ein Dummy-Satz ("Ohne Auswahl") in der Tabelle auf dem die Abfrage der Listboxinhalte beruht .
Würde das nur ungerne machen, da die Tabelle operative Daten enthält und ich den Dummy-Satz in allen anderen Funktionen ausblenden müsste :(

Kennt jemand eine bessere Lösung für das Problem?
LO 4.3, WIN 7

Dank und Gruss,
WSO
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Listbox ohne Datenbankfeld als Kannangabe ?

Beitrag von F3K Total »

Ich verstehe die Frage nicht, wenn die Listbox nicht an ein Tabellenfeld gebunden ist, kannst Du die Eingabe doch nur per Makro weiterverarbeiten, und alles weitere damit steuern.
Wozu brauchst du das?
Gruß R
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Listbox ohne Datenbankfeld als Kannangabe ?

Beitrag von WSO »

Hallo R,
ja, ich verarbeite alle Daten des Formulars in Makros.
Die Formularfelder sind an keine Datenbankfelder gebunden.
Das Problem der Listfelder ist, dass "keine Auswahl" in der Programmlogik anders behandelt werden muss als eine dedizierte Auswahl.
Mit einem zusätzlichem Markierfeld ("keine Auswahl") wäre das Promlem zu umschiffen. Kommt aber leider nicht in Frage: An das Formular sind hohe ergonomische Anforderungen gestellt sind (Massenerfassung). Es kommt hier darauf an, die Anzahl der Klicks, Mausbewegungen und Eingaben zu minimieren. Das Formular enthält mehrere dieser Listenfelder, die wegen der kontextabhängigen Vorbelegung nur im Ausnahmefall noch manuell manipuliert werden brauchen. Genau dafür mache ich mir den Aufwand.

Funktioniert alles sehr gut, wenn nur die Listenfelder mit einem Leerwert umgehen könnten.
Sieht danach aus, als ob ich das Design überarbeiten muss, mir fällt nur nichts Passendes ein.

Gruss,
WSO
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Listbox ohne Datenbankfeld als Kannangabe ?

Beitrag von F3K Total »

Moin, verstehe ich immer noch nicht.
Du kannst doch per Makro alles machen, z.B. die Listenfelder die umschifft werden sollen, ausblenden, deaktivieren, den Tabstop davon herunternehmen oder oder oder.
Es ist machbar, dass die Maus gar nicht mehr benötigt wird.
Am besten du lädst ein Beispiel, vereinfacht und verfremdet hoch.
Gruß R
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Listbox ohne Datenbankfeld als Kannangabe ?

Beitrag von WSO »

Moin,
die Steuerung über die Änderung der Feldeigenschaften ist nicht das Problem. Das funktioniert eindwandfrei.
Ich brauche einfach nur die Möglichkeit in einer Listbox, die nicht an ein Datenbankfeld gebunden ist, aber auf einer Abfrage basiert, auch "nichts" auszuwählen. Das bekomme ich aber nur bei Listboxen hin, die an ein Datenbankfeld gebunden sind.

Wenn sich das so bestätigt, habe ich vor, die Listboxen per Makro zu füllen anstelle eine Abfrage dafür zu verwenden.
Ich denke, so wird es gehen.
Gruss,
WSO
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Listbox ohne Datenbankfeld als Kannangabe ?

Beitrag von F3K Total »

Du kannst der Abfrage doch per UNION SELECT eine leere Zeile zufügen? (DIREKTER SQL-MODE)
BSP.:

Code: Alles auswählen

SELECT NAME, ID FROM TABELLE UNION  SELECT '' NULL FROM TABELLE WHERE ID = 1
R
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Listbox ohne Datenbankfeld als Kannangabe ?

Beitrag von WSO »

Ja super, so wird es gehen.
Danke für den Rat.
Gruss,
WSO
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Listbox ohne Datenbankfeld als Kannangabe ?

Beitrag von WSO »

Hier ein getestes Beispiel zum Einfügen einer Leerzeile in eine query mit Mysql:

Code: Alles auswählen

SELECT * FROM (
	(SELECT NULL AS `t1_name`, NULL AS `t1_id`, 0 AS `ord` )
        UNION
       (SELECT `t1_name`, `t1_id`, 1 as `ord`  FROM db.tabelle1) 
) as alias_name
ORDER BY `ord` ASC, `t1_name` ASC
Das Problem ist somit zufriedenstelled gelöst.
Gruss,
WSO
Antworten