2013-09-30 4 views
0

У меня есть программа, которая создает индексы каждое воскресенье. В воскресенье создается папка с именем после даты с суффиксом .001. Формат YYYYMMDD.001Проверьте наличие 4 вложенных папок в переменной имени папки

Пример: 20130929,001

В этой папке 4 папки создаются они всегда имеют одни и те же имена: TEXT1 TEXT2 text3 text4

Ищу иметь script проверяет, что папка создается, если одна из подпапок не выходит, тогда будет отправлено электронное письмо.

Идея состоит в том, чтобы запланировать запуск сценария в ту же дату, но после создания папки. Если ожидаемые папки завершены, уведомление будет отправлено.

Моя проблема связана с датой переменной, когда первая часть пути и последняя часть согласованы, но папка даты с датой будет меняться каждую неделю.

N: \ Apps \ WORLDOX \ isysdb \ drive_n \ Text \ .001 \ TEXT1

Любые предложения будут оценены.

Спасибо, ELM

+0

Если вы хотите что-то * запланированное *, то Visual Basic для ** Приложения ** не то, что вы хотите. VBA работает на * размещенной * платформе, такой как Word или Excel. – crashmstr

+0

@crashmstr, почему OP не мог использовать 'Application.OnTime' в файле Excel, например? –

+2

@DavidZemens работает, когда приложение не работает? В любом случае, если код фактически не делает что-то с доменом приложения (например, создайте или отредактируйте документ Word), тогда VBA на самом деле не является подходящим инструментом для работы. – crashmstr

ответ

0

Этот код проверяет, если папка существует. Если не отправит почту.

Sub TestFolder() 

    Dim fso As Object, MyFolder As String 
    Dim folder1 As String, folder2 As String, folder3 As String, folder4 As String 
    Set fso = CreateObject("Scripting.FileSystemObject") 

    MyFolder = "C:\ YYYYMMDD.001\" 

    folder1 = MyFolder & "TEXT1" 
    folder2 = MyFolder & "TEXT2" 
    folder3 = MyFolder & "TEXT3" 
    folder4 = MyFolder & "TEXT4" 

    If fso.FolderExists(folder1) = False Then 
      SendMail "TEXT1" 
    ElseIf fso.FolderExists(folder2) = False Then 
     SendMail "TEXT2" 
    ElseIf fso.FolderExists(folder3) = False Then 
      SendMail "TEXT3" 
    ElseIf fso.FolderExists(folder4) = False Then 
      SendMail "TEXT4" 
    End If 


End Sub 


Sub SendMail(folderName) 

    Dim iMsg As Object 
    Dim iConf As Object 
    Dim Flds As Variant 


    Set iMsg = CreateObject("CDO.Message") 
    Set iConf = CreateObject("CDO.Configuration") 

    iConf.Load -1 
    Set Flds = iConf.Fields 

    With Flds 
     .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 
     .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "ddddd" 
     .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 
     .Update 
    End With 

    With iMsg 

     Set .Configuration = iConf 
     .To = "[email protected]" 
     .From = "[email protected]" 
     .Subject = folderName & "does not exist" & " " & Date & " " & Time 
     .TextBody = folderName & "does not exist" & " " & Date & " " & Time 
     .Send 
    End With 

    Set iMsg = Nothing 
    Set iConf = Nothing 

End Sub 
Смежные вопросы