Relação entre tabel...
 
Notifications
Clear all

Relação entre tabelas - Inserir, atualizar e apagar dados

6 Posts
2 Usuários
0 Reactions
1,616 Visualizações
(@miguexcel)
Posts: 167
Estimable Member
Topic starter
 

Olá a Todos,

Preciso de vossa ajuda e vossos conhecimentos:

Estou desenvolvendo um interface de registo de dados e, o motivo para esar fazendo isto em excel é porque meus colegas não têm Access e não se sentem à vontade com Access( mesmo se o tivessem).

Tenho então duas tabelas:
Tabela 'DataEntry' - Tabela que permite edição de dados. (Funcionamento idêntico ao de um formulário, mas que permite inserir vários dados de uma só vez) - Nota: Esta tabela irá ter cerca de 90.000 registos
Tabela 'DataTable' - Tabela final que será utilizada para um carregamento/automatização de um processo. (Esta sheet deverá estar sempre protegida, sendo que só pode ser alterada através da tabela ´DataEntry')

O que pretendo é que o utlizador trabalhe apenas na tabela 'DataEntry', onde já criei alguns botões:

A) Insert Row - Permite inserir novas linhas
B) Delete Rows - Apaga todas as linhas
C) Apply - Ao ir fazendo filtros, posso querer selecionar em massa de acordo com os filtros. Vai colocar um 'I' na primeira coluna, o que indica que esses dados deverão ser carregados na tabela 'DataTable'
D) Add Records to table - Aqui entra minha princpal dúvida. Preciso que este botão faça com que todos os registo com um 'I' na primeira coluna sejam inseridos na tabela 'DataTable' de forma rápida e eficaz. Por outro lado, preciso que seja verificada a duplicação de registos, ou seja, se os registos que têm um I na tabela 'DataEntry' já existem na tabela 'DataTable'. Se existirem, preciso que seja perguntado se quero atualizar os registos já existentes (Sim ou Não) e aí se sim, carrega os novos e atualiza os existentes, se não apenas carrega os novos.

Por fim, preciso ter uma forma de apagar algum registo da tabela 'DataTable'.. Talvez com mais um botão que me pergunte qual o registo que pretendo apagar digitando o ID.

Fico a aguardar vossas sugestões e se houver alguma dúvida, estarei ao dispor.
Posto um exemplo do arquivo.

Muito Obrigado.

 
Postado : 06/12/2016 7:17 pm
DJunqueira
(@djunqueira)
Posts: 772
Prominent Member
 

Miguexcel se vc compactar sua planilha com o algorítimo zip mais pessoas poderão te ajudar.
O algorítimo zip é nativo no Windows e p/ utiliza-lo basta clicar com o botão direito no arquivo e depois selecionar Enviar para / Pasta compactada.

Uma possível solução p/ o q vc quer seria com Nova Consulta / Power Query.

Se sua dúvida foi respondida marque o tópico como RESOLVIDO usando o botão com marca verde.

 
Postado : 06/12/2016 8:43 pm
(@miguexcel)
Posts: 167
Estimable Member
Topic starter
 

Obrigado pela dia repost djunqueira. Assim que possivel irei junta o arquivo devidamente compacado.

Em relacao à sua sugestão, seria uma solucao mas nem todos os usuarios têm excel2016

 
Postado : 07/12/2016 6:38 am
DJunqueira
(@djunqueira)
Posts: 772
Prominent Member
 

Nova Consulta / Power Query é um suplemento gratuito q pode ser instalado nas versões 2010 e 2013.

Se sua dúvida foi respondida marque o tópico como RESOLVIDO usando o botão com marca verde.

 
Postado : 07/12/2016 6:43 am
(@miguexcel)
Posts: 167
Estimable Member
Topic starter
 

Djunqueira, a maioria dos usuarios usa excel 2007. Ja estou desenvolvendo e irei postar aqui em breve

 
Postado : 07/12/2016 12:29 pm
(@miguexcel)
Posts: 167
Estimable Member
Topic starter
 

Olá Pessoal,

Entretanto, desenvolvi o modelo que queria mas ainda precisa de uma pequena ajuda. O resultado que quero é exatamente este

Botôes:
Add New Employee - Adicionar nova linha à tabela para preencher dados de um novo empregado
Delete All EMployees - Apaga a tabela de edição de registos ("DataEntry")
MarkRecords - à medida que vamos fazendo filtros, vamos marcando os registos que realmente queremos transportar para a tabela final (Seleção por filtro)
UnmarkRecords - Apaga todos os registos que estavam marcados
Add Records - Adiciona todos os registos marcados na tabela DataEntry à tabela DataImport
Delete All Records - Apaga todos os registos da tabela DataIMport.

No entanto, necessito de fazer umas ligeiras modificações mas não estou conseguindo. Na coluna 'B' da tabela 'DataEntry' tenho as opções I,D ou U (Insert, Delete, Update, respetivamente).
A Opção Insert, serve para inserir aquele/s empregado/s específico/S na tabela DataIMport
A Opção Delete, serve para apagar aquele/s empregado/s específico/s da tabela DataImport
A Opção Update, serve para atualizar aquele/s empregado/s específico/s da tabela DataImport

O que pretendo é eliminar estas opções, passado a ter apenas a opção 'Insert', que resulta do botão Mark Records (seleção por filtro) ou seleção individual. Deste modo, a rotina deverá ser a seguinte:
1) Seleciono os empregados que quero
2) verificação de quais os empregados que já existem na tabela DataImport
3) Aparecer MsgBox a dizer: "Alguns empregados já existem na tabela DataImport. Deseja atualizar a informção destes empregados? Sim ou Não"
4) Ao clicar não, a rotina apenas insere os que não existem. Ao clicar sim, a rotina insere os que não existem e atualiza os que existem.

Alguem me consegue ajudar?

Obrigado pela vossa atenção

 
Postado : 08/12/2016 9:58 am