Código:
Este codigo lo sace de ASP Facil, pero lo ajuste a mis necesidades (le agregé más variables) lo que pasa es que ahora, cuando pulso la tecla de envio del formulario, no se imprime en pantalla los resultados ni se almacenan los datos en la base. Donde está el error?<HTML> <HEAD> <TITLE>UNA PRUEBA</TITLE> <h2><center>Una prueba23</center></h2> <% 'Declaramos las variables Dim sDia, sTitol1, sTitol2, sTitol3, sTitol4, sTitol5, sTitol6, sText1, sText2, sText3, sText4, sText5, sText6 Dim oConn, rs, SQL, iCuantos, iRegistro 'Trim elimina los espacios en blanco a derecha e izquierda sDia = Trim(Request.Form("Dia")) sTitol1 = Trim(Request.Form("Titol1")) sTitol2 = Trim(Request.Form("Titol2")) sTitol3 = Trim(Request.Form("Titol3")) sTitol4 = Trim(Request.Form("Titol4")) sTitol5 = Trim(Request.Form("Titol5")) sTitol6 = Trim(Request.Form("Titol6")) sText1 = Trim(Request.Form("Text1")) sText2 = Trim(Request.Form("Text2")) sText3 = Trim(Request.Form("Text3")) sText4 = Trim(Request.Form("Text4")) sText5 = Trim(Request.Form("Text5")) sText6 = Trim(Request.Form("Text6")) 'Si esta variable está vacía 'es que no hemos enviado el formulario 'así que lo muestro if Len(sTexto) = 0 then Formulario else 'Tengo ya un nombre para insertar 'Creo los objetos Connection y Recordset set oConn = Server.CreateObject("ADODB.Connection") set rs = Server.CreateObject("ADODB.Recordset") oConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../Data/dilluns.mdb") 'En mi caso, utilizo una cadena de conexión para el SQL Server 'SELECT * FROM ... devuelve todas las filas de la tabla SQL="SELECT * FROM dilluns ORDER BY Id" 'Abro el Recordset con la sentencia SQL 'definiendo oConn como el objeto Connection 'y cursor 1 y lock(cerrojo) 2 rs.Open SQL, oConn, 1, 2 'Añado uno nuevo: a partir de ahora metos los datos del nuevo registro rs.AddNew rs.Fields("Dia")=sDia rs.Fields("Titol1")=sTitol1 rs.Fields("Titol2")=sTitol2 rs.Fields("Titol3")=sTitol3 rs.Fields("Titol4")=sTitol4 rs.Fields("Titol5")=sTitol5 rs.Fields("Titol6")=sTitol6 rs.Fields("Text1")=sText1 rs.Fields("Text2")=sText2 rs.Fields("Text3")=sText3 rs.Fields("Text4")=sText4 rs.Fields("Text5")=sText5 rs.Fields("Text6")=sText6 'Guardo los cambios rs.Update 'Después de guardar, el campo autonumérico 'ya está disponible iRegistro = rs.Fields("Id") Response.Write("<P>El registro <b>" & iRegistro & "</b> ha sido insertado") 'Me muevo al primero rs.MoveFirst 'Y pinto la tabla PintarTabla 'Cierro y destruyo objetos rs.Close 'Antes llamo a mantenimiento! Mantenimiento set rs = nothing oConn.Close set oConn = nothing end if '======================================================== Sub Formulario 'Imprimo por pantalla el formulario Response.Write("<FORM ACTION=""bdform2.asp"" METHOD=""post"">" & vbCrlf) Response.Write("<P>Data:<br>" & vbCrlf) Response.Write("<INPUT TYPE=""text"" NAME=""Dia"" SIZE=""30"">" & vbCrlf) Response.Write("<P>Titol i Text 6:<br>" & vbCrlf) Response.Write("<INPUT TYPE=""text"" NAME=""Titol1"" SIZE=""30"">" & vbCrlf) Response.Write("<INPUT TYPE=""text"" NAME=""Text1"" SIZE=""30"">" & vbCrlf) Response.Write("<P>Titol i Text 5:<br>" & vbCrlf) Response.Write("<INPUT TYPE=""text"" NAME=""Titol2"" SIZE=""30"">" & vbCrlf) Response.Write("<INPUT TYPE=""text"" NAME=""Text2"" SIZE=""30"">" & vbCrlf) Response.Write("<P>Titol i Text 4:<br>" & vbCrlf) Response.Write("<INPUT TYPE=""text"" NAME=""Titol3"" SIZE=""30"">" & vbCrlf) Response.Write("<INPUT TYPE=""text"" NAME=""Text3"" SIZE=""30"">" & vbCrlf) Response.Write("<P>Titol i Text 3:<br>" & vbCrlf) Response.Write("<INPUT TYPE=""text"" NAME=""Titol4"" SIZE=""30"">" & vbCrlf) Response.Write("<INPUT TYPE=""text"" NAME=""Text4"" SIZE=""30"">" & vbCrlf) Response.Write("<P>Titol i Text 2:<br>" & vbCrlf) Response.Write("<INPUT TYPE=""text"" NAME=""Titol5"" SIZE=""30"">" & vbCrlf) Response.Write("<INPUT TYPE=""text"" NAME=""Text5"" SIZE=""30"">" & vbCrlf) Response.Write("<P>Titol i Text 1:<br>" & vbCrlf) Response.Write("<INPUT TYPE=""text"" NAME=""Titol6"" SIZE=""30"">" & vbCrlf) Response.Write("<INPUT TYPE=""text"" NAME=""Text6"" SIZE=""30"">" & vbCrlf) Response.Write("<INPUT TYPE=""submit"" VALUE=""Guardar"">" & vbCrlf) Response.Write("</FORM>") End Sub 'Formulario '=========================================== Sub PintarTabla () 'Utiliza el objeto rs abierto 'para pintar la tabla 'La primera fila la escribo directamente, con 'los nombres de los campos Response.Write( "<TABLE BORDER=""1"">" & vbCrlf) Response.Write( "<TR>" & vbCrlf) Response.Write( "<TD><B>Id</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Data</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Titol1</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Text1</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Titol2</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Text2</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Titol3</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Text3</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Titol4</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Text4</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Titol5</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Text5</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Titol6</B></TD>" & vbCrlf ) Response.Write( "<TD><B>Text6</B></TD>" & vbCrlf ) 'Hasta que llegue al final del recordset... while not rs.EOF 'Imprimo una fila de la tabla 'para cada registro que encuentre Response.Write( "<TR>" & vbCrlf ) Response.Write( "<TD>" & rs.Fields("Id") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Dia") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Titol1") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Text1") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Titol2") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Text2") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Titol3") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Text3") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Titol4") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Text4") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Titol5") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Text5") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Titol6") & "</TD>" ) Response.Write( "<TD>" & rs.Fields("Text6") & "</TD>" ) Response.Write( "</TR>" & vbCrlf ) 'MUY IMPORTANTE!!!!! 'Pasamos al siguiente registro rs.MoveNext 'Olvidarte esto significa que vas a imprimir 'siempre el mismo registro... Un bucle infinito! wend 'Cierro la tabla Response.Write("</TABLE>") End Sub 'PintarTabla '=========================================== Sub Mantenimiento 'Para mantener la tabla en un tamaño manejable... rs.Open SQL, oConn, 1, 2 'RecordCount me devuelve el nº de registros iCuantos = rs.RecordCount 'Si tengo más de 7, voy borrando... while iCuantos > 7 rs.MoveFirst rs.Delete rs.Update iCuantos = iCuantos - 1 wend 'Ahora si, cierro el Recordset rs.Close End Sub %>
GRACIAS.