Che materia stai cercando?

Anteprima

ESTRATTO DOCUMENTO

ISTUZIONI 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 rest 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 TextBox. Detta espressione

la stringa da cui ricavare il numero, la sintassi da utilizzare sarà

Val (espressione)

Funzione Str()

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ù

-5-

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 sintassi

Testo0 = Now

Per estrapolare anno, mese e giorno dalla data è possibile usare le funzioni Year(), Month() e Day().

In questo modo il comando

Testo0 = Year(Date)

visualizzerà nella casella di testo soltanto l’anno della data corrente, per visualizzare il mese, in

formato numerico, scriveremo

Testo0 = Month(Date)

e, infine, per il giorno

Testo0 = 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 scrivere

Testo0 = 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 po’ complessa, ha la seguente sintassi

DateDiff(intervallo, datapartenza, dataarrivo)

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

2 . Al posto di intervallo, va inserito il parametro che individua il valore in cui si vuole esprimere

loro

la differenza, secondo la seguente tabella

se vogliamo che la differenza sia espressa in anni

"yyyy" in mesi

"m" 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

scrivere è analogo

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

2 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 3

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 sia rec il recordset all’interno del quale ci si

voglia muovere.

Per posizionarsi sul primo record della tabella, il comando da utilizzare è

rec.MoveFirst

Qualora, invece, occorra necessario collocarsi sull’ultimo record, basta scrivere

rec.MoveLast

Invece, per posizionarsi sul record successivo a quello in cui si è attualmente, il comando da

utilizzare sarà

rec.MoveNext

mentre, per andare al precedente, bisogna inserire

rec.MovePrevious

Inserimento di un record

Inserire un nuovo record in una tabella è una procedura molto semplice in VBA. Anche in questo

caso si suppone che sia rec il recordset nel quale andare a scrivere. Il comando per iniziare la

procedura di inserimento è:

rec.AddNew

tale comando deve essere seguito dal valore da assegnare ai diversi campi. Per puntare ad uno

specifico campo della tabella, occorre usare l’operatore !, come di seguito illustrato, e continuare

con la normale procedura di assegnazione

rec!nomecampo = valoredaassegnare

3 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 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. Ad esempio, per visualizzare il messaggio Hello world! la

sintassi da utilizzare sarà la seguente:

MsgBox "Hello world!"

È possibile far seguire al messaggio standard alcuni valori o parametri contenuti in variabili o in

caselle di testo. Per farlo occorre concatenare la stringa inserita tra i doppi apici con la variabile (o il

valore della casella di testo) tramite l’operatore & (“e” commerciale). A titolo esemplificativo,

supponiamo di voler creare una finestra di dialogo che saluti l’utente, il quale ha inserito il suo

nome in una casella di testo. Sia Testo0 la casella in cui viene inserito il nome del soggetto, Pippo, e,

se vogliamo che, premendo il nostro pulsante, si debba visualizzare il messaggio Ciao Pippo, il

codice da inserire sarà

MsgBox "Ciao " & Testo0.Value

Si noti che dopo il messaggio Ciao e prima della chiusura dei doppi apici è stato lasciato uno spazio

per evitare che il nome venga attaccato alla stringa. Se volessimo, alla fine, inserire un punto

-8-

esclamativo perché il messaggio diventi Ciao Pippo! dovremo concatenare, mediante &, una stringa

contenente solo il punto esclamativo, in questo modo

MsgBox "Ciao " & Testo0.Value & "!"

Richiesta di inserimento parametri (funzione InputBox)

La funzione InputBox consente di richiedere all’utente un parametro da inserire per continuare

l’esecuzione di un comando, visualizzando una finestra di dialogo con il messaggio voluto ed una

casella su cui scrivere il valore del parametro richiesto. La sintassi da utilizzare è

InputBox("messaggio da visualizzare")

Il dato immesso potrà essere assegnato ad una variabile ed utilizzato in seguito. Supponiamo, ad

esempio, di voler ripetere l’esercizio precedente di creazione di una finestra di dialogo che saluti

