Jump to content
Fórum Script Brasil
  • 0

Constraint com mais de 1 campo


Pr0gr4m4d0r

Question

no access, como eu defino q 2 campos ou mais, sejam uma constraint, isto é, como faço para q 2 campos de uma tabela não possam entrar com dados repetidos, eu sei q se definir uma chave dupla funciona, mas a questão é q minha tabela já tem uma chave primária, q é o ID da tabela, alguém saberia responder? :blush:

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Va em modo estrutura da tabela, selecione o campo, va em Indexado, e escolha a opção Sim (Duplicação não autorizada)

desta forma não vai permitir duplicar, como se fosse uma chave primária.

Por favor de retorno se conseguiu.

At.

Everaldo

eve_anjos@hotmail.com

Link to comment
Share on other sites

  • 0
Va em modo estrutura da tabela, selecione o campo, va em Indexado, e escolha a opção Sim (Duplicação não autorizada)

desta forma não vai permitir duplicar, como se fosse uma chave primária.

Por favor de retorno se conseguiu.

At.

Everaldo

eve_anjos@hotmail.com

isso eu já tinha tentado, hehe, o q quero é impedir duplicidade no registro qd se entra com dados iguais no campo1 E no campo2, ex:

- tabela1 -

campo1 (ID - autonumeração)

campo2 (texto)

campo3 (texto)

- situação 1 (deve ser permitido) -

1 - "uva" - "goiaba"

2 - "uva" - "melancia"

- situação 2 (não deve ser permitido) -

1 - "uva" - "goiaba"

2 - "uva" - "goiaba"

entendeu? isto é, sei q definindo uma chave composta selecionando ambos os campos e clicando na chave, funciona, porém a chave dessa tabela já está definida q é o campo1 (ID), q é uma chave primária, entende? eu não posso ter ao mesmo tempo uma chave primária e uma chave composta na mesma tabela, isso q quero fazer, no sql server e oracle é mole fazer, mas no access como estou usando a pouquíssimo tempo, não descobri como faz :(

Link to comment
Share on other sites

  • 0

cara você pode usar um consulta para puxar todos as infos do campo 3 e fazer uma coparaçao...... se for = da uma msg de erro e limpa o campo....

pode fazer assim:

DoCmd.RunSQL vSql

v2 = "select campo2 from tabela"

if v2 = campo2 then

msgbox "msg de erro", vbexclamation = vbok

me.campo3 = null

exit sub

end if

acredito q isso ira funcionar

Edited by brunocasado
Link to comment
Share on other sites

  • 0
cara você pode usar um consulta para puxar todos as infos do campo 3 e fazer uma coparaçao...... se for = da uma msg de erro e limpa o campo....

pode fazer assim:

DoCmd.RunSQL vSql

v2 = "select campo2 from tabela"

if v2 = campo2 then

msgbox "msg de erro", vbexclamation = vbok

me.campo3 = null

exit sub

end if

acredito q isso ira funcionar

beleza cara, esse tipo de verificação eu já faço via código, mas sempre é bom ter esse tipo de segurança na base, caso algum problema (fator externo) aconteça, impedindo esse tipo de problema (duplicidade de informações em 2 campos ao mesmo tempo) q é o meu caso, por exemplo, mas tudo bem, já me conformei q o access está longe de ser um sql server ou um oracle, hehe, vlw!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...