GARANTIR DESCONTO

Fórum Dados Duplicados #183204

20/09/2003

0

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...


Ullrich

Ullrich

Responder

Posts

20/09/2003

Sousa_thiago

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.


Responder

Gostei + 0

20/09/2003

Ullrich

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.


Responder

Gostei + 0

20/09/2003

Daaneto

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).


Responder

Gostei + 0

20/09/2003

Mmtoor

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


Responder

Gostei + 0

20/09/2003

Japa

Amigo utilize a função locate se voce estiver usando TTable é claro:
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:


Responder

Gostei + 0

21/09/2003

Ullrich

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.


Responder

Gostei + 0

25/09/2003

Ullrich

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.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar