|
[ Codigo Fuente ]
Pues aqui lo tienen, la verdad es sencillo de utilizar e implementar, en esta
ocacion vamos a usar una base de datos llamada base.mdb con la siguiente tabla:
Ventas
______ __________
Id Auto
Nombre Texto
Total Numerico
Nuevo booleano (Si/No)
Ahora en una pagina vamos a manejar dos formularios, el primero va a ser para
dar de alta registros y el segundo nos va a servir desplegar los datos ya existentes
y hacer un manejo sencillo de los mismos,como son el borrado y cambio de estatus
que seran nuevo y viejo.
El primer formulario seria como este:
<form name="altas" method=post action="altas.asp">
<table width="40%">
<tr>
<td>Nombre:</td>
<td><input type="text" name="txtNombre" maxlength="50"></td>
</tr>
<tr>
<td>Total:</td>
<td><input type="text" name="numTotal" maxlength="50"></td>
</tr>
</table>
<input type="hidden" name="Nuevo" value="true">
<input type=submit name="Enviar" value="Enviar">
<input type=reset name="Borrar" value="Borrar">
</form>
Y el segundo lleva unos checkboxes y los datos de los registros. Si bien, debemos
saber que para manejar checkboxes dentro de un formulario estos deben tener
el mismo nombre así que no habrá problema al desplegar nuestros
registros. Aqui tienen el codigo de este formulario:
<form name="acciones" method=post action="ComoHotmail2.asp">
<input type=submit name="b1" value="Borrar">
<input type=submit name="b2" value="Viejo">
<input type=submit name="b3" value="Nuevo">
<p></p>
<table bgColor= #000000 width="40%">
<tr bgColor= #FFFF99>
<th>Sel.</th>
<th>Nombre</th>
<th>Total</th>
</tr>
<%
set Con = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.Recordset")
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("base.mdb")
txtSql ="SELECT * FROM Ventas order by Nuevo, Nombre"
Set Rs=Con.Execute(txtSql)
Do While Not Rs.EOF
'aqui manejamos los colores de la tabla, para saber
'cuales son los nuevos y viejos, nuevos es azul obscuro
If Rs("Nuevo") = true then
color = "#99CCFF"
Else
color = "#CCFFFF"
End if
%>
<tr bgColor= <%= color %> >
<td align="center">
<input type="checkbox" name="Id" value="<%=Rs("Id")%>">
</td>
<td>
<%=Rs("Nombre")%>
</td>
<td align="center">
<%=Rs("Total")%>
</td>
</tr>
<%
Rs.MoveNext
Loop
%>
</table>
</form>
Este codigo no tiene ninguna diferencia con lo ya conocido, pero vale la pena
resaltar la siguiente linea:
<input type="checkbox" name="Id" value="<%=Rs("Id")%>">
Aqui lo que estamos haciendo es crear un checkbox con el Nombre Id y el valor
va a ser dinamico, o sea que dependera del valor Id de nuestra base de datos.
El codigo de la pagina altas.asp es este:
<%
varNombre = request.form("txtNombre")
varTotal = Request.Form("numTotal")
varNuevo = Request.Form("Nuevo")
' Creamos la conexión a la base de datos sin DSN
set con = Server.CreateObject("ADODB.Connection")
strcon = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("base.mdb")
con.Open strcon
set rs = CreateObject("ADODB.RecordSet")
' Actualiza la tabla
txtSql = "Select * FROM Ventas"
rs.Open txtSql,con,3,3
rs.AddNew
rs("Nombre") = varNombre
rs("Total") = varTotal
rs("Nuevo") = varNuevo
rs.update
%>
<body>
<script LANGUAGE="JavaScript">
var pagina="ComoHotmail.asp"
function redireccionar()
{
location.href=pagina
}
setTimeout ("redireccionar()", 1500);
</script>
<h3><b>Alta exitosa!!!</b></h3>
</body>
Aqui estamos agregando un nuevo registro a la base de datos, de forma sencilla
y el script que se incluye es nadamas para que el usuario sepa que ya se actualizo
el registro, y despues se redirecciona hacia la que seria nuestra pagina principal,
en nuestro caso ComoHotmail.asp.
Bueno, creo que hasta aqui todo va bien, ahora veamos cual es el codigo de
ComoHotmail2.asp
<%
set Con = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.Recordset")
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("base.mdb")
boton = Request.form("b1")
boton = boton & Request.form("b2")
boton = boton & Request.form("b3")
Select Case (boton)
Case "Borrar":
txtSql="Delete * From Ventas Where Id In("&Request.Form("Id")&")"
Set Rs=Con.Execute(txtSql)
Mensaje = "Se borraron los registros"
Case "Nuevo":
txtSql="Update Ventas Set Nuevo = true Where Id In("&Request.Form("Id")&")"
Set Rs=Con.Execute(txtSql)
Mensaje = "Se marcaron los registros como nuevos"
Case "Viejo":
txtSql="Update Ventas Set Nuevo = false Where Id In("&Request.Form("Id")&")"
Set Rs=Con.Execute(txtSql)
Mensaje = "Se marcaron los registros como viejos"
End Select
%>
<body>
<script LANGUAGE="JavaScript">
var pagina="ComoHotmail.asp"
function redireccionar()
{
location.href=pagina
}
setTimeout ("redireccionar()", 0);
</script>
<h3>Operacion realizada con exito !!!</h3>21
<%= Mensaje%>
</body>
Bien, tal vez me complique un poco la existencia, pero voy a decirles el porque
de tanto rollo en esta pagina, primero tenemos que saber que boton fue el que
pulsaron en el formulario, y por eso el Request.Form("b1"), etc. ya
que sabemos cual fue, pues tomamos la desicion de cual es la accion a seguir
y lo manejamos con un Select Case y dentro de cada uno se realiza ya sea el
borrado del registro o su cambio de estatus.
Ahora, en caso de que el usuario haya marcado los checkbox 1, 3 y 5 el Request.Form("Id")
trae los valores asi 1, 3, 5 lo cual generaría una consulta:
Delete * From Ventas Where Id In(1,3, 5)
y esto elimina en un solo paso los registros que su Id sea 1, 3 y 5.
Recuerden que antes de que se puedan mostrar datos, debemos incluir registros
a nuestra base. Como siempre espero que este ejemplo les sea de utilidad y si
tienen algun comentario pueden ponerlo en alguno de los foros que ya lo estaremos
leyendo y a nosotros nos sirve de retroalimentacion para saber en que debemos
pulirnos mas.
[ Codigo Fuente ]
|