Notifications
Clear all

Backup BD

11 Posts
3 Usuários
0 Reactions
2,589 Visualizações
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Bom dia,

Estando eu no Excel , pois o mesmo puxa o cadastro de clientes do Acess, teria como ao sair da Planilha e salvando a mesma, essa rotina ja faz aqui, fazer um backup do banco de dados que uso no acess como seguranca ?

Ontem acidentalmente apaguei todos os registros do meu cadastro de Clientes do Acess, por sorte havia feito um backup manual.

Grato

Andre

 
Postado : 03/11/2016 6:45 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Amigo é possível sim, precisa de um pouco de conhecimento em VBA. De uma procurada na internet sobre : https://www.google.com.br/webhp?sourcei ... cess%20vba

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 03/11/2016 12:08 pm
Basole
(@basole)
Posts: 487
Reputable Member
 

Fazerbem bom dia,

Segue link com exemplo de Backup de BD Access:

https://dl.dropboxusercontent.com/u/771097/BackupMDBaoFechar.txt

abç.

Click em se a resposta foi util!

 
Postado : 04/11/2016 8:34 am
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Basole

Bom dia,

Dentro de um formulario chamado MENU, possuo na minha Excel o Botao SAIR, ao clicar nele salvo a planilha e faco o Backup apenas da Planilha em excel.

Este comando eu chamaria entao dentro deste botao sair do Menu correto ?

Call BackBD()

 
Postado : 04/11/2016 8:40 am
Basole
(@basole)
Posts: 487
Reputable Member
 

Sim acho melhor usar o evento:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

End Sub

Para no caso do usuario fechar o form pelo "X" e o backup nao ser feito

Click em se a resposta foi util!

 
Postado : 04/11/2016 9:05 am
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Vou testar e te falo, agradeço a vc Basole e ao Caio.

André

 
Postado : 04/11/2016 9:23 am
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Basole. Vc saberia como eu faco para manter o calculo automatico na planilha, porem se limitar esses calculos somente as planilhas envolvidas e nao toda a pasta ?

Andre

 
Postado : 04/11/2016 9:31 am
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Coloquei assim mas passa pelo comando e nao chama a Funcao, errei onde ?

Private Sub Fechar_Click()

Application.DisplayAlerts = False 'desabilite o alerta

Unload Menu

Application.Visible = True
Sheets("Fundo").Visible = True
Worksheets("Fundo").Activate
resposta = MsgBox("Deseja realmente sair ?", vbYesNo, "Gerenciador")

If resposta = vbYes Then

ActiveWorkbook.Save

resposta = MsgBox("Deseja realizar o BACKUP ?", vbYesNo, "Gerenciador")
If resposta = vbYes Then

' Salva Planilha
ActiveWorkbook.SaveAs Filename:= _
"C:GERENCIALojaGerenciador Backup.xlsm" _
, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Else
End If

Application.Quit

Else
Menu.Show
End If

Call BackBD

End Sub

abaixo coloquei

Function BackBD()
'elaborado por: JPaulo - 11/10/2006
'objectivo: criar (1) uma copia de seguran?a por mes
' 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 copia.

Dim CopiaSegura As Object
Dim Caminho As String
Caminho = "C:GerenciaLojaBackup" 'Nome da pasta e nome de inicio para o banco de backup
    Set CopiaSegura = CreateObject("Scripting.FileSystemObject")
    CopiaSegura.CopyFile CurrentProject.Path & "Cadastro_clientes.mdb", Caminho & Format(Now, "_mmyyyy") & ".mdb"
End Function
 
Postado : 04/11/2016 9:56 am
Basole
(@basole)
Posts: 487
Reputable Member
 

Paarece que o codigo esta encerrando antes mesmo de chamar a funcao backup:

experimente desta forma:

Private Sub Fechar_Click()

Application.DisplayAlerts = False 'desabilite o alerta

'Unload Menu

Application.Visible = True
Sheets("Fundo").Visible = True
Worksheets("Fundo").Activate
resposta = MsgBox("Deseja realmente sair ?", vbYesNo, "Gerenciador")

If resposta = vbYes Then

ActiveWorkbook.Save

resposta = MsgBox("Deseja realizar o BACKUP ?", vbYesNo, "Gerenciador")
If resposta = vbYes Then

' Salva Planilha
ActiveWorkbook.SaveAs Filename:= _
"C:GERENCIALojaGerenciador Backup.xlsm" _
, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Else
End If

'Application.Quit

Else
Menu.Show
End If

Call BackBD
Unload Me
End Sub

Abaixo rotina que cria uma subpasta BACKUP, caso ela não existir (só acrescentar a chamada antes do backup) :

Private Sub CriaPasta_Backup()
On Error Resume Next
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FolderExists(ThisWorkbook.Path & "BACKUP") Then ' verifica se j? existe a pasta
Else: MkDir ThisWorkbook.Path & "BACKUP" ' se n?o existir cria
End If
End Sub

Click em se a resposta foi util!

 
Postado : 04/11/2016 12:08 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

eu ja havia posto no inico da macro Call BackBD

ele passa por cima nao chama e passa batido.

 
Postado : 04/11/2016 1:17 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Ao pesquisar outras opcoes, vi um link dentro do Link que o caio passou e deu certo. Agradeco aos dosi por isso.

Andre

Public Function BackupCopy()
Dim fso As FileSystemObject
Dim sSourcePath As String
' Caminho de rede onde o arquivo principal está salvo

Dim sSourceFile As String
' Nome do arquivo original

Dim sBackupPath As String
' Caminho onde será feita a cópia

Dim sBackupFile As String
' Nome do novo arquivo

sSourcePath = "C:GerenciaLoja"
sSourceFile = "Cadastro_clientes.mdb"
sBackupPath = "C:GerenciaLojaBackup"

sBackupFile = "Cadastro_clientes_Backup.mdb" '& Format(Date, “yyyymmdd”) & “.mdb”
' No nome de arquivo acima, coloquei para salvar com a data e  diariamente salvará um arquivo novo, mas isso pode
' ser feito por mês ou um único arquivo que será sobreposto toda vez que a função for chamada

Set fso = New FileSystemObject

fso.CopyFile sSourcePath & sSourceFile, sBackupPath & sBackupFile, True
Set fso = Nothing

Beep
' MsgBox “Backup feito com sucesso @ ” & Chr(13) & Chr(13) & sBackupPath & Chr(13) & Chr(13) & “O Nome do Backup é ” & Chr(13) & Chr(13) & sBackupFile, vbInformation, “Backup Completo”

End Function
 
Postado : 04/11/2016 2:25 pm