Ir para conteúdo

POWERED BY:

Arquivado

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

kika

em ASP para inserir dados no Access

Recommended Posts

Tenho o seguinte código teste.asp:

 

<!-- #include file="db.asp" --><!-- #include file="adovbs.inc" --><html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Untitled Document</title></head><body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"><table border="0" align="left" cellpadding="2" cellspacing="2">  <tr>	<td align="center" valign="middle"><table width="478" border="0" cellpadding="4" cellspacing="0">	  <tr>		<td width="458"><div align="left">			<%	  Set Conn = Server.CreateObject("ADODB.Connection")	  Conn.Open ConString	  	  Set rsProdInfo = Conn.Execute("SELECT imagem FROM produtos2")	'  if rsProdInfo.EOF then	'	Response.Write "Esse Produto " & strcod_produto & _	'		" não existe." 	'  else	'	strRefer = rsProdInfo("referencia")		strImage = rsProdInfo("imagem")%>		  </div>			<table width="471" border="0" cellpadding="2" cellspacing="0">			  <tr>				<td width="462"><div align="left"> </div></td>			  </tr>			</table>		  <table border="0" align="left" cellpadding="2" cellspacing="0">			  <tr>				<td width="43"><div align="left"><img src="<%= strImage %>" align="left" /> </div></td>				<td width="101"><div align="left"></div></td>			  </tr>			<tr> </tr>		  </table>		  <%'end ifrsProdInfo.Closeset rsProdInfo = Nothing	 Conn.Closeset Conn = Nothing%>		</td>	  </tr>	</table>	<p align="center"> </p></td>  </tr>  <tr>	<td align="center" valign="middle">	<form id="form1" name="form1" method="post" action="">		<table width="391" border="1" align="center" cellpadding="2" cellspacing="0">		<%	  Dim iPageSize	   'Numero de colunas na páginaDim iPageCount	  'O número de páginas que iremos retornarDim iPageCurrent	'A página que queremos exibirDim strParam		'Passando parametroDim strSQL		  'comando SQL Dim iRecordsShown   'Loop controller for displaying just iPageSize recordsDim I			   'Standard looping variPageSize = 10 'Número de Produtos a serem exibidos por página na Tabela' Build SQL String using the parametersstrSQL = "SELECT tamanho FROM CL1"' Criando e abrindo a conexão		   	  Set Conn = Server.CreateObject("ADODB.Connection")	  Conn.Open ConString	  	  	  Set rsProdInfo = Server.CreateObject("ADODB.Recordset")	  rsProdInfo.PageSize = iPageSize	  rsProdInfo.CacheSize = iPageSize	  rsProdInfo.Open strSQL, Conn, adOpenStatic, adLockReadOnly, adCmdText 	  %>		<tr>		  <td width="99" align="center" valign="middle" bgcolor="#ff9900"><div align="center"><font color="#ffffff" face="Verdana" size="2"><strong>TAMANHO</strong></font></div></td>		  <td width="72" align="center" valign="middle" bgcolor="#ff9900"><div align="center"><font color="#ffffff" face="Verdana" size="2"><strong>INICIAL</strong></font></div></td>		  <td width="82" align="center" valign="middle" bgcolor="#ff9900"><div align="center"><font color="#ffffff" face="Verdana" size="2"><strong>VENDA</strong></font></div></td>		  <td width="112" align="center" valign="middle" bgcolor="#ff9900"><div align="center"><font color="#ffffff" face="Verdana" size="2"><strong>PERCENTUAL</strong></font></div></td>		</tr>		<%	  		iRecordsShown = 0		Do While iRecordsShown < iPageSize And Not rsProdInfo.EOF		  	  %>		<tr bgcolor="7f4200">		  <td align="center" valign="middle" bgcolor="#FFF0E1"><div align="center"><font face="Verdana" size="1" color="#ff9900"><b><%= rsProdInfo("tamanho")%></b></font></div></td>		  <td align="center" valign="middle" bgcolor="#FFF0E1"><font face="Verdana" size="1" color="#A63600"><b>			<label></label>			<input name="inicial" type="text" id="inicial" size="5" />		  </a></b></font></td>		  <td align="center" valign="middle" bgcolor="#FFF0E1"><label for="textfield"><font face="Verdana" size="1" color="#A63600"><b>			<input name="venda" type="text" id="venda" size="5" />		  </a></b></font></label></td>		  <td align="center" valign="middle" bgcolor="#FFF0E1"><div align="center">			<label>			<input name="percentual" type="text" id="percentual" size="5" />			</label>		  </div></td>		</tr>		<%	  iRecordsShown = iRecordsShown + 1	  rsProdInfo.MoveNext	  Loop	  'End if  rsProdInfo.Close		set rsProdInfo = Nothing		  		Conn.Close		set Conn = Nothing			  	  	%>	  </table>	  		<table width="391" border="1" align="center" cellpadding="0" cellspacing="0">		  <tr bgcolor="7f4200">			<td width="104" bgcolor="#FFFFFF"> </td>			<td width="75" bgcolor="#FFFFFF"><div align="center"></div>			<div align="center"><font size="2"><strong><font color="#CC6600" size="1" face="Verdana, Arial, Helvetica, sans-serif">TOTAL INICIAL:</font><font color="#CC6600" face="Verdana, Arial, Helvetica, sans-serif"><br>			</font></strong></font><font face="Verdana" size="1" color="#A63600"><b>				  <input name="total_inicial" type="text" id="total_inicial" size="8" />			  </b></font></div></td>			<td width="86" align="center" valign="middle" bgcolor="#FFFFFF"><div align="center"></div>				<div align="center"><font size="2"><strong><font color="#CC6600" size="1" face="Verdana, Arial, Helvetica, sans-serif">TOTAL <br>				VENDA:</font></strong></font><font face="Verdana" size="1" color="#A63600"><b><br>				  <input name="total_venda" type="text" id="total_venda" size="8" />			  </b></font></div></td>			<td width="116" align="center" valign="middle" bgcolor="#FFFFFF"><div align="center"></div>		<div align="center"><font size="2"><strong><font color="#CC6600" size="1" face="Verdana, Arial, Helvetica, sans-serif">TOTAL <br>				  PERCENTUAL				:</font></strong></font><font face="Verdana" size="1" color="#A63600"><b><br>				  <input name="total_percentual" type="text" id="total_percentual" size="8" />			  </b></font></div></td>		  </tr>		</table>		</form>	  <div align="center"></div></td>  </tr></table></body></html>

 

