Convidado 13/7/2011, 13:05
Bem amigos descobri o erro.. Quando há um outro arquivo sem a data no nome.. a instrução não reconhece nem um nem o outro...
InspecaoRelatorio.pdf
Estatística_07-2011.pdf
Ela só funciona se todos os arquivos contiverem a data no nome... como adicionar no código algo para que isto não aconteça?
Código completo:
Private Sub PreparaPDF()
Parametros_de_Inicializacao "SysAlert.par"
Dim fso, Directorio As String, Pasta, Ficheiro
Dim rst As Recordset
Dim NomeBD As String
Dim StrPath As String
Dim dbBanco As Database
NomeBD = "SYSALERT_be.accdb"
'String com path para conexão com a base de dados.
StrPath = DirBancoDados & NomeBD ' Conecta ao banco de dados
Set dbBanco = OpenDatabase(StrPath)
Directorio = DirRelatorios
Set fso = CreateObject("Scripting.FileSystemObject")
dbBanco.Execute "delete from PDF IN '" & StrPath & "'"
Set rst = dbBanco.OpenRecordset("PDF")
Set Pasta = fso.GetFolder(Directorio)
For Each Ficheiro In Pasta.Files
If Ficheiro Like "*.pdf" Then
rst.AddNew
rst!IDPDF = Directorio & Ficheiro.Name
rst!Datacriacao = Mid(Ficheiro, InStr(Ficheiro, "-") - 2, 7)
'rst!Datacriacao = Format(Ficheiro.DateCreated, "dd-mm-yyyy")
rst.Update
End If
Next
Me!lstPDF.Requery
If Me!lstPDF.ListCount = 0 Then
End If
Set fso = Nothing: Set Pasta = Nothing
rst.Close
Set rst = Nothing
dbBanco.Close
Set dbBanco = Nothing
End Sub