Manutenção em banco de dados no cliente – parte 1

Para quem desenvolve programas é comum, e põe comum nisso, que seja necessário inserir um campo ou alterar o tamanho de campo em uma tabela no banco de dados do cliente. Se você utiliza banco de dados .mdb você pode fazer essa alteração via código utilizando o VBA. Imagine o desconforto se seu cliente está do outro lado do país e fazer acesso remoto é muito complicado porque a Internet do cliente é a vapor. Você precisa enviar apenas o arquivo executável de instalação e ao abrir o sistema automaticamente as alterações do banco de dados são realizadas sem nenhuma dificuldade.

Então vamos às dicas:

Tabela com a data e hora que foi gerada a versão

Para diferenciar as versões do seu sistema você pode criar uma tabela com um campo chamado NumeroVersao tipo Número, um campo chamado DataVersao tipo Data/Hora e um campo chamado Caminho, tipo texto, valor padrão = “C:\temp\”, salvar a tabela com nome de Versao.

image

image

Crie um módulo no MS-Access chamado Utilitarios

Crie uma função chamada NovaVersao com o código abaixo

Public Function NovaVersao()
On Error GoTo Fim
    'Pergunta se deseja gerar uma nova versão
    If MsgBox("Deseja gerar uma nova versão?" _
    , vbQuestion + vbYesNo, "Aviso de Sistema") <> vbYes Then
        Exit Function
    End If
    Dim db As DAO.Database
    Set db = CurrentDb()
    Dim rs As DAO.Recordset
    Set rs = db.OpenRecordset("Versao") 'tabela versao
    If Not rs.EOF Then
        'se encontrado
        rs.Edit
            rs.Fields("NumeroVersao") = rs.Fields("NumeroVersao") + 1
            rs.Fields("DataVersao") = Date
        rs.Update
    Else 'se nada existir cria uma linha com o número de versão
        rs.AddNew
            rs.Fields("NumeroVersao") = 1000 'inicia com a versao 1.00.0
            rs.Fields("DataVersao") = Date
        rs.Update
    End If
    Dim sVersao As String
    sVersao = rs.Fields("NumeroVersao")
    sVersao = sVersao & " de " & rs.Fields("DataVersao")
    MsgBox "A Versao " & sVersao & " foi criada com sucesso.", vbInformation, "Aviso de Sistema"
    rs.Close
    db.Close
    Exit Function
Fim:
    MsgBox Err.Number & " " & Err.Description
    Exit Function
End Function

Crie uma macro chamada Autokeys. Esta macro habilita o uso de teclas de atalho no MS-Access.

Crie uma macro que é chamada pressionando-se os botões Ctrl + 0 conforme a imagem abaixo:

image

Ao pressionar Ctrl 0 irá aparecer as seguinte pergunta:image

Se responder sim irá aparecer a seguinte tela: image

Mantenha anotações do que foi feito em cada nova versão. A cada nova versão faça uma cópia de segurança do arquivo que você está desenvolvendo.
Vendas1012.mdb, Vendas1013.mdb, Vendas1014.mdb, etc.

Após gerar a nova versão converta o arquivo em mde, gere o arquivo de instalação e envie ao cliente.

Arquivo XML para copiar para o cliente quando instalar o sistema pela primeira vez

No mesmo diretório onde ficará o sistema copie o arquivo caminho.xml para mostrar o caminho onde ficará o banco de dados, a versão do sistema e a data da versão.

Abra o módulo Utilitários e insira uma nova função chamada VersaoXML()

Public Function VersaoXML()
On Error GoTo Fim
    'Diretorio atual
    Dim sDir As String
    sDir = CurrentProject.Path
    sDir = sDir & "\"
    '------------------------------------------------
    'Variáveis
    Dim sArq As String
    Dim sTab As String
    sTab = "Versao" 'tabela versao
    sArq = "Caminho"    'nome do arquivo em xml
    '------------------------------------------------
    'Exporta arquivo xml para o diretório corrente
    Application.ExportXML _
    ObjectType:=acExportTable, _
    DataSource:=sTab, _
    DataTarget:=sDir & sArq & ".xml", _
    SchemaTarget:=sDir & sArq & "Schema.xml"
    '------------------------------------------------
    Exit Function
Fim:
    MsgBox Err.Number & " " & Err.Description
    Exit Function
End Function

Atribua à função uma tecla de atalho, Ctrl 9, por exemplo
image

Ao pressionar Ctrl 9 serão gerados dois arquivos no diretório corrente do projeto. Um arquivo XML e outro arquivo de Schemma que contém as formatações dos campos. Não se importe por enquanto com o segundo arquivo. Quando for instalar um programa em um cliente lembre-se de copiar esses dois arquivos para o mesmo diretório do programa em Access que você está desenvolvendo. Veja o conteúdo dos arquivos abertos em bloco de notas:
image image

 

 

 

 

 

image

image

 

 

 

 

 

 

 

 

Parte 2
Parte 3

Nenhum comentário:

Postar um comentário