Ir para conteúdo
Fórum Script Brasil
  • 0

Como não permitir valores duplicados?


Leandro_Pirozzi

Pergunta

Por exemplo:

Tenho uma tela de cadastro de Usuario e senha, como fazer para exibir uma msg que já existe determinado usuário se o mesmo já existir na tabela?

Private Sub cmdsalvar_Click()

Dim SQLASS As String

Dim icol As Integer

Set cnass = New ADODB.Connection

With cnass

.Provider = "Microsoft.Jet.OLEDB.4.0"

.ConnectionString = "Data Source=" & App.Path & "\CONTATOS.mdb;"

.Open

End With

Set rsass = New ADODB.Recordset

Set rsass.ActiveConnection = cnass

rsass.CursorLocation = adUseClient

Set rsass = New ADODB.Recordset

SQLASS = "INSERT INTO CONTATOS_SENHA "

SQLASS = SQLASS & "(CODUSUARIO, SENHA )"

SQLASS = SQLASS & "VALUES ( '" & Me.txtnome.Text & "','" & Me.txtsenha.Text & "')"

Set rsass.ActiveConnection = cnass

'rsTarefas.Open SQL

cnass.Execute SQLASS

MsgBox "Cadastro de Assessor efetuado com sucesso"

End Sub

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

é só fazer uma busca antes com um select, caso encontre o nome na tabela informa, caso não encontre então insere.

select codusuario, senha from contatos_senha where codusuario = '" & txtnome & "'"

With rs_busca

if (.BOF and .EOF) then 'se não encontrou insere

Set rsass = New ADODB.Recordset

SQLASS = "INSERT INTO CONTATOS_SENHA "

SQLASS = SQLASS & "(CODUSUARIO, SENHA )"

SQLASS = SQLASS & "VALUES ( '" & Me.txtnome.Text & "','" & Me.txtsenha.Text & "')"

Set rsass.ActiveConnection = cnass

'rsTarefas.Open SQL

cnass.Execute SQLASS

MsgBox "Cadastro de Assessor efetuado com sucesso"

else

msgobox "Usuario já existe"

Link para o comentário
Compartilhar em outros sites

  • 0

Não pus o codigo todo certinho não, foi só pra você pegar o fio da meada e tentar mesmo. Um With sempre precisa ser fechado com End With.

O que quis dizer é que você tem que fazer um select antes de inserir, preencher um recordset onde o campo que você não quer que duplique seja igual ao que aparece na text, então se o recordset encontrar é porque já existe, então você trata para não inserir ou alterar, e caso o recordset venha vazio, ou seja recordcount = 0, é porque não existe ainda, então você põe o codigo para inserir neste caso, veja este exemplo:

[b]faz o select para saber se o campo já existe[/b]

    With cmd
    .ActiveConnection = cnn
    .CommandType = adCmdText
    .CommandText = "select cod, nome from socios where cod = " & vCod_socio & ""
    Set rs = .Execute
    End With

    With rs
        If (.BOF And .EOF) Then  [b]'se não existe, insere[/b]
            With cmd
            .ActiveConnection = cnn
            .CommandType = adCmdText
            .CommandText = "insert into socios " & _
            "(cod, matricula, cpf, nome, rg, telefone, celular, nascimento, email, endereco, estado_civil, conjuge, pai, mae, empresa, telefone_empresa) values (" & _
            vCod_socio & ",'" & _
            Text_cod & "', '" & _
            Text_cpf & "','" & _
            Text_nome & "','" & _
            Text_rg & "','" & _
            Text_telefone & "','" & _
            Text_celular & "','" & _
            Text_nascimento & "','" & _
            Text_email & "','" & _
            Text_endereco & "','" & _
            Combo_estado_civil & "','" & _
            Text_conjuge & "','" & _
            Text_pai & "','" & _
            Text_mae & "','" & _
            Text_empresa & "','" & _
            Text_telefone_empresa & "');"
            .Execute
            End With
            vinfo = MsgBox("Cadastro efetuado com sucesso", vbInformation _
            + vbOKOnly, "Cadastro de Sócios")
            Unload Me
            Form_socios.Show

        Else [b] 'se existe altera[/b]

        vinfo = MsgBox("Deseja salvar as alterações feitas" & _
        " ao cadastro de " & rs!nome & " ? ", vbYesNo + vbQuestion _
        , "Cadastro de Sócios")
            If vinfo = vbYes Then
                With cmd
                .ActiveConnection = cnn
                .CommandType = adCmdText
                .CommandText = "update socios set " & _
                "cpf = '" & Text_cpf & "'," & _
                "nome = '" & Text_nome & "', " & _
                "rg = '" & Text_rg & "'," & _
                "telefone = '" & Text_telefone & "'," & _
                "celular= '" & Text_celular & "'," & _
                "nascimento = '" & Text_nascimento & "'," & _
                "email= '" & Text_email & "'," & _
                "estado_civil = '" & Combo_estado_civil & "'," & _
                "conjuge = '" & Text_conjuge & "'," & _
                "pai = '" & Text_pai & "'," & _
                "mae = '" & Text_mae & "'," & _
                "empresa = '" & Text_empresa & "'," & _
                "telefone_empresa = '" & Text_telefone_empresa & "'," & _
                "endereco = '" & Text_endereco & "' where cod = " & vCod_socio & ";"
                .Execute
                End With
                vinfo = MsgBox("Alteração efetuada com sucesso", vbInformation _
                + vbOKOnly, "Cadastro de Sócios")
                Unload Me
                Form_socios.Show
            End If
        End If
    End With

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...