Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Sortierung der Datenherkunft wird nicht übernommen

Begonnen von accessy, Januar 23, 2013, 13:05:20

⏪ vorheriges - nächstes ⏩

accessy

In meinem Formular öffne ich in einer Textbox per Doppelklick eine Liste zur Auswahl von Werten.
Die Liste hat als Datenherkunft eine Tabelle. Und diese Tabelle hat nur EIN einziges Feld.
Dieser Tabelle habe ich nun 2 neue Werte hinzugefügt.
Dann habe ich die Tabelle neu sortiert von A...Z...und natürlich gespeichert.

Öffne ich nun wieder per Doppelklick diese Auswahlliste, sind zwar die beiden neuen Elemente mit drin,
stehen aber in der Liste ganz unten; also NICHT sortiert wie in der Tabelle.

Warum wird die Tabelle nicht exakt 1 zu 1 eingelesen, so wie die Tabelle es auch ausgibt?

Ich habe mindestens 20 Listen, die ich per Doppelklick öffne und als Herkunft eine Tabelle hat.
Muss jetzt alle Tabellen in eine Abfrage packen, srtiert Absteigend wählen, speichern und als Datenherkunft nehmen?


database

Hallo,

Zitatöffne ich in einer Textbox per Doppelklick eine Liste zur Auswahl von Werten

Wie machst du das - bzw. wie stellst du denn die Liste zusammen?
Und warum verwendest du nicht gleich ein Kombifeld? Für dieses deklarierst du einmalig eine Abfrage (SQL-Statement) in den Steuerelementeigenschaften und hast fortan Ruhe

accessy

Ein Kombifeld deshalb nicht, weil dann Eingaben, die NICHT in der COMBO stehen auch NICHT akzeptiert werden.
Das ist zwar über Umwege mit VBA abschaltbar, aber mit der Listbox geht es ja auch.

Also, im Entwurf des Formulars liegt eine Listbox, positioniert an der Stelle, wo sie nach dem Doppelklick erscheinen soll.
Im VBA steht
Zitat
Private Sub Schneidstoff_DblClick(Cancel As Integer)
   Me.Liste_Schneidstoffe.Visible = True
End Sub

Private Sub Liste_Schneidstoffe_Click()
   Me.Schneidstoff = Liste_Schneidstoffe.Value
   Me.Schneidstoff.SetFocus
   Me.Liste_Schneidstoffe.Visible = False
End Sub

Die Datenherkunft der Liste:
In den Eigenschaften steht in Herkunftstyp Tabelle/Abfrage
Und in Datensatzherkunft steht der Name der Tabelle.
Eine Vorgabe der Sortierung ist hier nicht einstellbar.

Daher halt meine Frage, ob ich alle meine Listen,
die ihre Datenherkunft aus einer Tabelle beziehen, über die Abfrage gehen müssen, um die Sortierung zu erhalten.

DF6GL

Hallo,

ZitatEin Kombifeld deshalb nicht, weil dann Eingaben, die NICHT in der COMBO stehen auch NICHT akzeptiert werden.

Um diese Situation zu "bereinigen", d. h. die Möglichkeit zur Eingabe an richtiger Stelle zu schaffen, gibt es das Kombifeld-Ereignis "Bei nicht in Liste", mit/bei dem z. B. ein Eingabeform geöffnet oder auch gleich der im Kombifeld eingegebene Wert in die entspr. Tabelle eingfügt werden kann.


ZitatDas ist zwar über Umwege mit VBA abschaltbar, aber mit der Listbox geht es ja auch.

Mit der Listbox ist keine Eingabemöglichkeit gegeben...
Das Kombifeld ist in dieser Beziehung viel komfortabler.



ZitatDaher halt meine Frage, ob ich alle meine Listen,
die ihre Datenherkunft aus einer Tabelle beziehen, über die Abfrage gehen müssen, um die Sortierung zu erhalten.

Ja...

und etwa so:

Private Sub Schneidstoff_DblClick(Cancel As Integer)
   Me.Liste_Schneidstoffe.Requery
   Me.Liste_Schneidstoffe.Visible = True
End Sub

accessy


database

Hallo,

gut, OK dann halt ein Listenfeld ...  ::)

ZitatUnd in Datensatzherkunft steht der Name der Tabelle.
Eine Vorgabe der Sortierung ist hier nicht einstellbar.
Die Sortierung ist schon einstellbar und die Erstellung einer eigenen gespeicherten Abfrage ist nicht unbedingt Voraussetzung dafür.
Wähle bei der Datensatzherkunft für das Listenfeld nicht die Tabelle aus sondern klick auf die drei Punkte daneben.
Erstelle jetzt die Abfrage in dem du die Tablle, deren benötigten Felder und die entsprechende Sortierung angibst.
Schließe den Abfrageeditor und aktzeptiere die Frage nach der Aktualisierung.
Ab jetzt steht in der Datensatzherkunft nicht der Name der Tabelle sondern ein SQL-Statement, welches die benötigten Daten in der gewünschten Sortierung liefert,
egal wie die Daten in der Tabelle angeordnet sind (was ja auch in jeder Beziehung vollkommen egal sein sollte).

Die Aktualisiserung der Inhalte läuft dann 1:1 nach DF6GLs Vorschlag.

HTH


MzKlMu

Hallo,
ZitatMuss jetzt alle Tabellen in eine Abfrage packen, srtiert Absteigend wählen, speichern und als Datenherkunft nehmen?
unabhängig von vorstehenden Ratschlägen sollte im Regelfall eine gespeicherte Abfrage verwendet werden. Der schnellste Zugriff auf Daten erfolgt über eine Abfrage, das ist auch schneller als der Zugriff über die Tabelle direkt. Das kann bei großen Datenbeständen deutlich werden.
Außerdem orientiert sich die Sortierung einer Tabelle am Primärschlüssel der Tabelle. Ohne Primärschlüssel ist die Reihenfolge der Datensätze unbestimmt und kann auch schon mal durcheinander geraten. Daher, immer eine Abfrage verwenden. Ob gespeichert oder direkt Select ... hängt von der Datenmenge ab.
Gruß Klaus