22. Jul 2019, 22:35
VB-fun.de - Beitragsübersicht zum VB-/VBA-Forum-Archiv 0413
  E07: VBA - Indexsuche in Datei per VBA
 Von manuel
 eMail
 Am 30. September 2008 um 09:32:31
 Frage Hallo zusammen,

bin seit geraumer Zeit auf der Suche nach ner Lösung.
Habe einen Suchcode der mir supergut die Dateien findet und auch anzeigt, das Problem ist, das ich in die Suche den korrekten Dateinnamen eingeben muss.
Was ich aber brauche ist das er mit nach Dateiinhalten sucht. Also quasi die Desktopsuche von MS.
Habe es über SearchFile versucht - das klappt auch - nur leider nur in Office 2003. Ab 2007 gibts SearchFile nicht mehr :-(

Hat jemand ne Lösung wie ich unten angegebenen Code so umwandle das er mit die gesamte Datei nach Inhalt durchsucht?
Option Explicit

Dim fso As New FileSystemObject
Dim fld As Folder

Private Sub cmdFSuchen_Click()
Dim nDirs As Long, nFiles As Long, lSize As Currency
Dim sDir As String, sSrchString As String
ListBox1.Clear
sDir = "c:\test\"
sSrchString = TextBox1
'MousePointer = vbHourglass
Label1.Caption = "Searching " & vbCrLf & UCase(sDir) & "..."
lSize = FindFile(sDir, sSrchString, nDirs, nFiles)
'MousePointer = vbDefault
MsgBox Str(nFiles) & " " & " Dateien mit dem Namen " & sSrchString & " gefunden In" & Str(nDirs) & _
" Verzeichnis", vbInformation
'MsgBox "Total Size = " & lSize & " bytes"
End Sub

Private Function FindFile(ByVal sFol As String, sFile As String, _
nDirs As Long, nFiles As Long) As Currency
Dim tFld As Folder, tFil As File, FileName As String

On Error GoTo Catch
Set fld = fso.GetFolder(sFol)
FileName = dir(fso.BuildPath(fld.path, sFile), vbNormal Or _
vbHidden Or vbSystem Or vbReadOnly)
While Len(FileName) <> 0
FindFile = FindFile + FileLen(fso.BuildPath(fld.path, _
FileName))
nFiles = nFiles + 1
ListBox1.AddItem fso.BuildPath(fld.path, dir) ' Load ListBox
FileName = dir() ' Get Next file
DoEvents
Wend
Label1 = "Searching " & vbCrLf & fld.path & "..."
nDirs = nDirs + 1
If fld.SubFolders.Count > 0 Then
For Each tFld In fld.SubFolders
DoEvents
FindFile = FindFile + FindFile(tFld.path, sFile, nDirs, nFiles)
Next
End If
Exit Function
Catch: FileName = ""
Resume Next
End Function

Private Sub CommandButton2_Click()
Unload frmOrdnerSuchen
End Sub

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim dir As String
dir = ListBox1
Shell "explorer.exe " & dir, vbNormalFocus

End Sub

Private Sub UserForm_Click()

End Sub
Gruß Manuel
[ VB-/VBA-Forum | Archiv 0413 | Archiv-Übersicht ]
 Antworten
E07: VBA - Indexsuche in Datei per VBA - manuel 30. September 2008 um 09:32:31
Re: VBA - Indexsuche in Datei per VBA - r.mueller@sz-online.de 30. September 2008 um 21:09:01
Re: VBA - Indexsuche in Datei per VBA - manuel 01. Oktober 2008 um 09:05:04
Re: VBA - Indexsuche in Datei per VBA - manuel 01. Oktober 2008 um 11:45:13
Re: VBA - Indexsuche in Datei per VBA - r.mueller@sz-online.de 01. Oktober 2008 um 19:00:59
Re: VBA - Indexsuche in Datei per VBA - manuel 01. Oktober 2008 um 19:37:40
Re: VBA - Indexsuche in Datei per VBA - r.mueller@sz-online.de 01. Oktober 2008 um 21:02:20
Re: VBA - Indexsuche in Datei per VBA - manuel 02. Oktober 2008 um 08:40:44
Re: VBA - Indexsuche in Datei per VBA - manuel 03. Oktober 2008 um 12:00:29

Zum Seitenanfang

Startseite | VB-/VBA-Tipps | Projekte | Tutorials | API-Referenz | Komponenten | Bücherecke | Gewinnspiele | VB-/VBA-Forum | DirectX | DirectX-Forum | VB.Net | VB.Net-Forum | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum