Neuigkeiten:

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

Mobiles Hauptmenü

Suchbegriff im Kombinationsfeld übernehmen bei Datensatznavigation

Begonnen von ToBu, Oktober 03, 2023, 17:37:52

⏪ vorheriges - nächstes ⏩

ToBu

Tag zusammen, mein Kombinationsfeld funktioniert sehr gut, es werden alle Datensätze der liste gefunden und gezeigt. Wenn ich allerdings über den Datensatznavigator durch die zugrundeliegende Tabelle scrolle, funktioniert das auch, allerdings bleibt der letzte gezeigte Suchbegriff im Kombifeld bestehen, der nicht beim scrollen aktualisiert wird. Wie lautet die VBA-Syntax, dass Suche und Navigation zueinander passen?
Vielen Dank für Eure Hilfe!
Gruß ToBu

MzKlMu

Hallo,
Du musst im Formularereignis "Beim Anzeigen" das Formularfeld für die Suche mit dem Kombifeld synchronisieren.

Falls Du es genauer brauchst, musst Du weitere Einzelheiten erklären:

- Datenherkunft des Kombis
- Spaltenzahl des Kombis
- Spaltenbreiten
- gebundene Spalte des Kombis
Gruß Klaus

ToBu

Vielen Dank Klaus, aber welches eingebettete Makro bewirkt die Synchronisation oder welche Ereignisprozedur? Mir würde auch reichen, wenn im Kombi nach ausgewähltem Datensatz das Display wieder geleert würde wie es beim erstmaligem Öffnen des Formulars der Fall ist.
Gruß ToBu

MzKlMu

Hallo,
Zitatoder welche Ereignisprozedur?
Die habe ich doch oben in meiner Antwort genannt ("Beim Anzeigen").
Eingebettete Makros kannst Du gleich vergessen. Es gibt hier niemand der damit arbeitet. Hilfe wirst Du dazu eher keine bekommen. Sinnvoll ist nur VBA.

Zitat.... das Display wieder geleert
Welches Display? Du meinst wohl eher die Felder leeren, oder ?

Wenn Du nicht klar kommst, warum beantwortest Du nicht meine Fragen ?
Gruß Klaus

ToBu

Hallo Klaus, ich bin leider nicht so fit in VBA. Ja, ich möchte die Felder im Kombi leeren, nachdem der Datensatz gefunden wurde.
Die zu klärenden Einzelheiten habe ich nicht als Frage verstanden.
- Datenherkunft des Kombis:
  Tabelle: Stamm_Hersteller : SELECT [Stamm_Hersteller].[IDNr], [Stamm_Hersteller].[KurzFirma], [Stamm_Hersteller].[Ort] FROM Stamm_Hersteller;
- Spaltenzahl des Kombis: 2 IDNr, KurzFirma
- Spaltenbreiten: 0,052cm;2,545cm
- gebundene Spalte des Kombis: 1

MzKlMu

Hallo,
bitte beschreibe noch wie Du suchst?
Eingebettetes Makro?
Auch das bitte zeigen.
Gruß Klaus

ToBu

Guten Abend Klaus,
Eingebettetes Makro: SuchenDatenSatz
Objekttyp: Formular
Objektname: Eingabe_Stamm_Hersteller
Aufnahme: Erster
Bedingung:="[IDNr] = " & Str(Nz([Screen].[ActiveControl];0))

Seltsamerweise funktioniert das leider nicht mehr! Zum Verzweifeln!
Gruß ToBu

ToBu


MzKlMu

Hallo,
nenne mir mal noch den Namen (im Formular) des Kombis und den Namen des Feldes das die IDNr anzeigt.
Ich baue Dir das mal zu VBa um, zu Makros kann ich nicht helfen.
Gruß Klaus

ToBu

Hallo Klaus, der Name im Eigenschaftsfenster unter "Andere" lautet: AuswahlFirma
Datenquelle des Formulars: Stamm_Hersteller
Datensatzherkunft des Kombis: SELECT [Stamm_Hersteller].[IDNr], [Stamm_Hersteller].[KurzFirma], [Stamm_Hersteller].[Ort] FROM Stamm_Hersteller;

Die IDNr erscheint erst nach der 1. Auswahl im Kombi Listenfeld.
Ansonsten erscheint die IDNr nirgends, also auch kein Name.
Vielen Dank, dass du dich meiner annimmst!
Gruß ToBu

Beaker s.a.

@ToBu
Stelle mal als erstes die Spaltenbreiten auf 0cm, 3cm (oder wie lang der Name eben ist)
Dann löscht du das Macro und wählst für das Ereignis "Nach Aktualisierung" "Ereignisprozedur"
und klickst auf die drei Punkte. Das schaltet in den VBE und zeigt dir den leeren Prozedurrumpf
Private Sub DeinKombiName_AfterUpdate()
End Sub
Den ergänzt du um eine Zeile
Private Sub DeinKombiName_AfterUpdate()
   Me.Recordset.FindFirst "IDNr = " & Me.DeinKombiName
End Sub
Um das Kombi beim DS-Wechsel zu leeren
Private Sub Form_Current()   'Ereignis "Beim Anzeigen")
    Me.DeinKombiName = NULL    '!!! NICHT 0 !!!
End Sub

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

ToBu

Hallo Ekkehard,
du hast den Nagel auf dem Kopf getroffen! Vielen Dank für deinen "Senf" dazu! Jetzt klappt es so, wie ich es mir vorgestellt habe, wunderbar!!! Es ist schon toll, dass ihr Profis euch mit so jemandem wie mich als Laien einlasst und helft.
Dankesgruß von ToBu