Università degli studi di Catania
Facoltà di ingegneria
Corso di sistemi di elaborazione
A.A. 2006/07 Dispensa di programmazione in VBA per Access
Ing. M. Vaccalluzzo
Variabili ed operatori
Le variabili
Le variabili sono degli spazi di memoria che vengono utilizzate all'interno di una subroutine per la memorizzazione di dati che possono essere modificati durante l'esecuzione di un programma. Ciascuna variabile è identificata da un nome univoco ed è possibile associare ad essa la tipologia del dato che dovrà contenere. Una variabile assumerà valore Empty qualora ad essa non sia stato assegnato alcun valore iniziale. Ciò vale a dire che, nel caso si operi con una variabile testuale, essa contiene una stringa di lunghezza 0 (""), mentre se la variabile è di tipo numerico essa varrà 0. Il valore Null, invece, viene assunto qualora venga assegnato alla variabile un dato non valido.
Tipologie di dati di uso comune
| Nome | Valori |
|---|---|
| Boolean | True (-1) oppure False (0) |
| Integer | Numeri interi da -32.768 a 32.767 |
| Long | Numeri interi da -2.147.483.648 a 2.147.483.647 |
| Double | Numeri a virgola mobile con precisione doppia da -1,79769313486231×10-308 a -4,94065645841247×10-324 per valori negativi; da 4,94065645841247×10-324 a 1,79769313486232×10308 per valori positivi. |
| Date | Data compresa tra il 01 gennaio 100 e il 31 dicembre 9999 |
| String | Dati testuali |
| Variant | Particolare tipo di dati che può essere utilizzato per caratteri numerici, testuali e date |
Operatori aritmetici
| Operatore | Descrizione | Sintassi |
|---|---|---|
| + | Effettua la somma tra due numeri | somma = num1 + num2 |
| - | Effettua la sottrazione tra due numeri | diff = num1 – num2 |
| * | Restituisce il prodotto di due numeri | prod = num1 * num2 |
| / | Divide tra loro due numeri e fornisce un risultato in virgola mobile | quoz = num1 / num2 |
| \ | Restituisce la parte intera della divisione tra due numeri | quoz = num1 \ num2 |
| ^ | Eleva un numero alla potenza espressa da un esponente | risultato = base ^ espon |
Operatori di confronto
| Simbolo | Significato |
|---|---|
| > | Maggiore |
| >= | Maggiore o uguale |
| < | Minore |
| <= | Minore o uguale |
| = | Uguale |
| <> | Diverso |
Operatori logici
| Operatore | Significato |
|---|---|
| And | Effettua la congiunzione logica tra due espressioni (verifica se entrambe le espressioni sono vere) |
| Or | Effettua la separazione logica tra due espressioni (verifica se almeno una delle due è vera) |
| Xor | Effettua un'esclusione logica di due espressioni (verifica se solo una delle espressioni risulta vera) |
Precedenza tra gli operatori
Quando un'espressione contiene varie operazioni, ciascuna parte viene valutata e risolta secondo un ordine prestabilito, definito precedenza tra gli operatori. Se le espressioni includono operatori di diverso tipo, gli operatori aritmetici vengono valutati per primi, seguiti dagli operatori di confronto e infine dagli operatori logici. Per gli operatori di confronto non esiste un ordine di precedenza, ovvero vengono semplicemente valutati da sinistra a destra nell'ordine in cui compaiono. Gli operatori aritmetici vengono valutati in base al seguente ordine di precedenza:
- Elevazione a potenza (^)
- Moltiplicazione e divisione (*, /)
- Divisione intera (\)
- Addizione e sottrazione (+, -)
Per quanto riguarda gli operatori logici, nell'ordine di esecuzione l'And precede l'Or.
Creazione di routine
Associazione di un evento a 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:
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 è:
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.
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)
Funzione IsEmpty()
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.
Funzione IsNumeric()
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)
Funzione Val()
La funzione Val() riceve in ingresso una stringa e restituisce in output il valore numerico da esso 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 Tex.
-
Sistemi elaborazione etivitiy
-
Sistemi operativi - Thread nei sistemi operativi
-
Sistemi operativi
-
Sistemi interattivi