online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon vaddaziegler vom 31.01.2019, 18:14 Options

Hilfe bei Makro zum Suchen von Feldinhalten

Hallo Könner,

ich brauche bitte Unterstützung bei der Erstellung eines Makros.

In einem Formular habe ich ein ungebundenes Textfeld [txtSuchwort,]dessen Inhalt mithilfe eines Makros bei der Datensatzsuche in einem Feld (Ordnername)dient. Das funkt auch super - das Problem ist, dass ich jetzt ein Makro brauche, welches anhand des Suchbegriffes in dem Textfeld, drei Felder (Ordnername, Registertext, Dokumentenbezeichnung) gleichzeitig durchsuchen will. Ich habe mit dem Editor die verschiedensten Konstellationen durchprobiert, aber es wird immer nur in einem Feld gesucht.

Ich hoffe, dass ihr mir helfen könnt und danke euch im Voraus!

Gruß Stefan


Antwort schreiben

Antwort 1 von Gudrun11 vom 02.02.2019, 11:57 Options

Hallo,

was willst Du genau machen ?? Einen betimmten Datensatz suchen oder eine gewisse Menge von Datensätzen nach Kriterien herausfiltern ??

Gruß
Gudrun

Antwort 2 von vaddaziegler vom 02.02.2019, 14:40 Options

Hi Gudrun,

ich will einen bestimmten Datensatz [txtSuchwort] suchen und natürlich, da Begriffe mehrfach vorkommen, auch weitersuchen. Es klappt zwar mit "Suchen Datensatz" und "Suchen Weiter" aus den auszuwählenden Makrobefehlen sehr gut - aber ich kann nur den Fokus auf ein Steuerelement setzen (zumindest schaffe ich es nicht andes bisher) und nicht gleichzeitig/nacheinander auf die genannten Drei: Dokumentenname;Registertext;Dokumentenbezeichnung. Der Cursor springt immer nur in den Datensätzen von einem Steuerelement zum gefundenen Datensatz.

Hast Du dazu einen Tipp??

Gruß
Stefan

Antwort 3 von erik vom 03.02.2019, 22:26 Options

Hallo Stefan,

theoretisch müsste es reichen, wenn du in deinem Makro die Eigenschaft "Nur aktuelles Feld" auf "Nein" stellst, dann würden neben den drei geforderten Felder alle restlichen aber ebenso durchsucht werden.

Wenn du nichts gegen VBA-Code hast, dann solltest du das hier ausprobieren:

Private Sub txtSuchwort_AfterUpdate()
	Dim strFilter As String
	
	With Me
		If Not IsNull(.txtSuchwort) Then
			strFilter = "[Ordnername] LIKE '" & .txtSuchwort & "' OR " & _
						"[Registertext] LIKE '" & .txtSuchwort & "' OR " & _
						"[Dokumentenbezeichnung] LIKE '" & .txtSuchwort & "'"
						
			.Filter = strFilter
			.FilterOn = True
		Else
			.FilterOn = False
		End If
	End With
End Sub


Wähle in den Eigenschaften des Suchfeldes unter "Nach Aktualisierung" den Eintrag "[Ereignisprozedur] aus und klicke dahinter auf "...". Füge dann den obigen Code ein.

Dieses Beispiel durchsucht gleichzeitig alle drei von dir genannten Felder. Um den Filter später wieder zu entfernen reicht es, wenn du dann den Inhalt des Suchfeldes wieder entfernst. Dank des LIKE-Operators kannst du dann auch nach Teilen von Wörtern suchen, so findet "*a*" alle Begriffe, in denen ein "a" vorkommt. :-)

Gruß
erik

Antwort 4 von vaddaziegler vom 04.02.2019, 11:01 Options

Hi Erik,

Zitat:
theoretisch müsste es reichen, wenn du in deinem Makro die Eigenschaft "Nur aktuelles Feld" auf "Nein" stellst, dann würden neben den drei geforderten Felder alle restlichen aber ebenso durchsucht werden.

Das habe ich versucht, aber es führte zu keinem Ergebnis, kein Datensatz wurde als gefunden markiert.

Ich werde morgen deinen Vorschlag ausprobieren und teile dann das Ergebnis an dieser Selle mit - bis dahin viele Dank!

Stefan

Antwort 5 von vaddaziegler vom 06.02.2019, 13:24 Options

Hi Erik,

vielen, vielen Dank!

VBA-Code funktioniert großartig.


Gruß
Stefan

Ähnliche Themen

Makro - Kopieren von Feldinhalten abhängig von zugehörigem Datum
jojow  12.06.2007 - 58 Hits - 10 Antworten

kann wegen makro nicht drucken - was machen?
srepsac  26.06.2007 - 118 Hits - 1 Antwort

Datenfilter mit Makro
TI0815  13.08.2007 - 27 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026