отобразить список файлов, которые не существуют в папке и подпапках - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь создать код, который сначала получает имя моего файла с помощью SQL-запроса, а затем ищет этот файл в папке и ее подпапках. Если файл существует, я не хочу, чтобы код делал что-либо, но если этого не происходит, я хочу добавить имя файла в список, то в конце я хочу отобразить все эти элементы списка. Это то, что я сделал до сих пор, но это не работает.

Dim oFSO,oFl 
Dim Fichier 
Dim Generees, Nongenerees
Dim fldr As Object
Dim subfldr As Object

Set oFSO = CreateObject("Scripting.FileSystemObject") 

Set MyCnx = CreateObject("ADODB.Connection") 

MyCnx.ConnectionString = "Provider=SQLOLEDB.1;Password=OP_USER_2;Persist Security Info=True;User ID=OP_USER_2;Initial Catalog=Fiche_OP;Data Source=JRG4581\MSSQLSERVER32"
adOpenForwardOnly = 0
adLockReadOnly =1 
MyCnx.CommandTimeout = 0
MyCnx.Open

Set MyRs = CreateObject("ADODB.Recordset")

Set Generees = CreateObject("Scripting.Dictionary")
Set Nongenerees = CreateObject("Scripting.Dictionary")

'***** Get file name  *****
SQL= ""
SQL= SQL & "select A.OPEDesc+'_'+A.OPEValeur+'_'+A.GammeValeur+' .xlsb' as fiche "
SQL= SQL & "from dbo.Fiche_OPE_Test A "
SQL= SQL & "where Statut_OPE = 'Actif' "

'***** check if the file exists ******

MyRs.Open SQL, MyCnx, adOpenForwardOnly, adLockReadOnly
Do Until MyRs.EOF
    Fichier = MyRs("fiche")

    Set fldr = oFSO.GetFolder("my folder directory")
    For Each subfldr In fldr.SubFolders
        If oFSO.FileExists(fichier) Then
            Generees.Add(fichier)
        Else
            Nongenerees.Add(fichier)
            Exit For
        End If
    Next subfldr

    MyRs.MoveNext
Loop

MsgBox Join(Nongenerees.ToArray)

MyRs.Close
Set MyRs = Nothing
MyCnx.Close
Set MyCnx = Nothing

Set oConn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.recordset")
ConnectionString = "Provider=SQLOLEDB.1;Password=OP_USER_2;Persist Security 'Info=True;User ID=OP_USER_2;Initial Catalog=Fiche_OP;Data Source=JRG4581\MSSQLSERVER32"

oConn.Open ConnectionString

Set rs = Nothing
oConn.Close
Set oConn = Nothing
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...