miren al respecto ami parece bien este codigo que recoge datos de un formulario asp pero el problema es que no carga tiene que cargar en la misma pagina
<%
If Request.Form <> "" Then
Dim cn, rs
Set cn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
strConnectionString ="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" Server.MapPath("../Compupartes.mdb")
Set cn = Server.CreateObject("ADODB.Connection")
cnn.Open strConnectionString
Set rsproductos = Server.CreateObject("ADODB.Recordset")
TBL.Open"Productos",DB,1,2
TBL.AddNew
TBL("categoria") = Request.Form("categoria")
TBL("clasificacion") = Request.Form("clasificacion")
TBL("codigo") = Request.Form("codigo")
TBL("proDescripcion") = Request.Form("proDescripcion")
TBL("proPrecio") = Request.Form("proPrecio")
TBL("proPrecioS") = Request.Form("proPrecioS")
TBL("proCaracteristica") = Request.Form("proCaracteristica")
TBL("Garantia") = Request.Form("Garantia")
TBL.Update
TBL.Close
DB.Close
Set DB = Nothing
Set TBL = Nothing
Response.Write "Se agregó con exito la información"
else
%>
Datos a añadir
Categoría
:
Clasificación
:
Código
:
Nombre
del
Producto
:
Precio
Soles
:
Precio Dólares
:
Caracteristica
del Producto
:
Garantía
:
<%
End If
%>
formularios en asp
Hola yerrysite, pues a mi me parece súper mal el código que mencionas es un arroz con mango y tu me asustas mucho ponte ha estudiar y con ganas ASP y ADO que no son nada difÃcil, podré de tu cliente que parece que es Compupartes si son ellos se lo tiene merecido por cabeceadores ya que a una amiga mÃa nunca le terminaron de pagar su trabajo.
Por lo que veo hay algunos errores en el script, salvo que el script este incompleto.
Existen 3 variables a objetos medias raras, de las cuales una "rs" que es una instancia de un recorset que se crea y nunca se libera lo que va causar que se consuman recursos del servidor innecesariamente y "rsproductos" que es una instancia a un recordset que se instancia pero q no se declara (bueno la declaración no es del todo necesaria). Por otro lado esta "TBL" que se ve que es una instancia a un recordset pero que no ve cuando se instancia ni cuando se declarada.
Para comprobar que los datos se están pasando correctamente a este formulario has lo siguiente:
Response.Write Request.Form("categoria")
Response.Write Request.Form("clasificacion")
Response.Write Request.Form("codigo")
Response.Write Request.Form("proDescripcion")
Response.Write Request.Form("proPrecio")
Response.Write Request.Form("proPrecioS")
Response.Write Request.Form("proCaracteristica")
Response.Write Request.Form("Garantia")
Response.End
El script deberÃa ser el siguiente:
Dim cn, rs, strConnectionString
Set cn = Server.CreateObject("ADODB.Connection")
Set rsproductos = Server.CreateObject("ADODB.RecordSet")
strConnectionString ="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" Server.MapPath("../Compupartes.mdb")
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open strConnectionString
Set rsproductos = Server.CreateObject("ADODB.Recordset")
rsproductos.Open"Productos",cn,1,2
rsproductos.AddNew
rsproductos("categoria") = Request.Form("categoria")
rsproductos("clasificacion") = Request.Form("clasificacion")
rsproductos("codigo") = Request.Form("codigo")
rsproductos("proDescripcion") = Request.Form("proDescripcion")
rsproductos("proPrecio") = Request.Form("proPrecio")
rsproductos("proPrecioS") = Request.Form("proPrecioS")
rsproductos("proCaracteristica") = Request.Form("proCaracteristica")
rsproductos("Garantia") = Request.Form("Garantia")
rsproductos.Update
rsproductos.Close
cn.Close
Set rsproductos = Nothing
Set cn = Nothing
Saludos
Alberto, desde Lima-Perú
yerrysite
gracias pero ya habia usado sentencia sql...para el insert el codigo que mande lo mande recontra apurado........
garcias alexis por tu
garcias alexis por tu explicacion es que en el muno de la programacion web asp soy nuevo .... tengo mas entendimiento en php .......gracias por la explicacion
muy buen tu explicacion ,
muy buen tu explicacion , tambien soy nuevo en el mundo asp y quisiera saber como haria para actualizarun registro con ese mismo codigo?
¿Ya te leiste un libro sobre el tema?
Si aún no lo has hecho deberÃas empezar por allà antes de empezar a pegar pedacitos de código.
¡Saludos!
Alexis Bellido
Lee hoy el libro del teletrabajo.
lo q pasa es he tomado la
lo q pasa es he tomado la posta por decirlo asi de la pag de compupartes, no tengo problemas con agregar y eliminar registros , el problema es con el actualizar, la pagina updated.asp recibe los datos de un formulario de la pagina update.asp,
aca va mi problema, supuestamente el codigo original del updated.asp es
'Recogemos los valores del formulario categoria = Request.Form("categoria") clasificacion = Request.Form("clasificacion") codigo = Request.Form("codigo") proDescripcion = Request.Form("proDescripcion") proPrecio = Request.Form("proPrecio") proPrecioS = Request.Form("proPrecioS") proCaracteristica = Request.Form("proCaracteristica") Garantia = Request.Form("Garantia") 'Instanciamos y abrimos nuestro objeto conexion Application("conCompupartes") = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("../compupartes.mdb")&";" set pCon = Server.CreateObject("ADODB.Connection") set pRec = Server.CreateObject("ADODB.Recordset") pCon.ConnectionTimeout = Application("conCompupartes_ConnectionTimeout") pCon.CommandTimeout = Application("conCompupartes_CommandTimeout") pCon.Open Application("conCompupartes") 'Ejecutamos una consulta SQL a la tabla sqltext = "SELECT * FROM productos where proDescripcion ='" & request.querystring("proDescripcion")&"'" pRec.Open sqltext,pCon,3,3 'Modificamos los datos pRec("categoria") = categoria pRec("clasificacion") = clasificacion pRec("codigo") = codigo pRec("proDescripcion") = proDescripcion pRec("proPrecio") = proPrecio pRec("proPrecioS") = proPrecioS pRec("proCaracteristica") = proCaracteristica pRec("Garantia") = Garantia pRec.update 'Cerramos el recordset y la conexión pRec.Close set pRec = Nothing pCon.Close set pCon = Nothingpero cuando en update.asp hago los cambio y con el form llamo a updated.asp, no aparece nada , como si el archivo no existiese. Me aparece esa pagian q dice No se ha encontardo la pagina...
Ahora lo q he hecho es verificar si las variables q quiero, pasan de update.asp a updated.asp e hice esto, y me funciona
'Recogemos los valores del formulario categoria = Request.Form("categoria") clasificacion = Request.Form("clasificacion") codigo = Request.Form("codigo") proDescripcion = Request.Form("proDescripcion") proPrecio = Request.Form("proPrecio") proPrecioS = Request.Form("proPrecioS") proCaracteristica = Request.Form("proCaracteristica") Garantia = Request.Form("Garantia") Response.Write (categoria) esponse.Write (clasificacion) Response.Write (left(codigo,1))las variables, categoria, casificacion y codigo pasan.
Ahora cuando quiero agregar lo demas codigos para realizar la actualizacion, es decir el codigo de conexion y ejecucion sql , me aparece como si no exisitese la pagina, es decir el mensaje e q NO SE PUEDE ENCONTRAR LA PAGINA
Me parece raro pues tarte de probar el codigo q tengo en otro script que si me funciona ( http://h.1asphost.com/rsambora/nuevo/) pero me sucede lo mismo
por cierto los acesos son :
admin
admin
Que te parece usar Stored Querys
Saludos yerrysite, quizas y ya hayas encontrado una solución pero igual quisiera aportar. Hace un tiempo tuve problemas parecidos al tuyo usando ASP + Access, pero luego le encontré la solución. Asi como SqlServer de ms existen los Stored Procedures, en Access hay un equivalente: Stored Queries, Asà por ejemplo:
En access (SUS_SUSCRIPTOR_registrar):
INSERT INTO SUSCRIPTOR ( SUS_email, SUS_fecha_suscripcion ) VALUES ([@new_email], [@new_fecha_suscripcion]);
En Asp:
Function insert_requested_subscription(par_email, par_fecha)
Dim cnnRegister, par_list, rstResult, ar_result
set cnnRegister = server.CreateObject("ADODB.Connection")
par_list = "'" & lcase(par_email) & "','" & par_fecha & "'"
cnnRegister.Open sDBConnectionString
cnnRegister.Execute "exec SUS_SUSCRIPTOR_registrar " & par_list
set rstResult = cnnRegister.execute("SELECT @@IDENTITY")
ar_result = rstResult.GetRows()
set rstResult = nothing
cnnRegister.Close
set cnnRegister = nothing
insert_requested_subscription = ar_result(0, 0)
End Function
...
dim qs_email
qs_email = Trim(request.form("txt_email"))
call insert_requested_subscription(qs_email, format_datevalue(date()))
...
Encontré un ejemplo[1] que está mas detallado asi que sera cuestión de que lo leas y pruebes.
Te recomendaria que cuando se trata de registrar, actualizar y eliminar uses Commands y no Recordsets, pues estos ultimos no fueron creados para tales tareas. Casi mejor si prefieras PHP+MySQL XD
[1] http://www.stardeveloper.com/articles/display.html?article=2001050101&pa...