Ich habe eine ComboBox, die eine Länderliste lädt. Jedes Mal, wenn ich ein Element auswähle und dann auf ein anderes Objekt des Formulars fokussiere, wird sie auf 0 zurückgesetzt. Diese ComboBox ist mit einem Integer-Wert in der Haupttabelle verknüpft (sie speichert den Index, nicht die Zeichenfolge des Landes).
Was zum Teufel mache ich falsch?
Antwort1
Wenn ich Sie richtig verstehe, möchten Sie eine ComboBox, die eine Liste von Ländernamen anzeigt und eine Art Ländercode speichert. Sie können eine ComboBox verwenden, um anzuzeigen und zu speichernAFeld, aber nicht, um ein Feld anzuzeigen und ein anderes zu speichern. Im Gegensatz zum ListBox-Steuerelement verfügt die ComboBox nicht über eine Bound Field
Eigenschaft, die erforderlich ist, um zwei Felder zu verwenden. Die Bound Field
Eigenschaft bestimmt, welches Feld in Ihrer Zieltabelle gespeichert wird.
Sie müssen ein ListBox-Steuerelement verwenden, um diese Funktionalität zu erhalten. Das ListBox-Steuerelement sollte Ihnen einen Assistenten anzeigen. Wählen Sie zuerst die Tabelle aus, aus der Sie Daten anzeigen möchten.
Wählen Sie dann das Feld aus, das Sie anzeigen möchten.
Wählen Sie abschließend das Feld aus, in dem Sie den Wert speichern möchten (Liste links) und das Feld, aus dem Sie den Wert abrufen möchten (Liste rechts).HINWEIS: In diesem Beispiel verwende ich nur eine Tabelle. Daher habe ich in der linken und rechten Liste dieselben Optionen. Normalerweise würden Sie diese Daten aus einer anderen Tabelle abrufen, um sie in der aktuellen anzuzeigen und zu speichern – normalerweise als eine Art Fremdschlüsselbeziehung.
Dann müssen wir dafür sorgen, dass sich die ListBox wie eine ComboBox verhält, d. h., die ListBox muss ein Dropdown-Menü haben. Klicken Sie mit der rechten Maustaste auf die ListBox und gehen Sie zu Control
. Setzen Sie die DropDown
Eigenschaft auf Yes
. Setzen Sie die LineCount
auf die Anzahl der Elemente, die angezeigt werden sollen, ohne dass gescrollt werden muss (mir persönlich gefallen 5). Setzen Sie zuletzt die Height
auf etwas, das eher einem Textfeld ähnelt.
Referenz: http://user.services.openoffice.org/en/forum/viewtopic.php?p=164740#p164740