Doğru anladıysam kod işinizi görür.
Metin0 a yazılan varsa Excel açılır yoksa yok mesajı verir.
fil.Path bu yolu verir kodda.
C:/Excel içindeki tüm klasörlerde arama yapar.
Option Compare Database
Dim varmi As Boolean
Private Sub Form_Open(Cancel As Integer)
DoCmd.Maximize
varmi = False
Metin0.Value = "21-00016"
End Sub
Private Sub Komut2_Click()
Const yol As String = "C:/Excel"
If Dir(yol, vbDirectory) = "" Then
MsgBox "Aranan klasör yok", vbCritical, "Hata"
Exit Sub
End If
Call excelAc(yol)
If varmi = True Then
MsgBox "Dosya bulundu"
Else
MsgBox "Dosya bulunamadi..", vbCritical, "Hata"
End If
DoCmd.OpenReport "excel", acPreview
End Sub
Sub excelAc(StartFolderpath As String)
Dim fil As Object
Dim klasor As Object
Dim Altklasor As Object
Dim fso As Object
varmi = False
Set fso = CreateObject("Scripting.FileSystemObject")
Set klasor = fso.GetFolder(StartFolderpath)
For Each fil In klasor.Files
If fso.GetBaseName(fil) = Metin0.Value And fso.GetExtensionName(fil) = "xlsx" Then
AcExcel fil.Path
varmi = True
Exit Sub
End If
Next
For Each Altklasor In klasor.SubFolders
Call excelAc(Altklasor.Path)
Next
Set klasor = Nothing: Set Altklasor = Nothing: Set fil = Nothing: Set fso = Nothing
End Sub
Sub AcExcel(adres As String)
Dim obj As Object
Set obj = CreateObject("Shell.Application")
obj.ShellExecute (adres)
Set obj = Nothing
End Sub