Actualizar tabelas atravês de ficheiro excel mantendo o histórico
marisalima
marisalima em Qua 07 Maio 2014, 16:53
Tenho uma base de dados em access que dá suporte ao departamento de formação. Todos os meses existem alterações sobre os dados dos formandos tendo estas de ser actualizadas na base. Por exemplo o formando muda de área, número de identificação na empresa quando deixa de pertencer a empresas externas e passa para a empresa mãe. Pode mudar de centro de custos etc.
O que pretendo é actualizar esta informação de forma rápida e interactiva mantendo o histórico existente.
Temos um funcionário que é externo temporário na empresa e passado 6 meses passa a ter contrato directamente com a nossa empresa, inicialmente ele tinha um registo que o associava a um empresa externa com determinado numero de identificação ao mudar de contrato passa a ficar vinculado a uma nova empresa e com o novo numero de identificação.
Como é que posso fazer esta actualização de forma dinamica?
Tenho duas tabelas uma com os dados que não sofrem alterações (nome,BI,NIF,etc.) e outro onde são armazenados os dados que vão sofrendo alterações. Para além de actualizar também é possivel Inserir novos registos?
Obrigada por qualquer ajuda que me possam dar.
Re: Actualizar tabelas atravês de ficheiro excel mantendo o histórico
Cláudio Más em Qui 08 Maio 2014, 16:43
A estrutura do banco de dados parece correta, com uma tabela de formandos/funcionários e outra com o histórico de alterações (um para vários).
A tabela de histórico seria atualizada via formulário, consultas ação (acréscimo, atualização) ou programação vba, dependendo das regras.
Poderia dar mais detalhes sobre as suas dúvidas?
marisalima em Sex 09 Maio 2014, 12:21
Em primeiro lugar obrigada por ter respondido.
O que pretendo é actualizar as tabelas atravês de um ficheiro excel. Todos os meses as minhas colegas de recursos humanos preenchem um ficheiro excel com a informação dos colaboradores, quem foi demitido, se mudou de contrato, departamento, função, novas admissões etc.
A minha ideia é criar um ficheiro excel com a estrutura das duas tabelas, numa folha a tabela formandos e noutra os dados a actualizar, tudo no mesmo ficheiro.
Depois quando o ficheiro me é enviado eu ou outro utilizador clicam num botão, seleccionam o ficheiro e automáticamente actualiza as tabelas na BD. A forma como vou fazer essa actualização não se deve ser por código vba ou consulta.
Espero ter me conseguido explicar!
Cláudio Más em Sex 09 Maio 2014, 13:09
Pode ser por código e também por consultas.
Para selecionar o ficheiro quando clicar em um botão, tem que usar vba.
Com o comando DoCmd.TransferSpreadsheet você importaria a planilha para uma tabela auxiliar.
Depois faria a atualização da tabela de histórico com base nessa tabela auxiliar.
Dependendo das regras, poderá usar consultas ou talvez seja necessário código vba.
marisalima em Sex 09 Maio 2014, 14:17
Ver se percebi:
Eu transferia o ficheiro excel para uma tabela auxiliar e a partir daí actualizava as outras tabelas?
Se for isso como é que eu faço a actualização entre a tabela auxiliar e as outras duas?
Cláudio Más em Sex 09 Maio 2014, 14:33
Sim, essa é a idéia.
Depende do tipo de atualização a ser feita.
Para inserir registros, utilize consultas do tipo acréscimo.
Para atualizar informações, consultas do tipo atualização.
marisalima em Sex 09 Maio 2014, 15:34
Cheguei a uma solução bastante simples, que seria exportar as tabelas para excel, os dados serem actualizados nesta e em seguida importar o ficheiro para a base de dados. O meu problema é que eu tenho a base de dados divida em backend e frontend e ao tentar importar o ficheiro excel para o backend este não me deixa actualizar a tabela!
Desta forma não teria código e recorria às funcionalidades do access.
Porque não me deixa actualizar?
Cláudio Más em Sex 09 Maio 2014, 16:01
Você não conseguiu importar a planilha para o back-end?
Que tipo de atualização está tentando executar?
marisalima em Sex 09 Maio 2014, 16:07
Estou no a importar directamente o ficheiro e reescrever os dados na tabela. Utilizo a primeira opção existente no quadro de importação excel. Quando clico em terminar ele pergunta-me se quero reescrever o que está na tabela, digo que sim e retorna me a mensagem "Não é possível actualizar a tabela ou query".
Será por a tabela estar vinculada ao frontend directamente?
Cláudio Más em Sex 09 Maio 2014, 17:07
Não sei exatamente por que está ocorrendo o erro, mas se tentar importar os dados de uma planilha para uma tabela vinculada, esta será excluída (a vinculação) e então uma tabela local será criada com os dados da planilha.
Talvez seja melhor tentar outra solução, ou importar a planilha para a tabela no back-end.
marisalima em Sex 09 Maio 2014, 17:27
Mas o problema está a acontecer na back end. No front end cria-me a tabela localmente e isso eu não quero. Vou ter de encontrar outra solução!
Cláudio Más em Sex 09 Maio 2014, 20:45
Se o front-end estiver em uso durante a importação da planilha no back-end, certamente ocorrerá erro.
Se uma simples inserção de registros resolve, a idéia de usar uma tabela auxiliar e depois transferir os dados para o histórico com uma consulta do tipo acréscimo, resolveria sem maiores problemas.