Ir para conteúdo

POWERED BY:

Arquivado

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

Castelo

Dados imcompatível na expressão de critério

Recommended Posts

E ai Galera ASPeira!!

 

To nos finalmente de um sistema muito legal... faço o registro automático de 2 até 37 registro (minha necessidade máxima), ainda não testei para mais de 37 registros, mas creio que o sistema suporte isso...

 

O que quero ver com vocês é que estou com problemas na instrução do UPDATE...

dêem uma olhada ai:

 

conn.Execute "update notas set n_2_b="&reg_not&",f_2_b="&reg_f&",r_2_b="&reg_r&" where aluno="&reg_al&" and disc_n="&disi&""

a instrução de INSERT dos registros é essa:

conn.Execute "insert into notas (aluno,turma,disc_n,n_1_b,f_1_b,r_1_b) values('"&reg_al&"','"&tur&"','"&disi&"','"&reg_not&"','"&reg_f&"','"&reg_r&"')"

e não apresenta problemas.

 

o erro na istrução do UPDATE é esse:

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./notas/lanc_notas.asp, line 34
Justamente a LINHA 34 é que postei logo acima.

 

Alguém tem uma dica... :huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou passar logo o código inteiro... personalizei ele depois de muita pesquisa e teste...

<%@ Language=VBScript%><%  Option Explicit %><%	Dim reg_al,reg_not,reg_f,reg_r,conn,a,dsn,n,f,r	Dim id_alu,nott,falt,recu,tur,disi	id_alu = request.form("id_aluno")	nott = request.form("nota")	falt = request.form("falta")	recu = request.form("rec")	tur = request.form("tu")	disi = request("dsci")	dsn="DBQ=" & Server.Mappath("notas_2004.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"	set conn=server.createObject("adodb.connection")	conn.Open dsn	a=split(id_alu,",")	n=split(nott,",")	f=split(falt,",")	r=split(recu,",")	dim iLoop	for iLoop=LBound(a) to UBound(a)  reg_al=Trim(a(iLoop))  reg_not=Trim(n(iLoop))  reg_f=Trim(f(iLoop))  reg_r=Trim(r(iLoop))	  	select case request.form("BIM")  	case 1  	conn.Execute "insert into notas (aluno,turma,disc_n,n_1_b,f_1_b,r_1_b) values('"&reg_al&"','"&tur&"','"&disi&"','"&reg_not&"','"&reg_f&"','"&reg_r&"')"  	case 2  	conn.Execute "update notas set n_2_b="&reg_not&",f_2_b="&reg_f&",r_2_b="&reg_r&" where aluno="&reg_al&" and disc_n="&disi&""  	end select  	next	conn.Close	set conn=nothing%><%	Response.Write "<p>Notas gravadas con sucesso!</p>"	Response.write "<p align='center'><a href='index.asp'>VOLTAR</a></p>"	%>
OBSERVAÇÕES SOBRE O CÓDIGO:

Todos os dados passados pelo FORM são números.

o SELECT CASE verifica se os dados passados são do 1º Bimestre ou 2º.. 3º.. 4º.

Caso 1º usa-se INSERT, caso 2º .. 3º.. 4º usa-se UPDATE

No ACCESS os campos de notas e id's estão definidos como numéricos.

 

Uso um LOOP para inserir os dados nos registros já existentes... o INSERT funciona 100% mas o UPDATE... não funciona... talves eu esteja falhando num mínimo detalhe... mas... não achei o erro.

 

Espero que consigamos desvendar esse enigma .... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

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.