l’utente con l’immissione dinamica del nome e non mediante casella di testo. Il codice da eseguire

sarà Dim nome As String

nome = InputBox("Inserisci il tuo nome")

MsgBox "Ciao " & nome & "!"

Il programma visualizzerà prima una finestra su cui inserire il nome e, subito dopo, il messaggio di

saluto.

Interrogazione (istruzione If ...Then ... Else ...)

Le interrogazioni consentono di eseguire uno specifico comando o un blocco di istruzione in base al

verificarsi di determinate condizioni. La sintassi dell’istruzione, con ovvio significato delle stringhe

in corsivo, sarà

If condizione Then

istruzioni

End If

La sequenza di codice, semplificativamente simboleggiata con “istruzioni”, verrà eseguita solo nel

caso in cui la “condizione” risulti verificata. È chiaramente possibile richiedere che si verifichino

più eventi come condizioni, separando le diverse condizioni mediante l’opportuno operatore logico

(And ovvero Or). Si riporta, a titolo di esempio, un codice con due istruzioni separate dall’operatore

Or: al verificarsi di anche una sola delle due verrà eseguita la sequenza di istruzioni all’interno del

blocco If

If condizione1 Or condizione2 Then

istruzioni

End If

È ancora possibile inserire un blocco di istruzioni che verrà eseguito qualora non vengano verificate

le condizioni richieste. Andando a modificare ulteriormente il nostro codice d’esempio, inseriremo

una sequenza di codice “istruzioni2” che verrà mandata in esecuzione qualora entrambe le

condizioni risultassero negate

If condizione1 Or condizione2 Then

istruzioni1 -9-

Else

istruzioni2

End If

L’Else usato può anche effettuare una ulteriore verifica, ovvero: se le condizioni iniziali non fossero

verificate è possibile effettuare altre interrogazioni ed eseguire una o un’altra sequenza di istuzioni

qualora queste fossero o meno verificate. Per farlo basta inserire un ElseIf, seguito dalle nuove

condizioni. Vediamo anzitutto come si presenterebbe il codice

If condizione1 Then

istruzioni1

ElseIf condizione2 Then

istruzioni2

Else

istruzioni3

End If

In questo caso, qualora la “condizione1” fosse verificato, il calcolatore eseguirebbe il blocco

“istruzioni1”, altrimenti effettuerebbe un ulteriore controllo su “condizione2” che, se vera,

comporterà l’esecuzione di “istruzioni2” altrimenti, se falsa, di “istruzioni3”.

Proviamo ad utilizzare questa struttura per svolgere un esempio. Supponiamo di dover confrontare

due numeri, A e B, contenuti nelle caselle di testo di una maschera, chiamate a e b. Per farlo

assoceremo all’apposito pulsante di comando il seguente codice che, tramite una finestra di dialogo,

visualizzerà il risultato del confronto.

If a.Value > b.Value Then

MsgBox "A è maggiore di B"

ElseIf a.Value < b.Value Then

MsgBox "A è minore di B"

Else

MsgBox "A è uguale a B"

End If

Ciclo Do Until

Il ciclo Do Until ripete una sequenza di istruzioni fin quando non una determinata condizione

specificata non assume valore True. Per chiudere il ciclo si utilizza il comando Loop. La sintassi da

utilizzare sarà quindi

Do Until condizione

istruzioni

Loop

Si usa, in genere, per scorrere le tabelle, imponendo come condizione da verificarsi la fine della

tabella (vedi proprietà EOF). Supponiamo di voler ricercare, all’interno della tabella anagrafica un

numero di telefono (da visualizzare nella casella di testo Testo4), inserendo come parametri di

- 10 -


ACQUISTATO

1 volte

PAGINE

15

PESO

1.01 MB

PUBBLICATO

+1 anno fa


DETTAGLI
Corso di laurea: Corso di laurea in ingegneria gestionale
SSD:
Università: Catania - Unict
A.A.: 2007-2008

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à Catania - Unict o del prof Carchiolo Vincenza.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!