Imparare il VBScrispt: creare e gestire una rubrica con Access - Parte 2
Alla fine del precedente articolo avevamo visto come creare una piccola rubrica, che consisteva in una tabella di un database di Access, in cui salvare i nostri contatti attraverso una pagina in formato .asp scritta con VBScript.
In questa seconda parte vediamo come modificare ed eliminare i dati inseriti in precedenza (metti caso che le nostre amiche in rubrica cambino numero di telefono, bisogna sempre essere aggiornati!!)
Quello che andremo a creare prende il
nome di pagina parametrica: ogni volta
che io salvo un record in un database viene creato un ID
univoco.
Quando desidero modificare o cancellare un record devo
specificare alla pagina che contiene il codice di quale
record sto parlando.
Dalla nostra pagina creata in precedenza
(di cui trovi il codice nel precedente articolo) andiamo
ad aggiungere un collegamento ipertestuale sulle due
icone che ho creato nell'elenco sotto le voci
Mod. e Canc.
Dopo aver creato il collegamento alle pagine di
modifica e cancellazione (troverai il codice sotto)
andiamo a selezionare la voce Parametri
Questa schermata puo' variare a seconda dell'editor che usate per le pagine web, ma l'impostazione dovrebbe essere pressoche' identica.
Dopo aver cliccato su Parametri scegliamo la voce Aggiungi e ci troveremo in una finestra come questa:
Ora nel campo Nome andremo a
stabilire il nome che vogliamo dare al parametro che
verra' passato ad un'altra pagina .asp ed il suo
contenuto.
Abbiamo detto prima che la pagina che esegue il codice
di cancellazione o modifica deve sapere su quale record
operare: il valore del nostro parametro sara' quindi il
campo che contiene l'ID della nostra tabella in
cui salviamo i dati (come si puo' vedere in questo caso,
il nome del campo che ho dato alla mia tabella e'
semplicemente ID. Ovviamente ognuno puo' chiamarlo in
modo differente, basta poi scrivere il nome corretto nel
campo Valore.)
A questo punto clicchiamo si OK una prima volta e poi successivamente ancora su OK per chiudere la finestra.
Eseguiamo questa operazione sia sull'icona di modifica che su quella di eliminazione.
Questo e' il codice della pagina di Eliminazione:
<%
Dim ado_OpenKeyset
Dim ado_LockOptimistic
ado_OpenKeyset=1
ado_LockOptimistic=3
Chiave=request("ID")
strConnect="provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=E:\WWW\matteosiviero\Access\Rubrica.mdb"
strSQL="SELECT * FROM Dati
WHERE (ID =" & Chiave & ")"
Set rst=server.createobject("ADODB.RECORDSET")
rst.open strSQL, strConnect,
ado_OpenKeyset,ado_LockOptimistic
Do While Not rst.EOF
rst.delete
rst.MoveNext
Loop
rst.close
Response.Redirect "Rubrica.asp"
%>
Come evidenziato in rosso, dapprima imposta una variabile Chiave che legge il valore passato dalla pagina di elenco dei contatti (tra virgolette va messo il nome che abbiamo dato prima al parametro) e poi seleziono dalla tabella Dati il record in cui il campo ID e' uguale alla variabile Chiave.
Cancello il record e ritorno alla pagina di elenco.
Questo invece il codice per la modifca dei dati: prima e' riportato il codice in della pagina che mostra i dati da modificare e poi il codice VBScript che esegue la modifica.
<%
Dim ado_OpenKeyset
Dim ado_LockOptimistic
ado_OpenKeyset=1
ado_LockOptimistic=3
Chiave=request("ID")
strConnect="provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=E:\WWW\matteosiviero\Access\Rubrica.mdb"
strSQL="SELECT * FROM Dati WHERE (ID =" & Chiave & ")"
Set rst=server.createobject("ADODB.RECORDSET")
rst.open strSQL, strConnect,
ado_OpenKeyset,ado_LockOptimistic
Nome=rst("Nome")
Cognome=rst("Cognome")
Telefono=rst("Telefono")
Email=rst("Email")
rst.close
%>
<html>
<head>
<title>Modifica Contatto</title>
</head>
<body topmargin="0" leftmargin="0">
<div align="center">
<center>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=1000
height="1">
<TR>
<TD height="1" width="948">
</TD>
</TR>
<TR>
<TD height="1" width="948">
<p align="center"><b><font face="Verdana" size="5">La
mia rubrica</font></b><p align="center"> </TD>
</TR>
<TR>
<TD height="1" width="948">
</TD>
</TR>
<TR>
<TD height="4" width="100%" bgcolor="#FFFFFF">
<form
action="Modifica_Salva.asp" method="post" name="modulo"
>
<div align="center">
<table border="0">
<tr>
<td width="25%" bgcolor="#F0F0F0"><b><font
face="Verdana" size="2">
Nome</font></b></td>
<td width="75%" bgcolor="#F0F0F0">
<font face="Verdana">
<input type="text"
name="Nome" size="50" value="<%=Nome%>"></font></td>
</tr>
<tr>
<td width="25%" bgcolor="#F0F0F0"><b><font
face="Verdana" size="2">
Cognome</font></b></td>
<td width="75%" bgcolor="#F0F0F0">
<font face="Verdana">
<input type="text"
name="Cognome" size="50"
value="<%=Cognome%>"></font></td>
</tr>
<tr>
<td width="25%" bgcolor="#F0F0F0"><b><font
face="Verdana" size="2">
Telefono</font></b></td>
<td width="75%" bgcolor="#F0F0F0">
<font face="Verdana">
<input type="text"
name="Telefono" size="50"
value="<%=Telefono%>"></font></td>
</tr>
<tr>
<td width="25%" bgcolor="#F0F0F0"><b><font
face="Verdana" size="2">
Email</font></b></td>
<td width="75%" bgcolor="#F0F0F0">
<font face="Verdana">
<input type="text"
name="Email" size="50" value="<%=Email%>"></font></td>
</tr>
<tr>
<td width="100%" colspan="2"
bgcolor="#F0F0F0"> </td>
</tr>
<tr>
<td width="100%" colspan="2" bgcolor="#0000FF">
<p align="center">
<input type="image" value="Salva" name="cmdOK0"
src="Salva_3.jpg" width="80" height="24"><font
face="Verdana"><input type="hidden" name="ID" size="50"
value="<%=Chiave%>"></font></td>
</tr>
</table>
</div>
</form>
<p align="center">
<div align="center">
</p>
<p>
</form><a href="Rubrica.asp">
<img border="0" src="Ritorna_0.jpg" width="80"
height="24"></a></TD>
</TR>
</TABLE>
<p> </p>
</center>
</div>
</body>
</html>
Come prima, in rosso, il codice leggere il parametro e leggere il record. Assegna il valore del campo a 4 variabili.
In verde viene evidenziato che il campo
assume il valore delle variabili dichiarate prima.
Da notare che il campo chiamato ID ha
la proprieta' input type=hidden:
in pratica e' un campo che esiste ma non e' visibile.
Infine in nero dichiaro che i dati contenuti nei campi saranno passato con il metodo post action ad una pagina chiamata Modifica_Salva (per capire meglio guarda l'articolo precedente).
Questo il codice della pagina di salvataggio:
<%
Dim ado_OpenKeyset
Dim ado_LockOptimistic
ado_OpenKeyset=1
ado_LockOptimistic=3
Nome=request.form("Nome"):if Nome="" then
response.redirect "Rubrica.asp"
Cognome=request.form("Cognome"):if Cognome="" then
response.redirect "Rubrica.asp"
Email=request.form("Email"):if Email="" then
response.redirect "Rubrica.asp"
Telefono=request.form("Telefono"):if Telefono="" then
response.redirect "Rubrica.asp"
Chiave=request.form("ID")
strConnect="provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=E:\WWW\matteosiviero\Access\Rubrica.mdb"
strSQL="SELECT * FROM Dati WHERE (ID =" & Chiave & ")"
Set rst=server.createobject("ADODB.RECORDSET")
rst.open strSQL, strConnect,
ado_OpenKeyset,ado_LockOptimistic
rst("Nome")=Nome
rst("Cognome")=Cognome
rst("Email")=Email
rst("Telefono")=Telefono
rst.update
rst.close
response.redirect "Rubrica.asp"
%>
Il ragionamento fatto e' lo stesso per la pagina di cancellazione.
Vi ricordo che per creare una pagina in formato .asp basta aprire un editor di testo (il comune blocco note) e salvare in file aggiungendo .asp al nome (Es: Pagina_Modifica.asp)
Oppure se volete
cliccate
qui e provate voi stessi ad inserire, modificare e
cancellare i dati.
Potete anche scaricare il database in formato .zip per
verificare che i dati compaiano realmente.
Buon lavoro e a presto per un altro turorial.