PDA

Vollständige Version anzeigen : Combobox (Eingabe/Auswahl/Filter) in Datenblatt


mischma
20.06.2012, 08:32
Hallo zusammen,

ich habe ein Datenblatt mit einer Combobox [MatNr].

In diese Combobox kann der User entweder einen Eintrag auswählen oder einen beliebigen Suchtext/Materialnummer eingeben.

Dieser Suchtext wird dann in der verborgenen Comboboxspalte [MatKey] gesucht und die Einträge der Combobox gefiltert.

Solange der User noch keinen Eintrag der Combobox per Mausklick ausgewählt hat, erscheint die Anzahl z.B. '5 Einträge gefunden' im Feld [MatBez].

Wählt der User einen Comboboxeintrag, erscheint dort die Materialbezeichnung zur ausgewählten Materialnummer.

Es gibt leider noch Schönheitsfehler:

Die Aktualisierung der Combobox scheint nicht immer korrekt zu sein.
Gibt man z.B. '84' ein, werden nur 7 von 8 Einträgen angezeigt...

Desweiteren sollen keine unvollständigen Einträge in der Combobox möglich sein (z.B. Eingabe '84' und dann Klick in anderes Feld/Datensatz.

Vielleicht kann mir jemand auf die Sprünge helfen :-)

Vielen Dank und Grüsse, Mike

Atrus2711
20.06.2012, 08:55
Gibt man z.B. '84' ein, werden nur 7 von 8 Einträgen angezeigt...
Irrtum. Es sind 8 (blätter mal hoch!). Aber die Liste springt zum zweiten der 8 Sätze, weil der erste die 84 nicht vorne, sondern mittendrin enthält. Das liegt an deinem Change-Code, der die Datenquelle ändert und dann (wie üblich beim Kombis) den ersten passenden Satz markiert.

Desweiteren sollen keine unvollständigen Einträge in der Combobox möglich sein (z.B. Eingabe '84' und dann Klick in anderes Feld/Datensatz.
Da könnte folgender Code abhelfen:
Private Sub Form_BeforeUpdate(Cancel As Integer)
If IsNull(Me.MatNr) Then
MsgBox "Bitte wählen!"
Cancel = True
End If
End Sub

mischma
20.06.2012, 11:45
Hi Atrus,

danke für Deine Antwort.

Ich habe mich etwas falsch ausgedrückt...

Wenn man den Cursor ans Ende einer MatNr setzt und mit der [<---] Taste mehrere Zahlen entfernt, wird zwar der korrekte Text in MatBez angezeigt,
doch die Combobox nicht aktualisiert.

Danke, Mike

Atrus2711
20.06.2012, 11:51
Kann ich nicht nachvollziehen. Ich gebe 568 ein, klappt; lösche ich die 8, gehts auch...

Beispiel?

mischma
20.06.2012, 15:07
Hi Atrus,

gib bitte '807378' ein und verlasse den Datensatz. Gehe nun wieder in das Feld und lösche die letzten 4 Zahlen '7378'...

Danke und Grüsse, Mike