Imparare il VBScrispt: creare e gestire una rubrica con Access - Parte 1
Questo articolo sara' il primo di una serie di tutorial su come usare il VBScript per semplificare la vita con i database.
Sono diversi anni ormai che smanetto con
Access e in tutto questo tempo, oltre ad aver appreso le
potenzialità di questo strumento, mi sono reso conto che
ormai ad oggi e' diventato "vecchio".
Mi spiego meglio: come avevo accennato in un
altro articolo, ogni volta che
devo usare Access devo accendere il computer e dato che,
magari, non e' nuovissimo devo aspettare che carichi per
iniziare a lavorare.
Sempre magari, sono stati installati nuovi aggiornamenti
della Microsoft che mi creano problemi che prima non
avevo oppure e' uscita la nuova versione di Office che
io, magari, non voglio comprare o semplicemente mi
scoccia imparare ad usare una nuova versione, perche'
ormai sono abituato cosi.
Senza contare il fatto che se il computer
va KO e non ho avuto la lungimiranza di fare copie del
mio lavoro...
E metti caso che i dati di quel database devono essere
visualizzati da un'altra persona, perche' ci stiamo
lavorando insieme, devo perdere tempo a zippare il file
ed a mandare una mail con l'allegato....
... e questa persona a sua volta riceve
la mia mail, ma sta usando il cellulare e deve aspettare
di essere davanti al computer, poi deve aprire la mail e
salvare il file.
E puo' essere che abbia problemi ad aprire l'allegato
oppure che hai una versione vecchia di Access, ti scrive
di rimandare il file in un altro formato e anche oggi il
database si usa domani!!
Sai tutto questo cosa significa? PERDERE TEMPO
E quando devi fare un lavoro non hai voglia di perdere tempo...
Veniamo a noi: quello che propongo in
questo articolo e' un semplice esempio, ovvero
realizzare e gestire una banale rubrica telefonica su un
database di Access.
Solo che gestiremo i nostri dati direttamente da
internet, da una pagina scritta in VBScript!
In questo modo in qualunque momento, da
qualunque dispositivo con una connessione ad
internet, chiunque puo' vedere e modificare i
dati.
Qui ti riporto l'esempio che ho realizzato e sotto il codice commentato.
<%
Dim ado_OpenKeyset
Dim ado_LockOptimistic
ado_OpenKeyset=1
ado_LockOptimistic=3
strConnect="provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=E:\WWW\matteosiviero\Access\Rubrica.mdb"
strSQL="SELECT * FROM Dati ORDER BY Cognome"
Set rst=server.createobject("ADODB.RECORDSET")
rst.open strSQL, strConnect,
ado_OpenKeyset,ado_LockOptimistic
%>
<html>
<head>
<title>Rubrica</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="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"></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"></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"></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"></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"></td>
</tr>
</table>
</div>
</form>
<p align="center">
<div align="center">
<table border = "1" width="100%" cellspacing="0"
cellpadding="0" style="border-collapse: collapse">
<TD bgcolor="#0000FF" valign="top" width="240">
<p align="center"><b><font face="Verdana" size="2"
color="#FFFFFF">Nome</font></b></TD>
<TD bgcolor="#0000FF" valign="top">
<p align="center"><b><font face="Verdana" size="2"
color="#FFFFFF">Cognome</font></b></TD>
<TD bgcolor="#0000FF" valign="top" width="187">
<p align="center"><b><font face="Verdana" size="2"
color="#FFFFFF">Telefono</font></b></TD>
<TD bgcolor="#0000FF" valign="top" width="224">
<p align="center"><b><font face="Verdana" size="2"
color="#FFFFFF">Email</font></b></TD>
<TD bgcolor="#0000FF" align="center" width="50">
<b>
<font face="Verdana" size="2"
color="#FFFFFF">Mod.</font></b></TD>
<TD bgcolor="#0000FF" align="center" width="50">
<b>
<font face="Verdana" size="2"
color="#FFFFFF">Canc.</font></b></TD>
<%
Do While Not rst.EOF
%>
<TR>
<TD valign="top" width="240" align="center"><font
face="Verdana" size="2"><%
= rst("Nome")%></font></TD>
<TD valign="top" align="center"><font face="Verdana"
size="2"><% =
rst("Cognome")%></font></TD>
<TD valign="top" width="187" align="center"><font
face="Verdana" size="2"><%
= rst("Telefono")%></font></TD>
<TD valign="top" width="224" align="center"><font
face="Verdana" size="2"><%
= rst("Email")%></font></TD>
<TD width="50" align="center">
<p align="center">
<img border="0" src="Modifica.gif" width="17"
height="20"></TD>
<TD align="center" width="50">
<img border="0" src="delete.gif" width="16"
height="15"></TD>
<%
rst.MoveNext
Loop
rst.close
%> </TABLE>
</p>
</form></TD>
</TR>
</TABLE>
</center>
</div>
</body>
</html>
Le parti di codice evidenziate in
rosso
sono il VBScript: all'inizio della pagina non faccio
altro che scrivere il percorso del mio database che si
trova sul server ed indicare da quale tabella leggere i
dati (in questo caso la tabella si chiama Dati)
e di ordinare i dati in ordine alfabetico secondo il
campo Cognome.
Poi leggo il database fino alle
fine e scrivo nella mia tabella in html il nome del campo
del database (la sintassi e' <%rst("Nome_del_campo)%>)
dove voglio che venga visualizzato.
La stringa evidenziata in
nero e' molto
importante: in pratica dico alla pagina di passare i
dati inseriti nei campi ad un'altra pagina, che ho
chiamato Salva usando una proprieta'
chiamata post action.
Inoltre il tasto Salva, come
evidenziato nella stringa verde, non deve essere una
semplice immagine ma deve avere le proprieta' che ho
evidenziato affinche' i dati inseriti possano essere
passati all'altra pagina.
<%
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"
strConnect="provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=E:\WWW\matteosiviero\Access\Rubrica.mdb"
strSQL="Dati"
Set rst=server.createobject("ADODB.RECORDSET")
rst.open strSQL,strConnect, 1,3
rst.AddNew
rst("Nome")= Nome
rst("Cognome")= Cognome
rst("Telefono")= Telefono
rst("Email")= Email
rst.update
rst.close
Response.redirect "Rubrica.asp"
%>
Questo e' invece il codice della pagina
Salva: nelle prime righe dico
semplicemente di memorizzare il contenuto che ho letto
dai campi in alcune variabili se trova uno dei campi
vuoto di ritornare alla pagina precedente.
In pratica bisogna inserire per forza un dato nei
quattro campi. Volendo questa scelta puo' essere
modificata, lasciando l'inserimento obbligato solo per
alcuni campi.
Poi come abbiamo visto in precedenza mi
connetto al mio database ed alla tabella in cui voglio
scrivere i dati.
Dico che il nome del mio campo deve essere uguale alla
variabile ( rst("NomeCampo") = Variabile ), dopodiche'
salvo i dati e chiudo la connessione.
Per ultimo vengo indirizzato alla pagina in cui ho
inserito i dati e a questo punto visualizzo i dati che
ho scritto nella tabella sottostante.
Se vuoi replicare questo esempio e
provare a fare qualche variante basta aprire il blocco
note, copiare i codici delle pagine che ti ho riportato
e salvare il file con l'estensione .asp
Poi potrai caricare le pagine ed il database
sul tuo server, controllare che i collegamenti siano
corretti e fare le tue prove.
Assicurati che la cartelle in cui carichi i files ed il
database abbia le prorpieta' sia di scrittura che di
lettura, altrimenti si verificheranno degli errori.
Oppure se vuoi provare per credere clicca qui: inserisci i tuoi dati e poi scaricati il database per controllare tu stesso.
A presto per la seconda parte.