Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eduardo VR

Login usando data nascimento

Recommended Posts

Galera, preciso de fazer um login onde utilizo um codigo numerico e outro de data (acess, data/time), mas está dando erro:Microsoft OLE DB Provider for ODBC Drivers erro '80040e07' [Microsoft][Driver ODBC para Microsoft Access] Tipo de dados imcompatível na expressão de critério. /login.asp, line 22 <!-- login -->cod_benef = trim(request.form("cod_benef"))DATA_NASCIMENTO_BENEF = trim(request.form("DATA_NASCIMENTO_BENEF"))sql = "SELECT * FROM tabela_benef WHERE cod_benef = '" & Replace(Request.Form("cod_benef"),"'","''") & "'" sql = sql & "AND DATA_NASCIMENTO_BENEF='" & Replace(Request.Form("DATA_NASCIMENTO_BENEF"),"'","''") & "'"<!-- fim login -->Alguem ai consegue me ajudar nesta.Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

antes de executar esta query de um response.write nela e um response.end e mostre oq esta printando na tela !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ta printando isso:141 - numero de login ta certo09/09/1933 - data de nascimento certo - no bd ta aparecendo 9/9/1933, mas seu eu coloco 9/9/1933 no form, esta dando tambem este erro:Microsoft OLE DB Provider for ODBC Drivers erro '80040e07' [Microsoft][Driver ODBC para Microsoft Access] Tipo de dados imcompatível na expressão de critério. /login.asp, line 26 Sendo a linha 26, isso: sql = "SELECT * FROM tabela_benef WHERE cod_benef = '" & Replace(Request.Form("cod_benef"),"'","''") & "'" sql = sql & "AND DATA_NASCIMENTO_BENEF='" & Replace(Request.Form("DATA_NASCIMENTO_BENEF"),"'","''") & "'" set rs = dados.execute(sql)

Compartilhar este post


Link para o post
Compartilhar em outros sites

naum... quero que você mostre a query que esta sendo executadasql = "SELECT * FROM tabela_benef WHERE cod_benef = '" & Replace(Request.Form("cod_benef"),"'","''") & "'" sql = sql & "AND DATA_NASCIMENTO_BENEF='" & Replace(Request.Form("DATA_NASCIMENTO_BENEF"),"'","''") & "' "qual o resultado disso para o asp... entende?depois desta linha de um response.write(sql)response.ende coloque aki para analisarmos

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem, quando dá esse tipo de erro comigo, eu sempre transforma a string recuperada para o campo de tipo correspondente. por exemplo, você tá usando um tipo DATA. pega o request da data e coloca CDate. Exemplo: TRIM(CDate(request.form("DATA_NASCIMENTO_BENEF")))Assim tu vai transformar pra tipo data... não sei se resolve...

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT * FROM tabela_benef WHERE cod_benef = '141'AND DATA_NASCIMENTO_BENEF='09/09/1933'SELECT * FROM tabela_benef WHERE cod_benef = '141'AND DATA_NASCIMENTO_BENEF='9/9/1933'E eis o erro:Microsoft OLE DB Provider for ODBC Drivers erro '80040e07' [Microsoft][Driver ODBC para Microsoft Access] Tipo de dados imcompatível na expressão de critério. /santacasa/2via/login.asp, line 25

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assim:este campo cod_benef eh string ou eh numerico, se você tratar como numerico a consulta e mais rapida.... entaum tire as aspas simples !e qd for comparar a data, tente usar o LIKE !vai ficar assim:sql = "SELECT * FROM tabela_benef WHERE cod_benef = " & Replace(Request.Form("cod_benef"),"'","''") & "" sql = sql & " AND DATA_NASCIMENTO_BENEF LIKE '" & Replace(Request.Form("DATA_NASCIMENTO_BENEF"),"'","''") & "' "tente assim, vamos ver no que vai dar....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para campos tipo Data no Access "abrace" o valor com #.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salgado, não entendi o "abraçar" o valor #, mas o jeito que o Ratu passou deu certinho, valew mesmo pelas dicas, agora tem outro problema, no acess o campo que tem zero, por exemplo 09/09/1933, no acess ta 9/9/1933, entao se eu colocar 09/09/1933 ele não valida, como faço para preencher no acess o campo com zero, ou a melhor forma para fazer isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Abraçar a variavel com #:

SELECT * FROM tabela_benef WHERE cod_benef='"& cod_benef &"'" AND DATA_NASCIMENTO_BENEF='#"& DATA_NASCIMENTO_BENEF &"#';

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salgado, mas qual jeito eh mais rápido para retornar a consulta ?abraçar com # ou pegar esta data 9/9/1933 e preencher assim 09/09/1933 ?vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Abraçar a Data com o "#" é a forma correta de ser feita seleção de Datas no Access, pelo que sei passando dessa forma independe se sua Data está com "0" ou não, mais: formatando com o CDATE a variável antes, salvo engano, os "0" são retirados..

Só levei em consideração o campo data, se o campo cod_benef for tipo numérico deve-se retirar as ' da SQL que passei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei assim como o Salgado explicou, mas está dando esse erro agora:Erro de compilação do Microsoft VBScript erro '800a03ea' Erro de sintaxe login.asp, line 29 sql = "SELECT * FROM tabela_benef WHERE cod_benef="& cod_benef &"" AND DATA_NASCIMENTO_BENEF='#"& DATA_NASCIMENTO_BENEF &"#';---------------------------------------------------------------------------------------------^o erro é na aspas simples aqui: DATA_NASCIMENTO_BENEF='O que é agora?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faltou fechar as aspas simples, depois do ;.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Saldado, esta dando o mesmo erro: Erro de compilação do Microsoft VBScript erro '800a03ea' Erro de sintaxe login.asp, line 29 sql = "SELECT * FROM tabela_benef WHERE cod_benef="& cod_benef &"" AND DATA_NASCIMENTO_BENEF='#"& DATA_NASCIMENTO_BENEF &"#';"---------------------------------------------------------------------------------------------^

Compartilhar este post


Link para o post
Compartilhar em outros sites

A seta está apontando o local do problema, reparou nas duas aspas ali? Foi na hora de retirar a concatenação que tinha em seu código, acabei não excluindo essa aspa a mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele ta mostrando o erro é aqui: BENEF='---------------------------------------------^um novo erro agora:Microsoft OLE DB Provider for ODBC Drivers erro '80040e07' [Microsoft][Driver ODBC para Microsoft Access] Tipo de dados imcompatível na expressão de critério. login.asp, line 33 esta é a linha 33sql = "SELECT * FROM tabela_benef WHERE cod_benef="& cod_benef &" AND DATA_NASCIMENTO_BENEF='#"& DATA_NASCIMENTO_BENEF &"#';"set rs = dados.execute(sql)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Conseguimos, valeu pela ajuda de todos ai, a linha do select fiocu assim: sql = "SELECT * FROM tabela_benef WHERE cod_benef="& cod_benef &" AND DATA_NASCIMENTO_BENEF= #" &DATA_NASCIMENTO_BENEF& "#" set rs = dados.execute(sql)abraços a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

exatamente :) eu falar pra você tirar as aspas simples. e muito bom que você postou a forma correta. assim ajuda outras pessoas com o mesmo problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.