Nesse código aparece uma tabela com os dados do Tamanho (de 1 a 10) e os campos que o usuário deve inserir valores, que são (Inicial e venda) e o campo Percentual que deve ter o cálculo dos dois valores inseridos pelo usuário.

 

Estou tão nervosa com a urgência disso, que me esqueci como devo fazer. Criei um outro arquivo para insersão desses dois campos e mandei chamar pelo action, mas não consigo fazer funcionar.

 

Preciso de uma luz, uma referência de alguma coisa. Fico muito grata se alguém puder me ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

onde está a instrução sql para inserir no banco?só vi para selecionar...será que estou cego? por acaso você está usando flash em conjunto para inserir?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá jonathandj,

 

Eu não estou usando Flash.....estou usando apenas ASP com BD Access.

 

No meu teste.asp (que postei antes) tenho um Select, pois os tamanhos estão no BD, isso já é um valor fixo.

 

E tenho minha insere.asp que é chamada dentro da action do form:

<%	  Set Conn = Server.CreateObject("ADODB.Connection")	  Conn.Open ConString	  	  Set rsProdInfo = Conn.Execute "INSERT INTO CL1 (inicial, venda, percentual, total_inicial, total_venda, total_percentual) VALUES ("&inicial&", "&venda&", "&percentual&", "&total_inicial&", "&total_venda&", "&total_percentual&")"%>

Só que está dando o seguinte erro:

 

Microsoft VBScript compilation error '800a0401'

 

Expected end of statement

 

/acomp/insere.asp, line 9

 

Set rsProdInfo = Conn.Execute "INSERT INTO CL1 (inicial, venda, percentual, total_inicial, total_venda, total_percentual) VALUES ("&inicial&", "&venda&", "&percentual&", "&total_inicial&", "&total_venda&", "&total_percentual&")"

------------------------------^

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta colocar os parenteses:Set rsProdInfo = Conn.Execute ("INSERT INTO CL1 (inicial, venda, percentual, total_inicial, total_venda, total_percentual) VALUES ("&inicial&", "&venda&", "&percentual&", "&total_inicial&", "&total_venda&", "&total_percentual&")")ou fazer assim:sql="INSERT INTO CL1 (inicial, venda, percentual, total_inicial, total_venda, total_percentual) VALUES ("&inicial&", "&venda&", "&percentual&", "&total_inicial&", "&total_venda&", "&total_percentual&")"Set rsProdInfo = Conn.Execute(sql)

Compartilhar este post


Link para o post
Compartilhar em outros sites

você fez o include nessa página? acho que esse aqui que cria os objetos e determina o caminho do banco <!-- #include file="db.asp" -->

Compartilhar este post


Link para o post
Compartilhar em outros sites

Todos os meus campos são númericos, já testei tudo que vcs me indicaram e nada funciona, continua dando o mesmo erro.

 

Coloquei o include, pois percebi que havia esquecido, mas não mudou nada.

 

Esse é o meu db.asp

 

ConString = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & "D:\web\jn\database\pedidos.mdb" & ";" & "JET OLEDB:Database"

E a insere.asp atual:

 

<!-- #include file="db.asp" --><%	  Set Conn = Server.CreateObject("ADODB.Connection")	  Conn.Open ConString	  	  Set rsProdInfo = Conn.Execute "INSERT INTO CL1 (inicial, venda, percentual, total_inicial, total_venda, total_percentual) VALUES ("&inicial&", "&venda&", "&percentual&", "&total_inicial&", "&total_venda&", "&total_percentual&")"%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assim:

Set rsProdInfo = Conn.Execute "INSERT INTO CL1 (inicial,venda,percentual,total_inicial,total_venda,total_percentual) VALUES ('"&inicial&"','"&venda&"','"&percentual&"','"&total_inicial&"','"&total_venda&"','"&total_percentual&"')"%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

shumiTentei e continua a mesma coisa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Calma ai essa pagina:

<!-- #include file="db.asp" --><%	  Set Conn = Server.CreateObject("ADODB.Connection")	  Conn.Open ConString	  	  Set rsProdInfo = Conn.Execute "INSERT INTO CL1 (inicial, venda, percentual, total_inicial, total_venda, total_percentual) VALUES ("&inicial&", "&venda&", "&percentual&", "&total_inicial&", "&total_venda&", "&total_percentual&")"%>

Só tem isso nela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim essa página só tem isso. A minha teste.asp é que chama essa insere.asp dentro da action do form

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas você tem que resgatar os valores do form para inserir...

Se o seu form tem o campo Telefone, por exemplo você tem que fazer assim na pagina a ser submetida pela action. se for method="post" na pagina da action você tem que fazer assim:

 

telefone = Request.Form("telefone")

se for method = "get" tem que fazer assim:

telefone = Request("telefone")

Isso com todos os campos que você ta chamando no insert.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tinha feito isso, mas não fiz com todos os campos. Vou fazer agora e depois posto aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza Kika qualquer coisa vorta ae!

Compartilhar este post


Link para o post
Compartilhar em outros sites

shumi, Funcionou, muito obrigada....valeu mesmo Mas agora está aparecendo outro problema. Criei um botão de inserir na teste.asp e quando clico nele, aparece o seguinte erro:Microsoft JET Database Engine error '80040e14' Number of query values and destination fields are not the same. /acomp/insere.asp, line 15

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal!

 

Vou pegar uma carona na dúvida da kika...

 

Também sou iniciante em ASP, estou tentando dar um INSERT num BD ACCESS, mas quando faço isso, o arquivo insert_into.asp ao invéz de redirecionar para a página "sucesso.asp", ele fica parado e não insere.

 

<%'Força a declaração de todas as variáveisOption Explicit'Não deixa informações no CacheResponse.Expires = 0'Declaração das variáveisDim objConn, objRs, strQuery, strConnection, nome, telefone, email, comentario, foto, strDBPath'Atrubuição dos valores as respectivas variáveisnome = Request.Form("nome")telefone = Request.Form("telefone")email = Request.Form("email")comentario = Request.Form("comentario")foto = Request.Form("foto")'Cria o objeto RecordSet e atribui a variável Set objConn =  Server.CreateObject("ADODB.Connection")'Abre a conexão com o banco de dados utilizando o Drive {Microsoft Access...strDBPath = Server.MapPath("contato.mdb")objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & ";"'Insere os dados na tabela abertastrQuery = "INSERT INTO contato (nome,telefone,email,comentario,foto) VALUES ('"&nome&"','"&telefone&"','"&email&"','"&comentario&"', '"&foto&"')"'Caso ocorra um erro esta função de erro será chamadaOn error Resume Next'Executa a inserção no Banco de Dados Set ObjRs = objConn.Execute(strQuery)'Fecha o Objeto de ConexãoobjConn.close'"APAGA" qualquer instancia que possa ter no objeto objRs e objConnSet objRs = NothingSet objConn = Nothing'Caso a função On Error Resume Next não tenha sido chamada o objeto err será = a 0if err = 0 Then	'Redireciona o usuário caso não tenha ocorrido erro na transação	response.redirect "sucesso.asp"end if%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kika, tente fazer isso na página INSERE:

 

Set Conn = Server.CreateObject("ADODB.Connection")	  Conn.Open ConString	  SQL = "INSERT INTO CL1 (inicial, venda, percentual, total_inicial, total_venda, total_percentual) VALUES ("&inicial&", "&venda&", "&percentual&", "&total_inicial&", "&total_venda&", "&total_percentual&")"	  Response.Write(SQL)	  Response.End()	  	  Set rsProdInfo = Conn.Execute(SQL)

 

Assim você consegue analisar se algum valor não está sendo capturado corretamente

 

Gustavo, tente modificar isso na última parte:

 

De:

if err = 0 Then	'Redireciona o usuário caso não tenha ocorrido erro na transação	response.redirect "sucesso.asp"end if

Para:

if err = 0 Then	'Redireciona o usuário caso não tenha ocorrido erro na transação	response.redirect "sucesso.asp"Else	erro = Err.Description	Response.Write(erro)end if

Compartilhar este post


Link para o post
Compartilhar em outros sites

daniloprates,Fiz e funcionou, eu tinha esquecido de tirar o Conn.Execute(SQL) da linha anterior. Agora ele me mostrou uma página com todos os dados que inseri.Mas agora abri o BD e ele não inseriu nada lá

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gustavo,você está conseguindo ver seus dados gravados no BD?

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.