ROTINA DE GRAVA?ÃO NO BD PARA NÃO REPETIR DADOS

MILTONSILVA94 17/07/2015 18:43:08
#449006
Estou com um bug no meu projeto, onde tenho uma tela de [ô]perfis de usuários[ô], sendo que têm apenas dois campos [ô]Id_Perfil[ô](Chave Primária) e [ô]Descricao_Perfil[ô] neste formulário. Ao clicar para gravar um novo registro de perfil nenhum dos dois campos podem repetir, dae montei a rotina abaixo porém se no Banco já consta um perfil de nome [ô]teste[ô], e eu for cadastrar um novo registro somente com a letra [ô]t[ô] neste campo ou seja se eu repetir a primeira letra ele já me ocasiona erro, sendo que o correto era bloquear somente se fosse digitado novamente a palavra [ô]teste[ô] no campo [ô]Descricao_Perfil[ô]... Segue abaixo a rotina que montei:

Dim lsql As String
Dim lTBPerfis As Recordset

[ô]Ínicio da rotina para verificar se o [ô]Perfil[ô] consta já no banco de dados (Comando tem que ficar aqui, não pode ser criado uma rotina, pois não funciona)
lsql = [Ô]SELECT * FROM Perfis [Ô]
[ô]If para verificar se os dados digitados já existem no banco de dados
If Trim(txtDescicaoPerfil.Text) <> [Ô][Ô] Then
lsql = lsql & [Ô] WHERE descricao_perfil like [ô][Ô] & Trim(txtDescicaoPerfil.Text & [Ô]*[ô][Ô])
End If

Set lTBPerfis = gBDSalao.OpenRecordset(lsql, dbOpenSnapshot)

If lTBPerfis.EOF = True Then
MsgBox [Ô][ô]Perfil[ô] não consta no banco de dados, pode gravar o registro![Ô], vbCritical
Else
MsgBox [Ô]O [ô]Perfil[ô] informado já consta no banco de dados![Ô], vbCritical
txtDescicaoPerfil.Text = [Ô][Ô]
txtDescicaoPerfil.SetFocus
Exit Sub
End If
[ô]Fim da rotina para verificação se o [ô]Perfil[ô] consta já no banco de dados

Algum comando que digitei de forma errada acima, e estou precisando de auxilio para enxergar o erro.

KERPLUNK 17/07/2015 19:06:52
#449007
O operador [Ô]like[Ô], é o seu problema. Substitua por sinal de igual.
MILTONSILVA94 17/07/2015 20:55:45
#449013
Não adiantou
OMAR2011 17/07/2015 21:49:56
#449015
Resposta escolhida
Tenta deste jeito.

Dim lsql As String
Dim lTBPerfis As Dao.Recordset

[ô]Ínicio da rotina para verificar se o [ô]Perfil[ô] consta já no banco de dados (Comando tem que ficar aqui, não pode ser criado uma rotina, pois não funciona)
lsql = [Ô]SELECT * FROM Perfis [Ô]
[ô]If para verificar se os dados digitados já existem no banco de dados
If Trim(txtDescicaoPerfil.Text) <> [Ô][Ô] Then
lsql = lsql & [Ô] WHERE descricao_perfil = [ô][Ô] & Trim(txtDescicaoPerfil.Text & [Ô][ô][Ô])
End If

Set lTBPerfis = gBDSalao.OpenRecordset(lsql, dbOpenSnapshot)

If Not lTBPerfis.EOF Then
MsgBox [Ô]O [ô]Perfil[ô] informado já consta no banco de dados![Ô], vbCritical
txtDescicaoPerfil.Text = [Ô][Ô]
txtDescicaoPerfil.SetFocus
Exit Sub

Else
MsgBox [Ô][ô]Perfil[ô] não consta no banco de dados, pode gravar o registro![Ô], vbCritical

End If
MILTONSILVA94 17/07/2015 22:24:37
#449016
Aiii sim, bombou, só de eu alterar a 2º linha ali onde você disse dae coloquei só o [ô]Dao.[ô] e já funcionou minha rotina corretamente..vlw
Tópico encerrado , respostas não são mais permitidas