Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

In Access 2010 Wörter aus textfeld im memofeld suchen und hervorheben

Frage Microsoft Microsoft Office

Mitglied: thomas1972

thomas1972 (Level 1) - Jetzt verbinden

30.11.2013 um 09:04 Uhr, 5171 Aufrufe, 9 Kommentare, 1 Danke

Hallo, ich habe folgendes Problem.

In einem Textfeld werden verschiedene Wörter eingegeben,
Diese Wörter sollen in einem anderen Textfeld gesucht und dann markiert werden.

Problem hierbei da es sich um ein reines text formatiertes textfeld handelt

Vielleicht kann mir hier jemand helfen
Mitglied: colinardo
30.11.2013, aktualisiert um 15:41 Uhr
Hallo Thomas,
das kannst du z.B. wie folgt erreichen:
Im Beispiel ist txtSearch das Suchfeld in das der Begriff eingegeben wird, und txtContent das Feld in dem danach gesucht wird.
Wird ein Treffer gefunden wird dieser im Memofeld selektiert.
01.
Private Sub btnSuche_Click() 
02.
    txtSearch.SetFocus 
03.
    sWord = txtSearch.Text 
04.
    txtContent.SetFocus 
05.
    sContent = txtContent.Text 
06.
    'Suche Anfangsposition des Suchwortes 
07.
    sPosition = InStr(1, sContent, sWord, vbTextCompare) 
08.
    'Wenn ein Treffer gefunden wurde setze die Auswahl auf ihn 
09.
    If sPosition > 0 Then 
10.
        txtContent.SelStart = sPosition - 1 
11.
        txtContent.SelLength = Len(sWord) 
12.
    End If 
13.
End Sub
Das ganze lässt sich auch noch so erweitern das bei mehreren Treffern diese nacheinander markiert werden.
Wie dies aussehen könnte kannst du an dieser Demo-Access-Datenbank nachvollziehen.

Grüße Uwe
Bitte warten ..
Mitglied: thomas1972
30.11.2013 um 19:45 Uhr
Hallo Uwe, vielen dank für deinen Hilfe

es wird in den Fällen ja immer nur ein Wort "der reihe nach" markiert. Besteht irgendwie die Möglichkeit alle Wörter gleichzeitig hervorgehoben angezeigt zu bekommen?
Oder muss dazu das textfeld richtext formatiert sein um dann per vba einfach die gesuchten Felder hervor zu heben?
Die Frage wäre dann wie dieses am besten per vba möglich wäre
Bitte warten ..
Mitglied: colinardo
30.11.2013 um 20:08 Uhr
Zitat von thomas1972:
Besteht irgendwie die Möglichkeit alle
Wörter gleichzeitig hervorgehoben angezeigt zu bekommen?
Oder muss dazu das textfeld richtext formatiert sein um dann per vba einfach die gesuchten Felder hervor zu heben?
Ja, es muss in diesem Fall ein Richtext-Feld sein. Mit einem Nur-Text-Feld lässt sich leider nicht viel mehr machen, da eine Selektion nicht gesplittet werden kann. Hingegen bei einem Richtext-Feld z.B. alle gefundenen Wörter grün eingefârbt werden kônnten.
Die Frage wäre dann wie dieses am besten per vba möglich wäre
mit ein paar zusätzlichen Zeilen in der Schleife der Demo-DB müsste das kein großer Aufwand sein.
Melde mich dazu morgen nochmal mit einem Beispiel.

Schönes Advent's-Wochenende noch
Grüße Uwe
Bitte warten ..
Mitglied: thomas1972
30.11.2013 um 23:04 Uhr
Hallo Uwe,

vielen dank für die bisherige Unterstützung
wünsche dir ebenfalls einen schönen ersten Advent

Gruß Thomas
Bitte warten ..
Mitglied: colinardo
01.12.2013, aktualisiert 01.04.2016
So hier mal die Variante mit der Markierung aller Fundstellen mit Hilfe eines Richtext-Feldes: Download Demo-DB

3ab0078b6b74f207f7b9138846e818b0 - Klicke auf das Bild, um es zu vergrößern

Grüße Uwe
Bitte warten ..
Mitglied: thomas1972
01.12.2013 um 11:38 Uhr
Hallo Uwe, vielen dank für deine Hilfe am heutigen tag,
perfekt soweit.


Es funktioniert soweit wenn die Wörter zusammen hintereinander im Text stehen.
was muss am Script geändert werden, damit er jedes Wort findet.

In deinem Screenshot Beispiel Suchbegriff
nulla pretium ante

Danke für deine Mühe
Bitte warten ..
Mitglied: colinardo
01.12.2013 um 11:44 Uhr
Im Script folgende Zeile:
 regex.Pattern = "(" & sWord & ")"
so abändern
 regex.Pattern = "(" & Replace(sWord, " ", "|") & ")"
Uwe
Bitte warten ..
Mitglied: thomas1972
01.12.2013 um 17:47 Uhr
Hallo Uwe,
genau das wars

hab nur eine Kleinigkeit noch
gebe ich als Suchbegriff
nulla pretiu* ante
ein, so findet er zwar mein Ergebnis, markiert aber nicht mehr die Wörter mit *

Hast du hier nochmal einen letzten Ansatz
Bitte warten ..
Mitglied: colinardo
01.12.2013, aktualisiert 02.12.2013
ich Moment sucht das Script nur Wortgenau ohne Wildcards. Da die Suche auf Regular Expressions basiert, kannst du aber diese Möglichkeit nutzen, wenn du die "Replaces" der Regex-Sonderzeichen im Script löschst. Du solltest dich dann aber vorher mit Regular Expressions beschäftigen, dann stehen dir unbegrenzte Suchmöglichkeiten offen...

Alternativ wenn du nur den Stern als Wildcard-Zeichen nutzen musst du diesen Abschnitt, so abändern:
 'Replace special chars in search term for regex pattern 
        sWord = Replace(sWord, "\", "\\") 
        sWord = Replace(sWord, "[", "\[") 
        sWord = Replace(sWord, "]", "\]") 
        sWord = Replace(sWord, "+", "\+") 
        sWord = Replace(sWord, "^", "\^") 
        sWord = Replace(sWord, "$", "\$") 
        sWord = Replace(sWord, "{", "\{") 
        sWord = Replace(sWord, "}", "\}") 
        sWord = Replace(sWord, ".", "\.") 
        sWord = Replace(sWord, "?", "\?") 
        sWord = Replace(sWord, "*", "[\S]*")
Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Datenbanken
gelöst Access 2010 Textfeld automatisch aktualisieren (2)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
Access 2010 Pivot Table Export keine Werte (3)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

VB for Applications
gelöst VBA Code Änderung Access 2010 (6)

Frage von Dr.Cornwallis zum Thema VB for Applications ...

Datenbanken
gelöst Access 2010 UnterFormular filtern bzw. aktualisieren (2)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Neue Wissensbeiträge
Administrator.de Feedback

Umgangsformen auf der Seite

(7)

Information von Frank zum Thema Administrator.de Feedback ...

Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(11)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Dir tc Befehl unter Windows 10 macht Probleme (14)

Frage von sugram zum Thema Batch & Shell ...

Windows Server
Windows Server Komplettspiegelung (13)

Frage von pdiddo zum Thema Windows Server ...

Windows Server
Windows Server 2016 RDS Remoteapp Anzeigefehler (11)

Frage von qlnGenius zum Thema Windows Server ...