Zoeken naar tekst in (ongeopende)bestanden in map

Status
Niet open voor verdere reacties.

DrKurka

Gebruiker
Lid geworden
8 okt 2009
Berichten
8
Beste mensen,

Ik word hier helemaal gek van..:confused:

Ik wil een procedure schrijven die 2 woordreeksen opspoort in een aantal documenten die ergens in een map op het netwerk staan. Dus zoiets "woord1 en woord2 " EN / OF "woord3 en woord4 ".

Hieronder heb ik (sterk vereenvoudigd) de procedure neergezet.

Probleem is dat de gebruikte methodiek met Filesearch.Propertytests alleen maar één reeks vindt, de 2e reeks vindt hij domweg niet, ongeacht een OR of AND zoekvoorwaarde

Wie ziet het?? Want ik heb echt alles zo'n beetje al geprobeerd.

B.v.d.!!




ZoekRefBestanden(pRij, pDir, pZoekstring1, pZoekstring2)

Dim fs As FileSearch
Set fs = Application.FileSearch
fs.NewSearch
With fs
With .PropertyTests

.Add _
Name:="Tekst of Eigenschap", _
Condition:=msoConditionIncludesPhrase, _
Value:= pZoekstring1, SecondValue:= pZoekstring2, _
Connector:=msoConnectorOr

End With
.LookIn = pDir
.SearchSubFolders = True
.Filename = "*"
.MatchTextExactly = False
.FileType = msoFileTypeAllFiles
End With

With Application.FileSearch
If .Execute() > 0 Then

' Voert actie uit

End If
End With

''testje om de instellingen te tonen (maakt geen onderdeel uit van de procedure)

With Application.FileSearch.PropertyTests(1)
myString = "This is the search criteria: " _
& " The name is: " & .Name & ". The condition is: " _
& .Condition
If .Value <> "" Then
myString = myString & ". The value is: " & .Value
If .SecondValue <> "" Then
myString = myString _
& ". The second value is: " _
& .SecondValue & ", and the connector is" _
& .Connector
End If
End If
MsgBox myString
End With



End Sub
 
Laatst bewerkt:
Soms helpt het raadplegen van een hulpfunktie in de VBEditor:

SecondValue Variant, optioneel.

Een bovenwaarde voor het zoekbereik. U kunt dit argument alleen gebruiken als de Condition msoConditionAnyTimeBetween of msoConditionAnyNumberBetween is.

In jouw code staat:

msoConditionIncludesPhrase

Ergo.........
 
Soms helpt het raadplegen van een hulpfunktie in de VBEditor:



In jouw code staat:

msoConditionIncludesPhrase

Ergo.........


Ergo, bedankt voor je reactie

Het lijkt er inderdaad op dat SecondValue onjuist is gebruikt. Op een gegeven moment probeer je toch gewoon het e.e.a.
Neemt niet weg dat bijvoorbeeld een extra .add ook niet werkt, zoals:


.Add _
Name:="Tekst of Eigenschap", _
Condition:=msoConditionIncludesPhrase, _
Value:= pZoekstring1

.Add _
Name:="Tekst of Eigenschap", _
Condition:=msoConditionIncludesPhrase, _
Value:= pZoekstring2, _
Connector:=msoConnectorOr

Dus twee maal msoConditionIncludesPhrase, één voor pZoekstring1 en één voor pZoekstring2

Het een en ander is helaas door Microsoft erg karig gedocumenteerd
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan