Ir para conteúdo

POWERED BY:

Arquivado

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

delgisa

[Resolvido] Erro ao gravar: Formulário Asp em Banco de dados Access

Recommended Posts

Olá, por favor, estou com um problema, já o que é, pesquisei na internet mas não consegui nenhum resultado satisfatório.

 

Tenho um formulário que inclui dados em um banco de dados access.

E neste banco, tenho campos tipo memorando, texto, Sim/Não e Data/Hora.

Os campos memorando e texto consigo gravar normalmente, mas o Sim/Não e Data/Hora, dá erro:

Microsoft OLE Provider for ODBC Drivers (ox80040E07) [Microsoft ] [Driver ODBC para Microsoft Access] Tipo de dados incompatível na expressão de critério. Linha 232

 

 

No formulário, a programação dos campos que dão erro estão desta forma:

<td width="70%"> <label> 
			<input type="radio" name="Destaque" value=sim >
			Sim</label> <br> <label> 
			<input type="radio" name="Destaque" value=Nao>
			Não</label> <br> </td>
		</tr>

E DA DATA:

<tr> 
		  <td width="30%"><%=fonte02%>Data e Hora atuais</td>
		  <td width="70%"><input name="Data_hora" type="text" maxlength="50" class="formindex" size="55"></td>
		</tr>

 

 

Segue abaixo o código do INSERT e os campos que dão problemas são: destaque(Sim/Não) e data_hora(Data/Hora)

 

 

 

199 ComandoSQL = "INSERT INTO imoveis (andar, apto, area, data_hora, destaque, bairro, cidade, uf, categoria, cond_pagamento, 200 desc_destaque, desc1, desc2, desc3, desc4, desc5, descricao, dormitorio, edificio, endereco, fase_obra, foto1, foto2, 201 foto3, foto4, foto5, NewId, numero, preco, suite, tipo)"
202 ComandoSQL = ComandoSQL & " VALUES ("
203 ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("andar")) & "',"
204 ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("apto")) & "',"
205 ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("area")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("bairro")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("categoria")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("cidade")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("uf")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("cond_pagamento")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("data_hora")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("desc_destaque")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("desc1")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("desc2")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("desc3")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("desc4")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("desc5")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("descricao")) & "',"
	ComandoSQL = ComandoSQL & "" & Server.HTMLEncode(Request.FORM("destaque")) & ","
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("dormitorio")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("edificio")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("endereco")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("fase_obra")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("foto1")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("foto2")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("foto3")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("foto4")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("foto5")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("NewId")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("numero")) & "',"
	ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("preco")) & "',"
230  ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("suite")) & "',"
231  ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("tipo")) & "')"
232  Set bd = banco.Execute(ComandoSQL)
	banco.Close
	Set bd = Nothing
	Set banco = Nothing

Obrigado

 

Jardel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia, O seu campo data_hora é o usuário q insere ou você pega da hora do computador ???

 

Depois q executar a sql faça isso ..

 

response.write ComandoSQL
response.end()
E poste o resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Algumas sugestões:

 

1 - Se a Data e Hora são atuais, evite que o usuário preencha o form de maneira errada, você pode fazer o seguinte:

<input type="hidden" name="Data_hora" value="<% =Now %>">

2 - Procure recuperar os valores do form antes de inserir na Sql, desta forma você poderá tratar/formatar os campos, depois veja como estão chegando os valores com um Response.Write /Response.End() - (como sugerido acima) - e veja se está compatível com o formato de dados do DB.

 

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia, O seu campo data_hora é o usuário q insere ou você pega da hora do computador ???

 

Depois q executar a sql faça isso ..

 

response.write ComandoSQL
response.end()
E poste o resultado

 

 

Boa tarde Jow, fiz o quevc pediu, segue abaixo o resultado do Response.write commandosql:

 

INSERT INTO imoveis (andar, apto, area, bairro, destaque, data_hora, cidade, uf, categoria, cond_pagamento, desc_destaque, desc1, desc2, desc3, desc4, desc5, descricao, dormitorio, edificio, endereco, fase_obra, foto1, foto2, foto3, foto4, foto5, NewId, numero, preco, suite, tipo) VALUES ('v','v','v','v','v','v','v','v','06/08/2008 17:21:00','v','v','v','v','v','v','v','sim','v','v','v','v','v','v','v','v','v','v','v','v','v','v')

 

onde "sim" é o botão radio com value="sim" e a data é do campo data do formulário.

 

 

Grato

 

Jardel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pela descrição do erro:

Tipo de dados incompatível na expressão de critério

 

Algum campo recuperado está em desacordo com a sua tabela, cheque o tipo de dados na tabela e corrija as aspas na sua Sql...

 

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho e está passando todos os valores na sql ... verifica se está na ordem correta os dados ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pela descrição do erro:

Tipo de dados incompatível na expressão de critério

 

Algum campo recuperado está em desacordo com a sua tabela, cheque o tipo de dados na tabela e corrija as aspas na sua Sql...

 

Abs.

 

Então, quando eu apago as linhas dos campos data_hora e destaque, consigo gravar todos os dados no banco, mas qdo incluo estas linha, dá o erro.

Desculpe, não consegui aprender ainda o significado das aspas na sql, eu tenho um programa que gera a sql pra mim... Estou começando agora em ASP...

Você havia dito para pegar os dados antes da select e tratá-los, mas parece que estão ok, você viu no response.write que postei....

 

Sei que o problema está em gravar no campo data e no campo Sim/Não

 

 

Tem mais alguma coisa q posso fazer?

 

Abraços

 

e obrigado por enquanto

 

jardel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho e está passando todos os valores na sql ... verifica se está na ordem correta os dados ...

 

 

Olá Jow, desculpe minha ignorância....como assim na ordem? você quer dizer referente ao formulário, a declaração dos campos e o mando Insert devem estar na mesma ordem?

Veja se é isso:

No formulário:

nome:

endereco:

cidade:

 

Na declaração do Insert:

nome, endereço, cidade

 

No Insert

ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("nome")) & "',"

204 ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("endereco")) & "',"

205 ComandoSQL = ComandoSQL & "'" & Server.HTMLEncode(Request.FORM("cidade)) & "',"

 

 

É essa tipo de ordem que você se referiu?

 

 

abraços

 

Jardel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para gravar campo SIM/NÃO, você deve informar 1 para SIM e 0 para NÃO.

 

Sobre a data, verifique se no banco está data geral ou abreviada no campo data/hora.

 

Caso contrário utileza date ao invés de now.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para gravar campo SIM/NÃO, você deve informar 1 para SIM e 0 para NÃO.

 

Sobre a data, verifique se no banco está data geral ou abreviada no campo data/hora.

 

Caso contrário utileza date ao invés de now.

 

 

Olá hargon,

 

Vou tentar gravar o campo sim/não,

 

Agora no campo data, você quis dizer para usar date no formulário? ví no banco, e tem um comando Agora() no valor padrão do campo (onde grava os dados da seguinte forme: dd/mm/aaaa hh:mm:ss)

Devo apagar o valor padrão e deixar apenas que o formulário grave a data neste campo?

 

Abraços

 

Jardel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca data abreviada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para gravar campo SIM/NÃO, você deve informar 1 para SIM e 0 para NÃO.

 

Sobre a data, verifique se no banco está data geral ou abreviada no campo data/hora.

 

Caso contrário utileza date ao invés de now.

 

 

Olá hargon,

 

Vou tentar gravar o campo sim/não,

 

Agora no campo data, você quis dizer para usar date no formulário? ví no banco, e tem um comando Agora() no valor padrão do campo (onde grava os dados da seguinte forme: dd/mm/aaaa hh:mm:ss)

Devo apagar o valor padrão e deixar apenas que o formulário grave a data neste campo?

 

Abraços

 

Jardel

 

 

 

Bom dia hargon,

 

Olha, tentei passar por parâmetro 1 e 0 para o Sim/Não mas não deu certo e tb não consegui inserir a data....

 

Cara, desisto, não consigo.. Transformei os campos em texto e problema resolvido... [ "Não tem cão, caça com gato"]

 

 

Valeu

 

Abraços

 

Jardel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tentou passar passar usando aspas simples? '1' e '0' ?

 

Dependendo da aplicação é melhor tentar fazer certo no inicio, pois no futuro isso pode gerar um problema maior e uma perda de tempo maior ainda...

 

 

Abraço.

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.