Como rejeitar a combinação de dois campos, se já existir no arquivo de acesso MSFT

0

Eu criei a tabela "Customer" e criei um formulário para imitar o processo de registro.
Ao clicar no botão "Registrar", desejo rejeitar o processo de registro se a combinação de e-mail e senha já existir. Caso contrário, salve o registro.

É possível implementar isso no Microsoft Access?

    
por Chiron 28.10.2012 / 21:48

1 resposta

0

Crie uma restrição exclusiva nas duas colunas juntas, isso fará com que o Access rejeite duplicatas como violação da restrição exclusiva. O que você faz com o erro vai até o seu formulário. Há uma resposta SO aqui:

link

A resposta pertinente:

Open the table in design view in MS Access, select the three columns that you want to make into the unique index, and then click the little key on the toolbar. You cannot have null values in a primary key (set). https://stackoverflow.com/users/2548/remou

Edite já que você já tem um PK e provavelmente não deseja criar um novo PK composto para substituí-lo, mas essa é a outra opção:

Anyway, here's how you create a multi-column unique index on an MS access database. 1.Open the table in design mode, and Design, select Indexes. 2.Create a new row and enter a value in the Index Name cell, 3.Choose the first column from the drop down menu. 4.Add a new row and leave the Index Name cell blank. 5.Choose the second column, and so on. https://stackoverflow.com/users/47775/nbolton

Outra opção (e ruim) é consultar o banco de dados primeiro e depois não inserir, mas isso deixa a porta aberta para potenciais problemas de integridade referencial em uma data posterior.

Como uma nota lateral embora; Tem certeza de que deseja inserir para cada combinação de nome de usuário (email) / senha exclusiva? Isso pode causar problemas para os usuários que esquecem sua senha, acabando com contas duplicadas. Você pode pensar em algum outro identificador composto (por exemplo, identificador + senha são exclusivos E o e-mail é exclusivo do BD. Ou simplesmente tem o endereço de e-mail como único. Não sei o suficiente sobre o seu conjunto de problemas - mas é algo para pensar.

    
por 28.10.2012 / 23:13