Dados Duplicados
Fiz um banco de dados no Access.
Como eu faço para que o usuario não cadastre, duas vezes o mesmo registro.
EX:
Cadastro de Estados.
Estado:___
Codigo | Estado
01 | GO <- Registros repetidos...
02 | MT
03 | GO <- Regsitros repetidos...
Como eu faço para que o usuario não cadastre, duas vezes o mesmo registro.
EX:
Cadastro de Estados.
Estado:___
Codigo | Estado
01 | GO <- Registros repetidos...
02 | MT
03 | GO <- Regsitros repetidos...
Ullrich
Curtidas 0
Respostas
Sousa_thiago
20/09/2003
Eu não conheço muito de Access. Mas como banco de dados é ´tudo igual´ acredito que a melhor forma de ´solucionar´ seu problema seria colocando a coluna UF como chave primário.
Dessa forma além de vc não permitir entrada de dados repetida vc ainda torna uma pesquisa futura mais rápida supondo usar o indice para localização do arquivo.
Dessa forma além de vc não permitir entrada de dados repetida vc ainda torna uma pesquisa futura mais rápida supondo usar o indice para localização do arquivo.
GOSTEI 0
Ullrich
20/09/2003
Caro sousa_thiago eu criei a tabela de cadastro de Uf com dois campos:
Tab_Uf
1. ID_Uf
2. Nome
O Primeiro campo nunca se repete (ID_Uf), mas o segundo SIM (Nome) e é ai que está minha duvida, como faço para não gravar um estado que já existe?
Pensei em algum tipo de consulta, mas não consigo imaginar como deve ser feita.
Se poder me ajudar ficaria muito grato. Obrigado pela atenção.
Tab_Uf
1. ID_Uf
2. Nome
O Primeiro campo nunca se repete (ID_Uf), mas o segundo SIM (Nome) e é ai que está minha duvida, como faço para não gravar um estado que já existe?
Pensei em algum tipo de consulta, mas não consigo imaginar como deve ser feita.
Se poder me ajudar ficaria muito grato. Obrigado pela atenção.
GOSTEI 0
Daaneto
20/09/2003
No Access, vá em estrutura da tabela.
Tem um propriedade chamada ´Indexado´ que possui três opções: Não, Sim (Duplicação autorizada), Sim (Duplicação não autorizada).
Portanto, para o campo em questão (Nome), deixe como Sim (Duplicação não autorizada).
Tem um propriedade chamada ´Indexado´ que possui três opções: Não, Sim (Duplicação autorizada), Sim (Duplicação não autorizada).
Portanto, para o campo em questão (Nome), deixe como Sim (Duplicação não autorizada).
GOSTEI 0
Mmtoor
20/09/2003
Prezado amigo:
Provavelmente esta utilizando componentes AdoTable, ou TTable. Isso realmente duplicará seus dados ao gravar as edições.
Confirme esta colocação e cole a procedure que está utilizando para gravação.
Antecipadamente informo que sweu problema pode ser resolvido se utilizar AdoQuery ou TQuery.
MMTOOR2003
Provavelmente esta utilizando componentes AdoTable, ou TTable. Isso realmente duplicará seus dados ao gravar as edições.
Confirme esta colocação e cole a procedure que está utilizando para gravação.
Antecipadamente informo que sweu problema pode ser resolvido se utilizar AdoQuery ou TQuery.
MMTOOR2003
GOSTEI 0
Japa
20/09/2003
Amigo utilize a função locate se voce estiver usando TTable é claro:
A função locate ela procura o que voce colocou no Edit.Text..
Voce não deve esquecer que as letras maiuscular e minuscular são diferentes por isso ela não localiza...
Exemplo:
MS e diferente de ms.
espero ter te ajudado... :wink:
if not Tabela.Locate(´Nomer´, Edit.Text,[]) then
begin
//coloque aqui o codigo para cadastrar mais
end;
A função locate ela procura o que voce colocou no Edit.Text..
Voce não deve esquecer que as letras maiuscular e minuscular são diferentes por isso ela não localiza...
Exemplo:
MS e diferente de ms.
espero ter te ajudado... :wink:
GOSTEI 0
Ullrich
20/09/2003
Estou usando o componente AdoQuery, será que da certo estes comandos:
if not AdoQueryCidade.Locate(´Nome´, NomeCid.Text,[]) then
begin
// Gravar os dados.
else
// Mensagem de erro;
Vou tentar algo parecido com isto, obrigado pela atenção.
if not AdoQueryCidade.Locate(´Nome´, NomeCid.Text,[]) then
begin
// Gravar os dados.
else
// Mensagem de erro;
Vou tentar algo parecido com isto, obrigado pela atenção.
GOSTEI 0
Ullrich
20/09/2003
Solucionei desta maneira:
Criei no modulo, uma queryVerifica.
Antes de gravar faço uma filtragem na tabela pela queryVerifica.
Depois é só saber se contem ou não dados na queryVerifica.
Obrigado a todos.
Criei no modulo, uma queryVerifica.
Antes de gravar faço uma filtragem na tabela pela queryVerifica.
Depois é só saber se contem ou não dados na queryVerifica.
Obrigado a todos.
GOSTEI 0