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

Consultar CPF no Banco


spotinick

Pergunta

Olá, estou com duvidas em relação a consulta de dados em banco mdb.

Neste caso, gostaria que fosse verificado no banco se o cpf já existe e mostrar o cadastro dele, senão abrir o formulario para ele inserir, abaixo está o codigo, mas quando digito o cpf no formulario de busca ele me traz um erro

ERRO:

Tipo de erro:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)

[Microsoft][Driver ODBC para Microsoft Access] Tipo de dados imcompatível na expressão de critério.

/portalrh/consulta_cpf.asp, line 12

A linha 12 está no "set tab = Conexao.Execute(sql)"

CODIGO:

<%
response.buffer = "true"

'Abre a conexão com o banco de dados
Set Conexao = Server.CreateObject("ADODB.Connection")
dbPath = "DBQ=" & Server.Mappath("dados/dados.mdb")
Conexao.Open "DRIVER={Microsoft Access Driver (*.mdb)};" & dbPath

sql = "SELECT * FROM form WHERE cpf = "& request.form("cpf")
set tab = Conexao.Execute(sql)

if tab.eof then
response.redirect "inserir_candidato.asp"
else
response.redirect "view.asp?id="&tab("cpf")
end if
%>

Editado por spotinick
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Edu, bom dia!

Podem ser as seguintes coisas:

1) a tabela form pode não existir ou estar escrita erradamente;

2) pode não existir campo cpf na tabela form, ou o mesmo estar escrito erradamente;

3) request.form("cpf") pode não estar retornando valor algum;

4) o endereço para o seu bd pode estar errado;

5) sintaxe da sua query;

6) o campo cpf pode estar formatado para algum tipo de dados, como data/hora por exemplo, provocando incompatibilidade;

Como podemos resolver:

você terá que confirmar a existencia da tabela form no seu bd, bem como a existencia do campo cpf na tabela form. Confirme se o nome do bd está digitado corretamente e se o endereço do mesmo tb está correto;

mude a sintaxe da sua query para:

cpf = request.form("cpf")
sql= "select * from form where cpf = "&cpf&""
caso a dúvida ou o problema ainda persistam faça um debug nessa query:
cpf = request.form("cpf")
sql = "select * from form where cpf = "&cpf&""
response.write sql
response.end

verificando se o cpf realmente está buscando do campo... poste aqui os resultados!

[]'s Rafael Spilki

Editado por Rafael Spilki
Link para o comentário
Compartilhar em outros sites

  • 0

Fala Rafa

como sempre me ajudando hehehe

Seu eu fosse meu chefe já teria te contratado kkk

Bom, vamos lá, mudei a sintaxe da query e ainda não funcionou

Em relação a existencia do campo, tabela e caminho do BD, estão corretos, o que eu fiz foi que no Banco eu mudei a estrutura do campo CPF de texto para numero e usei a sintaxe q você me passou e FUNCIONOU!!!!

Agora eu não entendi porque? rsrsrs

Se como texto não funcionou e para numero funcionou, sendo que não há nada setado no codigo para fazer essa verificação

Pergunta dificil????

Link para o comentário
Compartilhar em outros sites

  • 0

rsssss... magina! qualquer coisa posta aí sempre!

Até que a pergunta não é difícil não... essas coisas acontecem... mas podem ser por vários fatores...

acredito que o caso tenha sido mais pela sintaxe da query do que por qualquer outra coisa...

mas um troço que de vez em quando "confunde" as querys é essas mascaras de JavaScript que formatam os valores com pontos traços e etc... se existe essa máscar já fica a ressalva, porque dependendo da máscara pode formatar o valor em número, texto ou até qualquer tipo de string, confundindo todo app!

Mas como sugestão: sempre que for número formate o bd para número e vice - versa, afinal, é para isso que tem as diferenciações no BD!

que bom que funcionou... parabéns!

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, o problema como sempre é um detalhe escondido que ninguém vê...

Fiz uma correção numa expressão que exibe a pagina onde o registro está, o legal (porem sem respostas ainda) que o codigo da outra forma exibia o registro correspondente se o tipo de campo era numerico, mas infelizmente não era me permitia inserir os 11 digitos do CPF, o banco em mdb só aceitava se fosse em texto, vou postar o codigo para ver onde corrigi sem querer querendo rs

Abraços e valeu pela ajuda Rafa!!!

<%
response.buffer = "true"

'Abre a conexão com o banco de dados
Set Conexao = Server.CreateObject("ADODB.Connection")
dbPath = "DBQ=" & Server.Mappath("dados/dados.mdb")
Conexao.Open "DRIVER={Microsoft Access Driver (*.mdb)};" & dbPath

sql = "SELECT * FROM form WHERE cpf = "& request.form("cpf")
set tab = Conexao.Execute(sql)

'foi aqui q corrigi mudando dentro do tab onde antes estava o campo CPF, troquei pelo id do registro
if tab.eof then
response.redirect "inserir_candidato.asp"
else
response.redirect "view.asp?id="&tab("id")
end if
%>

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...