Anteprima
Vedrai una selezione di 4 pagine su 15
Sistemi di elaborazione - programmazione in Access, VBA Pag. 1 Sistemi di elaborazione - programmazione in Access, VBA Pag. 2
Anteprima di 4 pagg. su 15.
Scarica il documento per vederlo tutto.
Sistemi di elaborazione - programmazione in Access, VBA Pag. 6
Anteprima di 4 pagg. su 15.
Scarica il documento per vederlo tutto.
Sistemi di elaborazione - programmazione in Access, VBA Pag. 11
1 su 15
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

CREAZIONE DI ROUTINE

Associazione di un evento ad un pulsante

Per fare in modo che, premendo un pulsante in una maschera di Access, si esegua un determinato codice bisogna associare l'evento che si vuole eseguire al pulsante stesso. Per farlo occorre anzitutto creare una maschera in Access in modalità struttura ed inserirvi un pulsante di comando, Comando0. A questo punto, cliccando con il tasto destro del mouse sul pulsante, se ne visualizzino le proprietà e ci si posizioni sul folder Evento. Da qui, collocandosi sul campo dell'opzione Su clic, appare un piccolo tasto con dei puntini di sospensione. Si clicchi tale pulsante e si acceda al generatore di codice, selezionando tale dicitura nella successiva finestra di dialogo e dando l'Ok. Tale procedura ha aperto l'editor di Microsoft Visual Basic, all'interno del quale verrà inserito il codice, tra la riga Private Sub Comando0_Click() e la riga End Sub.

Connessione al database (metodologia ADO)

Per

realizzare una connessione con il database bisogna dichiarare una variabile con cui esso verrà identificato e quindi associare alla stessa il database in cui si sta correntemente lavorando. Per farlo basta inserire le seguenti righe di codice all'inizio di una routine: ```html

Dim db As ADODB.Connection

Set db = CurrentProject.Connection()

``` Apertura e chiusura del recordset (metodologia ADO) Analogamente a quanto visto per il database, occorre dichiarare ed inizializzare una variabile che rappresenterà la tabella su cui si intende lavorare, impostare la modalità di apertura in lettura e scrittura e quindi aprire la tabella stessa. Il codice che svolge tali operazioni è: ```html

Dim rec As ADODB.Recordset

Set rec = New ADODB.Recordset

rec.LockType = adLockOptimistic

rec.Open "nometabella", db

