Ir para conteúdo

POWERED BY:

Arquivado

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

gpassarelli

ADODB.Field (0x80020009)

Recommended Posts

Bom galera eh o seguinte...Eu to montando um esqueminha aqui...pessoal...Para controle de contas a pagar e tal...Ae pintou um duvida minha...Oq eu quero eh...Que no SELECT ele selecione somente os dados que tem o valor na coluna vencimento = data de hoje...e que seja menor que a data de hoje...A data de vencimento no db fica dd/mm/aaaaEu tva tentando algo assim:

set vencidas = connect.execute("Select * FROM contas WHERE Vencimento='Date()'")
Mais nao deu certo...Ele dah esse erro:

ADODB.Field (0x80020009)BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual.

Mais tem dados no bd com a data do dia...E nao vai...Sera que alguem podia me ajudar?Abracos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como a data esta grava do banco? dd//mm//aa ? set vencidas = connect.execute("Select * FROM contas WHERE Vencimento='FormatDateTime(Date)'")tenta mudar o formato da data.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colocando no topo da página:

 

<% Session.LCID = 1046 %>

pode formatar a data assim tbm:

<%
Data = Right("0"&Day(Date()),2) &"/"& Right("0"&Month(Date()),2) &"/"& Year(Date())

set vencidas = connect.execute("Select * FROM contas WHERE Vencimento='"&Data&"'")
%>

Caso o do amigo acima ñ ajude você pode tentar esse exemplo

Compartilhar este post


Link para o post
Compartilhar em outros sites

caso persista o erro ainda faça testes passo a passo. Primeiro:

sql="Select * FROM contas WHERE Vencimento='"&Date()&"'"response.write(sql)response.end()set vencidas = connect.execute(sql)
esse codigo vai parar seu script e escrever o sql, compare a data retornada com a data que tens no banco, veja se estão no formato correto. Se necesário for utilize uma função para formatar a data.

Mais um detalhe, se for access a data deve ficar entr # e sem aspas duplas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera...eu tentei das 2 maneiras que vcs falaram...e nenhuma deu certo...

Ae eu fiz oq o jonathandj flw...

Ae ele exibiu assim:

Select * FROM contas WHERE Vencimento='19/7/2007'

Ae eu fui ver no banco...

A tabela do banco esta assim:

Imagem Postada

Ae eu tirei o:

response.write(sql)response.end()
Pq pra mim as datas estao iguais..

Ae nao foi..

Deu o mesmo erro...

Ae eu tire as aspas simples..

Ficou assim:

Select * FROM contas WHERE Vencimento=19/7/2007

Mais igual ainda...

E continunou nao indo...

 

Acabei de ver o erro...

uiahuiah

Eu mesmo vi..

Mais como eu arrumo?

No banco a data tah 19/07/2007 e na SQL a data tah 19/7/2007

Como eu coloco o 0 antes do 7 na data da SQL?

 

Abracos...

Vlw a todos que ajudaram..

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja no laboratório de scripts asp, tem funções para formatar data...eu postei duas lá bem "globais"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Juntei oq o Ted flw com oq o Jonathan flw...Ae ficou assim..

Data = Right("0"&Day(Date()),2) &"/"& Right("0"&Month(Date()),2) &"/"& Year(Date())sql="Select * FROM contas WHERE Vencimento="&Data&""response.write(sql)response.end()set vencidas = connect.execute(sql)
Ae a resposta foi:

Select * FROM contas WHERE Vencimento='19/07/2007'

Mais ainda assim nao foi...OBS: O banco eh access...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum banco ACCESS veja isso cara

 

sql="Select * FROM contas WHERE Vencimento = format('" & date() & "','dd/mm/yyyy')"

verifique se seu campo é um campo DATE

Compartilhar este post


Link para o post
Compartilhar em outros sites

setou o lcid na página?coloque o # entre a data'#19/07/2007#'só uma observação, se alguem souber explicar seria melhor....em alguns servidores onde usei access precisei inverter as data da consulta, ficando no banco DD/MM/AAAA e no sql MM/DD/AAAA, mesmo setando o lcid precisei fazer essa "gambi" pra funcionar...de repente é o seu caso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso mesmo jonathandj eu mencionei o LCID anteriormente...

 

<% Session.LCID = 1046 %>

gpassarelli você colocou ele?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ted...O response ficou assim:

Select * FROM contas WHERE Vencimento = format('19/7/2007','dd/mm/yyyy')

Tipo...ohO Campo nao era date...ae eu mudei...ae a data ficou exibindo:19/7/2007Ae eu fui e coloquei o script do Jonathan que tva exibindo a data sem o 0.o o response ficou assim:

Select * FROM contas WHERE Vencimento='19/7/2007'

Ae eu tirei pra dar o response...Ae ele deu esse 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./intranet/index.asp, line 10

Ae eu tiro as aspas simples...ele dah aquele mesmo erro:

ADODB.Field (0x80020009)BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual.

Tinha colocado no seu exemplo...Vou tentar agora de novo...Continuou o erro...Mesmo com o
<% Session.LCID = 1046 %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

então atualmente seu campo Vencimento está como data/hora e os dados formatados assim 19/7/2007

se você fizer

response.write(date())

response.end()

 

retorna 19/7/2007

 

se for isso seu sql deve ficar

sql="Select * FROM contas WHERE Vencimento = #"&date()&"#"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jonathan...

Eu fiz o

response.write(date())

response.end()

 

E retornou: 19/7/2007

Igual tah a data no db...

Fiz o SQL do jeito que você flw...

sql="Select * FROM contas WHERE Vencimento = #"&date()&"#"
Ae ele continuou dando o mesmo erro...

AE eu mandei:

sql="Select * FROM contas WHERE Vencimento = #"&date()&"#"response.write(sql)response.end()set vencidas = connect.execute(sql)
Ele retornou:

Select * FROM contas WHERE Vencimento = #19/7/2007#

Eh assim mesmo que tem q ficar?

pq continua dando erro...

o

<% Session.LCID = 1046 %>

Tem que ter?

Onde q ele fica na pg?

No topo do codigo...ou logo embaixo do <body>?

 

 

Img da tabela dps de ter mudado pra DAte/time:

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

era pra ser, por descargo de consciencia coloque assim, sem usar o comando date() e fixando a datasql="Select * FROM contas WHERE Vencimento = #7/19/2007#"ousql="Select * FROM contas WHERE Vencimento = #19/7/2007#"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara...

Malz pela demora...

Tive que ir viajar...uihaiuah

mais tah ae o codigo:

<%@ Language="VBScript" %><% Session.LCID = 1046 %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Untitled Document</title></head><!--#include file="settings.asp" --><% set contas = connect.execute("Select * from contas WHERE Paga ='0'")sql="Select * FROM contas WHERE Vencimento = #19/7/2007#"set vencidas = connect.execute(sql)%>

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.