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, 4860 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Datenbanken
gelöst Mittelwert aus anderer Query in Textfeld funktioniert nicht Access 2010 (3)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
gelöst Syntaxfehler VBA Access 2010 (6)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
gelöst Access 2010 Abfrage erster Werktag (10)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
gelöst Access 2010 komplizierte Abfrage (3)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...

DSL, VDSL
Problem mit variernder Internetgeschwindigkeit (12)

Frage von schaurian zum Thema DSL, VDSL ...