Я пытаюсь создать код, который сначала получает имя моего файла с помощью 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