``` Si sostituisca a "nometabella" il nome con cui è stata salvata la tabella in questione. La variabile "db" posta in seguito al nome del recordset è quella precedentemente

dichiarata nella connessione al database e rappresenta, appunto, il database da cui prelevare la tabella. Alla fine della routine è opportuno chiudere la tabella precedentemente aperta con il comando rec.Close

Si fa presente che, qualora si abbia necessità di lavorare con più tabelle, i comandi qui riportati dovranno essere ripetuti, modificando, ovviamente, i nomi delle variabili.

Tutti gli esempi riportati in seguito si intendono come righe di codice eseguite al clic su un pulsante, e quindi inserite all'interno delle istruzioni come specificato in questo paragrafo.

Private Sub Comando0_Click()
e End Sub

ISTRUZIONI DI FREQUENTE UTILIZZO

Funzione IsNull()
La funzione IsNull() verifica se un'espressione (sia essa una casella di testo, una variabile, etc.) contiene un valore nullo e restituisce True nel caso in cui l'espressione passata come parametro sia un riferimento ad un valore Null, ovvero non valido, in caso alternativo restituisce False.

La sintassi da utilizzare è IsNull(espressione). La funzione IsEmpty() verifica se un'espressione è vuota o, nel caso sia una variabile, non sia stata inizializzata. Anche in questo caso, la funzione restituirà True o False. La sintassi, analoga alla funzione precedente, sarà IsEmpty(espressione). Si faccia attenzione a non confondere i significati di Null e di Empty.

La funzione IsNumeric() verifica se un'espressione contiene al suo interno validi dati numerici. Se ciò si verifica, essa restituirà True, in caso contrario False. La sintassi, analoga alla funzione precedente, sarà IsNumeric(espressione).

La funzione Val() riceve in ingresso una stringa e restituisce in output il valore numerico da essa rappresentato. L'uso di tale funzione è utile quando si deve confrontare il valore del campo di una tabella (definito numerico) con un numero inserito, ad esempio, in una TextBox.

Detta espressione la stringa da cui ricavare il numero, la sintassi da utilizzare sarà Val (espressione).

La funzione Str() riceve in ingresso un valore numerico e restituisce in output la sequenza di caratteri (stringa) che esso rappresenta. L'uso di tale funzione è utile quando si deve concatenare una stringa SQL con dei valori acquisiti da ComboBox o elenchi. Detta espressione il valore da cui ricavare la stringa, la sintassi è Str (espressione).

Funzioni sulla data

Per gestire le date, sono disponibili alcune funzioni che permettono di ricavare automaticamente caratteristiche legate alla data corrente per potervi successivamente lavorare. La funzione più comune è il comando Date, che restituisce il valore della data corrente. Se, ad esempio, su una casella di testo Testo0 volessimo visualizzare la data odierna, basterà scrivere Testo0 = Date.

Invece, qualora fosse necessario visualizzare data ed ora corrente, utilizzeremo la funzione...

Now, con analoga sintassiTesto0 = NowPer estrapolare anno, mese e giorno dalla data è possibile usare le funzioni Year(), Month() e Day().

In questo modo il comandoTesto0 = Year(Date) visualizzerà nella casella di testo soltanto l'anno della data corrente, per visualizzare il mese, informato numerico, scriveremoTesto0 = Month(Date) e, infine, per il giornoTesto0 = Day(Date)

Qualora ci servisse andare indietro dalla data corrente, basterà sottrarre i giorni di differenza alla funzione Date. Ad esempio, se volessimo ottenere nella nostra TextBox la data di esattamente 10 giorni fa dovremo scrivereTesto0 = Date - 10

Ovviamente, per andare indietro di un mese basterà sottrarre 30, per un anno 365. Tale proprietà è utile per effettuare particolari ricerche su campi di tipo Data/ora.

Un'ultima interessante funzione relativa alla gestione delle date è DateDiff(). Tale comando restituisce la differenza tra due date. L'istruzione, un

La funzione complessa ha la seguente sintassi:

DateDiff(intervallo, datapartenza, dataarrivo)

A datapartenza e dataarrivo bisogna sostituire, tra doppi apici, i valori delle date da sottrarre.

Al posto di intervallo, va inserito il parametro che individua il valore in cui si vuole esprimere la differenza, secondo la seguente tabella:

  • se vogliamo che la differenza sia espressa in anni: "yyyy"
  • se vogliamo che la differenza sia espressa in mesi: "m"
  • se vogliamo che la differenza sia espressa in giorni: "d"

Ad esempio, per ottenere nella casella Testo0 la differenza in giorni tra il 21 aprile 1983 ed il 4 novembre 1984, il codice da utilizzare sarà:

Testo0 = DateDiff("d", "21/04/1983", "04/11/1984")

Scoprirò che, tra le due date, c'è una differenza di 536 giorni. Per conoscere la differenza in mesi, il codice sarà:

Testo0 = DateDiff("m", "21/04/1983", "04/11/1984")

In questo modo Testo0 conterrà il valore 19. Perché la differenza sia espressa in anni,

Il comando da descrivere è analogoTesto0 = DateDiff("yyyy", "21/04/1983", "04/11/1984")

Si fa presente che il calcolo sarà fatto sottraendo a dataarrivo il valore di datapartenza. -6- ed il valore ottenuto, ovviamente, sarà 1.

Oggetto DoCmd

Per effettuare alcuni comandi nelle maschere è possibile utilizzare l'oggetto DoCmd. Esso consente, ad esempio, di chiudere una maschera, basta associare ad un suo pulsante il codice DoCmd.Close.

Analogamente, per aprire la Maschera2 tramite un pulsante posto su Maschera1, occorre associare a tale comando il codice DoCmd.OpenForm "Maschera2".

Infine, per eseguire una stringa SQL, definita ed inizializzata stringasql la nostra variabile di tipo String, scriveremo DoCmd.RunSQL stringasql.

Metodi di spostamento tra i record

A volte può rivelarsi necessario spostarsi nei record all'interno di una tabella. Per farlo è possibile usare i comandi di seguito esposti. Si suppone che

valoredaassegnare3 Le tecniche che fanno riferimento a record e recordset sono applicabili soltanto se nel comando è stata fatta l'opportuna connessione al database ed alla tabella. -7-Una volta riempiti tutti i campi necessari, è bene concludere la procedura di inserimento record aggiornando la tabella con il comando rec.Update Modifica di un record La modifica di un record non richiede alcun comando oltre la procedura di assegnazione identica a quella vista sopra, cioè rec!nomecampo = nuovovalore anche questa volta è utile fare seguire la modifica dal comando rec.Update Si osserva che, prima di effettuare la modifica, occorre indispensabilmente selezionare il record da aggiornare, scorrendo la tabella finché non lo si trova. Per tale operazione si rimanda all'esempio sul ciclo Do Until. Proprietà BOF e EOF La proprietà EOF (End Of File) associata ad un recordset restituisce True se si è posizionati su un record successivo

all'ultimo della tabella o se essa è vuota, False se il record selezionato è l'ultimo o uno qualsiasi prima di esso. La sintassi da utilizzare è rec.EOF. Solitamente tale proprietà è utile per concludere dei cicli Do Until, cui si rimanda, in cui si scorrono per intero delle tabelle.

Analogamente il comando BOF (Begin Of File) restituisce True se si è posizionati sul primo record di una tabella o quando essa è vuota. La sintassi è rec.BOF.

Visualizzazione di una finestra di dialogo (funzione MsgBox)

Una finestra di dialogo consente la visualizzazione temporanea di un messaggio all'utente. Per crearla basta richiamare all'interno del codice la funzione MsgBox, seguita dal messaggio da visualizzare, compreso tra i doppi apici.

Dettagli
Publisher
A.A. 2006-2007
15 pagine
3 download
SSD Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher trick-master di informazioni apprese con la frequenza delle lezioni di sistemi di elaborazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Catania o del prof Carchiolo Vincenza.