Entre para seguir isso  
Leandro_Pirozzi

Como não permitir valores duplicados?

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites
Macêdo    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"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hummm...

tentei fzer mas deu alguns erros.

tem como dar mais detalhes?

esse with rs_busca não tem o end with?

ele tb não precisa ser aberto?

.open?

desculpa as perguntas é q não entendi mesmo.

Editado por Leandro_Pirozzi

Compartilhar este post


Link para o post
Compartilhar em outros sites
Macêdo    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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

Entre para seguir isso