none
FAZER BACKUP BANCO DE DADOS ACCESS RRS feed

  • Pergunta

  • Boa tarde galera,

    Andei pesquisando mais não achei nada relacionado, eu precisava copiar dados de uma tabela atual para outra antes de excluir os dados da tabela atual, só que antes de fazer isso eu precisava pegar a data que esta dentro desta tabela atual para colocar como nome para esta tabela, isso seria possível? 

    veja o exemplo abaixo 

    o codigo que estou usando para criar a tabela_nova e excluir os dados  é esse 

     Private Sub PCriaTbl()
            Using con As OleDbConnection = GetConnection()
                Try
                    con.Open()
                    Dim sql As String = "CREATE TABLE Data FROM Inventario"
                    Dim cmd As OleDbCommand = New OleDbCommand(sql, con)
                    Dim da As OleDbDataAdapter = New OleDbDataAdapter(cmd)
                    Dim dt As DataTable = New DataTable
                    da.Fill(dt)
                Catch ex As Exception
                    MsgBox("Ocorreu um Erro ao Carregar os Itens invetáriados. Mensagem original do erro." & ex.Message & ".",
                          MsgBoxStyle.Critical, "Itens Inventáriados")
                Finally
                    con.Close()
                End Try
            End Using
            PNovoInventario()
        End Sub

        Private Sub PNovoInventario()
            Using con As OleDbConnection = GetConnection()
                Try
                    con.Open()
                    Dim sql As String = "DELETE FROM Inventario"
                    Dim cmd As OleDbCommand = New OleDbCommand(sql, con)
                    Dim da As OleDbDataAdapter = New OleDbDataAdapter(cmd)
                    Dim dt As DataTable = New DataTable
                    da.Fill(dt)
                Catch ex As Exception
                    MsgBox("Ocorreu um Erro ao Carregar os Itens invetáriados. Mensagem original do erro." & ex.Message & ".",
                          MsgBoxStyle.Critical, "Itens Inventáriados")
                Finally
                    con.Close()
                End Try
            End Using
            frmNovoInventDados.ShowDialog()
       End Sub

    Galera muito obrigado.


    Douglas Antunes

    segunda-feira, 6 de abril de 2015 16:37

Respostas

Todas as Respostas

  • Douglas, boa tarde!

    Veja o exemplo abaixo, caso não de certo poste a duvida!

    https://alexandreoriginal.wordpress.com/2014/11/06/criando-um-backup-de-banco-de-dados-access-via-vba/


    Se a resposta for útil, favor votar como útil para que ajude outros usuários com a mesma dúvida.

    Att,

    André Côrte
    Analista de Sistema
    Skype: corte.solutions
    Nosso trabalho
    Grupo de Estudo no Facebook
    Canal de Estudo no Youtube

    segunda-feira, 6 de abril de 2015 17:54
  • André Desculpa a demora, estou meio na correia,

    Amanhã Vou testar o Código, dai aviso aqui,

    Muito obrigado.


    Douglas Antunes

    quarta-feira, 8 de abril de 2015 00:11
  • Mano desculpa a demora em testar a sua solução.

    fiz o seguinte

      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 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & My.Settings.conexaoBanco
                    sSourceFile = "Inventario.accdb"
                    sBackupPath = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & My.Settings.conexaoBanco

                    sBackupFile = "SELECT Data FROM Inventario"
                    'No nome de arquivo acima, coloquei para salvar com a data que esta na tabela "Inventario" da tabela a ser copiada 

                    

                    Fso = New FileSystemObject

            Fso.CopyFile(sSourcePath & sSourceFile, sBackupPath & sBackupFile, True)
            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")

            frmMercearia.ShowDialog()

    porem esta dando erro na linha abaixo,ja estou a dois dias mudando e nada.

    Fso.CopyFile(sSourcePath & sSourceFile, sBackupPath & sBackupFile, True)

    o erro é 

    Exceção de HRESULT: 0x800A0034 (CTL_E_BADFILENAMEORNUMBER)

    Muito obrigado mano!


    Douglas Antunes


    • Editado DouglasAntunes sexta-feira, 17 de abril de 2015 20:23 erro de digitação
    sexta-feira, 17 de abril de 2015 20:21