Alvaro Teixeira 13/8/2016, 12:31
Olá Luis Antunes,
Assim fica muito mais facil compreender
Adatei o código do colega Cláudio Más para uma função.
No seu porjecto crie um módulo novo (
mod_backup) e cole o código abaixo:
- Código:
Function fncPathPrimeiraTabelaLigada()
' Origem..: (Cláudio Más) http://www.maximoaccess.com/t27625-caminho-de-tabelas-ligadas
' Alterado: Alvaro Teixeira (ahteixeira)
' Data ...: 13-08-2016
Dim dbs As dao.Database
Dim tdf As TableDef
Set dbs = CurrentDb
For Each tdf In dbs.TableDefs
If Len(tdf.Connect) > 0 Then
fncPathPrimeiraTabelaLigada = Right$(tdf.Connect, Len(tdf.Connect) - 10)
Exit For
End If
Next tdf
End Function
No seu código, altere por este:
- Código:
'Mensagem 9
'elaborado por: JPaulo - 11/10/2006
'objectivo: criar (1) uma copia de segurança por mês
' pode ser alterado para (1) uma por dia, ou uma (1) por ano, para
'isso basta alterarem o Format(Now(), "_mmyyyy") para Format(Now(), "_ddmmyyyy")
'O caminho tem de ter o nome da pasta, neste caso Backup e o nome que querem dar
' à MDB da cópia.
'Revisão em 30-09-2010, para manter os 3 ultimos backups do dia.
' Origem..: http://www.maximoaccess.com/t27625-caminho-de-tabelas-ligadas
' Alterado: Alvaro Teixeira (ahteixeira)
' Data ...: 11-08-2016
' Alteração de CurrentProject.Path & "\nomeDaBaseDeDados_be.accdb"
' para variavél que pesquisa através da função fncPathPrimeiraTabelaLigada
' a primeira tabela ligada.
On Error Resume Next
Dim fso As Object
Dim tdf As TableDef
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FolderExists("C:\Backup") Then ' verifica se já existe a pasta
Else
MkDir "c:\Backup" 'se não existir cria
End If
Dim CopiaSegura As Object
Dim Caminho As String
Dim CopiaBancoTabelas As Object
Dim CaminhoTabelas As String
Dim x, y, z, sPathBackup As String
sPathBackup = fncPathPrimeiraTabelaLigada
Caminho = "C:\Backup\Tires_be" 'Nome da pasta e nome de inicio para o banco de backup
Set CopiaSegura = CreateObject("Scripting.FileSystemObject")
x = Caminho & Format(Now, "_dd-mm-yyyy") & "_" & 1 & ".accdb"
y = Caminho & Format(Now, "_dd-mm-yyyy") & "_" & 2 & ".accdb"
z = Caminho & Format(Now, "_dd-mm-yyyy") & "_" & 3 & ".accdb"
If Not (Len(Dir(x, vbDirectory)) > 0) Then
CopiaSegura.CopyFile sPathBackup, Caminho & Format(Now, "_dd-mm-yyyy") & "_" & 1 & ".accdb"
ElseIf Not (Len(Dir(y, vbDirectory)) > 0) Then
CopiaSegura.CopyFile sPathBackup, Caminho & Format(Now, "_dd-mm-yyyy") & "_" & 2 & ".accdb"
Else
If (Len(Dir(z, vbDirectory)) > 0) Then Kill z
CopiaSegura.CopyFile sPathBackup, Caminho & Format(Now, "_dd-mm-yyyy") & "_" & 3 & ".accdb"
End If
Quit acQuitSaveAll
End Sub
Abraço
Última edição por ahteixeira em 13/8/2016, 12:55, editado 1 vez(es)