ROTINA DE GRAVA?ÃO NO BD PARA NÃO REPETIR DADOS
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.
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.
O operador [Ô]like[Ô], é o seu problema. Substitua por sinal de igual.
Não adiantou
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
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
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