Il 0% ha trovato utile questo documento (0 voti)
1 visualizzazioni23 pagine

Visual Basic

Caricato da

cristian.gioco19
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
1 visualizzazioni23 pagine

Visual Basic

Caricato da

cristian.gioco19
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

Visual Basic

Il Visual Basic (VB) è un linguaggio di programmazione prodotto dalla Microsoft® che utilizza
un’interfaccia di tipo WUI (Windows User Interface) che ha la caratteristica si essere di semplice
impiego e di utilizzare sintassi e funzionalità di facile apprendimento.

Il Visual Basic deriva dal linguaggio Basic sviluppato per il linguaggio operativo DOS ed è stato
modificato per sfruttare la nuova interfaccia utente utilizzata in ambiente window. La versione è più
recente è la versione 6.0
La Microsoft ha sviluppato anche una versione successiva che pur mantenendo le caratteristiche
della versione 6.0 costituisce però un linguaggio a sé stante e fa parte della piattaforma .NET.
Il software è acquistabile separatamente o all’interno del pacchetto Microsoft Visual Studio 6.0.

L'installazione del pacchetto completo o del singolo software è guidata da una procedura
automatica.

Figura 1 – Finestra di presentazione del programma Visual Basic

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
Interfaccia e ambiente di sviluppo
Lanciata l’esecuzione del VB compare la schermata mostrata in figura 1.
L’utente deve scegliere quale tipo di progetto desidera attivare, per default si attiva un file EXE
standard ovvero un classico progetto VB.
Le altre voci, permettono di attivare applicazioni avanzate. Si procede attivando il comando Apri
per creare un nuovo progetto EXE standard.
Si attiva, quindi, a pieno schermo l'interfaccia completa del programma dell'IDE di sviluppo
mostrata nella figura 2.

Figura 2 – Finestra principale

Nella finestra principale viene mostrato il Form della nostra applicazione da implementare.
A sinistra una barra verticale, la barra generale dei comandi e a destra altre tre finestre.
La prima, in alto mostra il prospetto del progetto, contenente gli oggetti utilizzabili nel progetto;
quella centrale mostra le caratteristiche del form (complete di commento esplicativo in italiano); e
quella in basso la posizione del Form sullo schermo.
L’esecuzione del programma si attiva e si arresta attivando la freccia orientata presente nella barra
principale in alto.
Di seguito faremo riferimento ad una semplice applicazione; un programma che acquisisce il valore
di due resistenze e che calcola il valore della loro connessione in serie e in parallelo.

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
I componenti di un modulo VB: Le form e gli oggetti
Qualsiasi applicazione, sia software di sviluppo o applicazione WUI, si basa su un elemento
principale: la Form
La Form è una classica finestra di Windows come quella di Word o di Explorer. Su questa finestra
vengono posizionati gli elementi che consentono la manipolazione dei dati e la realizzazione di
applicazioni basate su Base di Dati (Data Base)

Figura 3 – Barra generale

Gli elementi che desideriamo inserire nel progetto si possono prelevare selezionando l’icona che
caratterizza il comando o il controllo, dalla barra generale (figura 3) a sinistra sullo schermo,
mediante un doppio click del tasto sinistro del mouse o con la tecnica di trascinamento (drag' n'
drop) e, mantenendo il tasto premuto, trascinarlo nella posizione desiderata sul Form.

Proponiamo un breve elenco dei comandi selezionabili di uso più comune:

TextBox permette di inserire una casella di testo per l'inserimento di dati


Label area in cui inserire descrizioni
CommandButton bottone di comando per l'esecuzione di una routine o di uno script VB.

Ciascun elemento viene descritto nella finestra (Finestra delle Proprietà) a destra da proprietà che
possono essere modificate dall’utente (figura 4).

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
Figura 4 – posizionamento degli elementi sul Form

Il nome standard attribuito alla form può essere modificato utilizzando la proprietà Name della
Form, selezionandola e scrivendo una nuova etichetta che richiami la funzionalità dell’applicazione
che si sta implementando, p.e, ‘FormResistenze’. Il primo carattere dopo il suffisso deve essere
maiuscolo. I nomi dovrebbero essere sempre scelti con attenzione, perché in seguito è difficile da
modificare perché è ad esso che tutti i controlli inseriti nella Form fanno riferimento.
La proprietà Caption contiene la scritta che compare sul titolo della Form e quindi caratterizza
l’applicazione che si sta implementando (‘Calcolo Resistenze’).

Iniziamo a sviluppare l’applicazione proposta posizionando sul Form gli elementi necessari: 5
etichette (Label), 2 TextBox e un CommandButton.
I 2 texbotton sono necessari per acquisire i valori delle due resistenze, le etichette per caratterizzare
i dati (Resistenza 1 e Resistenza 2), l’unità di misura (Ohm) e il risultato dell’elaborazione, il
CommandButton per attivare il calcolo dopo l’inserimento dei dati di calcolo.
Nella finestra delle proprietà assegneremo ai vari elementi le seguenti diciture:

TextBox1 (Name: txtRes1, Text: nessun testo)


TextBox1 (Name: txtRes2, Text: nessun testo)
Label1 (Name:lblRes1, Text: Resistenza 1)
Label2 (Name:lblRes2, Text: Resistenza 2)
Label3 (Name:lblUnMis1, Text: ohm)
Label4 (Name:lblUnMis2, Text: ohm)

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
Label5 (Name:lblRisultato, Text: Resistenza serie)
Label6 (Name:lblResPar, Text: nessun testo)
Label7 (Name:lblUnMis3, Text: ohm)
CommandButton (Name:cmdCalcola, Text: Calcola)

La finestra risulta modificata come mostrato nella figura 5.

Figura 5 – Form completo dell’applicazione

Attivando con un click il CommandButton viene eseguito uno script VB si apre una finestra che
contiene già il seguente codice:

Private Sub cmdCalcola_Click();

end Sub

a cui si deve aggiungere il codice che ci permetterà di realizzare la nostra applicazione.


Nel nostro caso: si deve acquisire il valore delle due resistenze, eseguire il calcolo e visualizzare il
risultato.
Come primo esempio applicativo facciamo comparire all’interno del TextBox ciò che viene scritto
alla tastiera.

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
Private Sub cmdCalcola_Click();
if [Link] = ″″ Then
[Link] = ″Inserisci un valore″
Else
[Link] = [Link]
end Sub

Premendo il tasto funzione F5 o il tasto con la freccia play sulla barra principale si attiva il
programma che mostrerà prima la frase:

Inserisci un valore

o il valore digitato (figure 6 e 7).

Figura 6 – Messaggio Inserire un valore

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
Figura 7 – Replica del valore digitato

Il programma viene completato aggiungendo il controllo anche per la seconda finestra di editing. I
valori digitati acquisiti come righe di testo, vengono convertiti in numeri, sommati per calcolare la
resistenza serie equivalente. Il risultato viene convertito da numero a stringa e visualizzato
inserendolo nel campo Caption dell’etichetta lblResPar.
Nella figura 8 viene mostrato il listato del programma sorgente.

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
Figura 8 - Programma sorgente

L’esecuzione del programma genera la finestra mostrata nella figura 9, che evidenzia sia
l’acquisizione dei valori delle due resistenze sia i risultati dell’elaborazione.

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
Figura 9 – Programma Applicativo acquisisce i dati dalle finestre di eding, elabora il calcolo e
visualizza il risultato.

Componenti base del linguaggio

Per poter utilizzare un qualsiasi linguaggio di programmazione bisogna apprendere, per prima cosa
quali sono i suoi elementi fondamentali: variabili, costanti, tipi di dato e operatori.

Le variabili sono aree di memoria virtuali che il programma si riserva nel sistema operativo che lo
esegue. Il contenuto di queste arre può nello svolgimento dell’elaborazione del programma essere
modificato. All’interno del programma ad ogni variabile si attribuisce un’etichetta che la identifica,
la dichiarazione si effettua con la parola chiave Dim.

Le costanti, come le variabili occupano aree virtuali di memoria ma il loro valore attribuito all’atto
della creazione non viene più modificato dall’esecuzione del programma o da eventi esterni. Si
utilizza, per la dichiarazione, la parola chiave Const. Le aree di memoria occupate da una costante
sono inferiori a quelle attribuite ad una variabile, per cui il loro utilizzo rende il programma più
efficiente.

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
Le variabili possono assumere differenti valori e occupare aree di memoria di differente estensione
pertanto è utile definire i tipi di dato in modo tale che l’occupazione di memoria e l’elaborazione
successiva sia più efficiente. I dati possono essere del tipo numerico, stringhe, ….
Il contenuto delle variabili e delle costanti vengono utilizzati dal programma per essere elaborati
mediante operazioni di calcolo o di elaborazione delle stringhe.

L’operazione che deve essere eseguita viene indicata per mezzo di operatori, che sono simboli che
vengono utilizzati per effettuare uguaglianze, operazioni matematiche, implementare condizioni
avanzate, ecc...

Riferendosi al programma di calcolo delle resistenze che stiamo implementando possiamo


aggiungere al programma, facendo un doppio clik sulla Form o attivando sul menu la sequenza
Visualizza/codice le seguenti righe:

Option Explicit
Dim Res1 As Integer
Dim Res2 As Integer

Abbiamo introdotto due variabili Res1 e Res2 come variabili di tipo intero. L’opzione Option
Explicit viene utilizzata da VB per sovraccaricare meno, in fase di localizzazione delle variabili, il
buffer del programma interprete.

Tipo di Campo di Dichiarazione e tipicizzazione Esempio


variabile variazione di una variabile
String Dim testo As String testo = ″Risultato del calcolo″
Integer Dim Res1 As Integer Res1 = 1000
Real Dim Ris As Real Ris = 12.56

Gli operatori utilizzabili sono classificati come:

Operatori di assegnazione = uguale a...


< minore di...
> maggiore di...
<= minore o uguale a...
>= maggiore o uguale a...
<> diverso da...
Operatori matematici + somma
- sottrazione
* moltiplicazione
/ divisione
Operatori di stringa & concatena due stringhe
+ concatena due stringhe (ma è meglio utilizzare &)
Operatori logici AND indica che due condizioni devono essere entrambe vere
OR indica che solo una delle due condizioni deve essere vera

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
Istruzioni condizionali

Anche il VB come tutti i linguaggi di programmazione utilizza strutture di controllo come le


istruzioni condizionali.
Queste istruzioni permettono di alterare la sequenza dell’esecuzione delle istruzioni. Esse
permettono di valutare se permettere, o non permettere, l’esecuzione di certe istruzioni o di
eseguirne altre in alternativa.
La sintassi base dell’istruzione condizionale è la seguente:
If condizione Then
espressione 1
Else
espressione 2
End If
Se la condizione è vera viene eseguita l’espressione 1 altrimenti viene eseguita l’espressione 2

Si veda il seguente esempio.

Si crei un nuovo EXE standard e si assegni alla Form il Name frmVerifRes; si inserisca un
CommandButton e lo si chiami cmdVerifica. Nella parte generale si inserisca il seguente codice:

Option Explicit
Dim Res1 As Integer
Dim Res2 As Integer

e nella Sub il seguente codice:

′Verifica del valore delle resistenze


Private Sub cmdVerifica_Click()
Res1 = 100
Res2 = 100
If Res1 =Res2 Then
[Link] "Le due resistenze sono uguali"
Else
[Link] "Le due resistenze sono diverse"
End If
End Sub

Si esegue il programma premendo F5, al click sul CommandButton sullo schermo compare la frase
“Le due resistenze sono uguali”. La frase inserita all’inizio del codice preceduta da un apice è un
commento. Esso non viene elaborato dall’interprete di VB ma rappresenta un commento utilizzato
dal programmatore per titolare o spiegare l’elaborazione implementata dal programma.

Il comando [Link] lancia il risultato dell'operazione nella Finestra Immediata dell'ambiente


di sviluppo che compare al volo all'esecuzione dello script. È un comando molto utile in fase di
debug dei programmi.
Se la condizione assume un valore numerico è possibile utilizzare un altro costrutto per la
generazione di condizioni, il Select Case.
La sintassi base è la seguente:

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
Select Case condizione
Case 0: espressione 0
Case 1: espressione 1
Case 2: espressione 2
Case Else
tutti gli altri casi
End Select

A seconda del valore assunto dalla condizione viene eseguita una espressione differente. Per i
valori fuori campo di variazione, o non definiti, viene eseguita l’espressione dopo Else.

In molte circostanze istruzioni o gruppi di istruzioni devono essere eseguite più volte per un
numero definito di volte o finché una certa condizione non si sia verificata o se presente non sia più
vera. Queste istruzioni sono dette di iterazione (o cicli).

I costrutti presenti nel linguaggio VB sono:

• For - Next
• For Each - Next
• While
• Do While - Loop

Il ciclo For - Next ripete un'istruzione sulla base di una variabile di tipo Integer che parte da un
valore predefinito, in genere zero (0), e si perpetua fino ad un valore maggiore, ad esempio nove (9)
ripetendo quindi il ciclo da 0 a 9 per un totale di 10 ripetizioni. La sintassi base è la seguente:

For inizio To fine


espressione
Next

Esempio. Uso dell’istruzione di ciclo

Si crei un nuovo EXE standard e si inserisca sulla form un bottone di comando a cui assegnare il
nome cmdExampleFor ed una Label di nome lblTesto.

Nella parte generale del codice inserire il seguente codice:

Option Explicit
Dim i As Integer

Nella Sub, invece, inserire il seguente codice:

Private Sub cmdExampleFor_Click()


i=0
For i = 0 To 9
[Link] = [Link] & i

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
Next
End Sub

Sulla finestra compare la sequenza 0123456789


Se desideriamo invece andare a capo dopo ogni iterazione si deve utilizzare l’elemento vbCrLf.
che rappresenta il ritorno a capo in VB. Se avessimo eseguito solo

[Link] = [Link] & i & vbCrLf

avremmo avuto come risultato

0
1
2
3
4
5
6
7
8
9

Il ciclo For Each - Next si differenzia da For - Next per il motivo che il primo ricerca ogni
occorrenza di un elemento in un elemento madre.
La sintassi base è la seguente:

For Each elemento In elementi


espressione
Next elemento

Il ciclo While esegue un'istruzione (o un'espressione) fin quando una condizione è vera.
La sintassi base è la seguente:
While condizione
espressione
Wend

Il ciclo Do While - Loop esegue un'istruzione (o un'espressione) fin quando una condizione è vera.
La sintassi di base è:

Do While condizione
espressione
Loop

Gli Array

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
Le variabili utilizzate nei programmi possono talvolta essere raggruppate in una variabile speciali
in forma tabellare. Tale agglomerato di dati, statici o dinamici sono definiti Array.

Per esempio possono costituire un Array, i giorni della settimana (lunedì, martedì, …).

La sintassi di base è:

Dim nome_array(numero_elementi)
nome_array(0) = "valore"
nome_array(1) = "valore"
nome_array(2) = "valore"
…….

Esempio: Uso dell’array

Si crei un nuovo EXE standard e si inserisca una Label di nome lblResNorm da ingrandire, ed un
bottone di comando da chiamare cmdResNorm. Si inserisca nella porzione generale il seguente
codice

Option Explicit
Dim ResNormal(12) As String
Dim i As Integer

e nella Sub il seguente codice:

Private Sub cmdArr_Click()


ResNormal(0) = "10 ohm"
ResNormal(1) = "12 ohm"
ResNormal(2) = "15 ohm"
ResNormal(3) = "18 ohm"
ResNormal(4) = "22 ohm"
ResNormal(5) = "27ohm"
ResNormal(6) = "33 ohm"
ResNormal(7) = "39 ohm"
ResNormal(8) = "47 ohm"
ResNormal(9) = "56 ohm"
ResNormal(10) = "68 ohm"
ResNormal(11) = "82 ohm"
i=0
For i = 0 To UBound(ResNormal)
[Link] = [Link] & ResNormal(i) & vbCrLf
Next
End Sub

Il ciclo scorre tutti gli elementi dell’array e li visualizza riga per riga. L’istruzione
Ubound(ResNorm) restituisce il numero di elementi che costituiscono l’array.

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
Funzioni e Sottoprogrammi
Gli elementi fondamentali di un programma sono le funzioni e i sottoprogrammi (subroutine).
Entrambe sono formate da istruzioni (script): le funzioni elaborano le informazioni e restituiscono
un valore, mentre il sottoprogramma è un programma all’interno di un programma.

Il sottoprogramma viene attivato da un evento, mentre la funzione viene richiamata all’interno di un


sottoprogramma quando si verifica una data condizione o se esplicitamente richiamata.

Sia le Funzioni che le Sub possono essere pubbliche o private: pubbliche quando sono visibili a
tutto il programma ed a tutte le Form e generalmente vengono inserite in un modulo di classe
esterno; private quando fanno parte della Form in cui nascono, vivono e muoiono.

Le parole chiave Public e Private permettono di definire a quale tipo di funzione o sottoprogramma
ci si riferisce (se omesse VB da per scontato che si tratta di una Funzione o di una Subroutine
privata).

La sintassi di una Funzione pubblica è la seguente:


Public Function NomeFunzione (argomento As tipo)
istruzioni
End Function

La sintassi di una Funzione privata è la seguente:


Private Function NomeFunzione (argomento As tipo)
istruzioni
End Function

Per effettuare la chiamata di una Funzione o una Sottoprogramma dall'esterno o all'interno di


un'altra Funzione o Sottoprogramma, basta far riferimento al nome e passare tra parentesi gli
eventuali valori da assegnare agli argomenti (parametri, variabili)
Una funzione o un sottoprogramma può essere preceduto dalla parola chiave opzionale Call, prima
del nome della Funzione o Sub che sia. Facciamo un esempio tanto chiarificatore quanto inutile ai
fini pratici della realizzazione di un programma.

Esempio: Creazione di una Function


Creiamo una funzione che visualizzi un messaggio di errore

Si crei un nuovo EXE standard e si acceda al codice della Form dal menu Visualizza / Codice
e si inserisca il codice per la seguente Funzione:

Private Function Messaggio(errore As String)


Dim mess As string
mess = " Errore ! – " & errore
MsgBox mess
End Function

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
Alla Funzione Messaggio() passo la variabile errore di tipo String che rappresenta il testo del
messaggio da visualizzare. Esso vene concatenato e visualizzato tramite il comando MsgBox che
provvede ad aprire una finestra contenente il messaggio completo (figura 6).

Si acceda poi alla Funzione / evento Form_Load() semplicemente facendo un doppio click in un
punto qualsiasi della Form dalla visualizzazione struttura e si richiami la Funzione Messaggio()
come segue:

Private Sub Form_Load()


Call Messaggio("valore inserito fuori range!")
End Sub

Gestione delle stringhe

L’esempio mostrato nel paragrafo precedente utilizzava l’operatore di concatenazione per creare la
stringa da visualizzare.
Il VB ha già implementate nel linguaggio molte funzioni che possono essere utilizzate per
manipolare le stringhe, come sostituire parti o caratteri di una stringa, selezionare una parte di una
stringa, controllarne la lunghezza, dividere una stringa in più stringhe…
La Funzione Replace() serve a sostituire caratteri all'interno di una stringa.
La sua sintassi è:
Replace (stringa, carattere da sostituire, carattere sostitutivo)

Talvolta una stringa contiene caratteri incompatibili con la sintassi. Tipico è il caso dell’apice.
Utilizzato per caratterizzare le linee di commento e che pertanto devono essere ignorate dal
programma interprete. Ma alcuni cognomi contengono al loro interno l’apice, come, per esempio,
D’Alessandro.
In questo caso il problema si può risolvere mettendo due apici:
Replace("D’Alessandro", "′",""")

Questi controlli sono particolarmente importanti in fase di inserimento e di lettura dei dati in una
Base di Dati (Data Base).

La Funzione Split() divide una stringa in un array di stringa; prendiamo la seguente stringa:

Resistore#100 ohm# a_filo

ho una serie di dati separati da un carattere separatore (#) che consente di individuare la singola
informazione e rappresenta un utile riferimento per dividere la stringa.
La sintassi è:

Split(stringa, carattere di riferimento)

Esempio: Manipolazione di una stringa

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
Si crei un nuovo EXE standard, si inserisca sulla Form una Label di nome lblSepara e si acceda
alla Sub Form_Load(); nella parte generale si inserisca il seguente codice:

Option Explicit
Dim stringa As String
Dim s() As String
Dim i As Integer

dove s() è una stringa di tipo Array che utilizzerò per lo Split(). Nel sottoprogramma, invece, si
inserisce il seguente codice:

Private Sub Form_Load()


i=0
stringa = " Resistore#100 ohm# a_filo "
s = Split(stringa, "#")
For i = 0 To UBound(s)
[Link] = [Link] & s(i) & vbCrLf
Next
End Sub

Nella Label compare

Resistore
100ohm
a_filo

Ricordo che, come un Array, il conteggio degli item parte da zero (0) fino ad N.

Per controllare la lunghezza di una stringa si utilizza la funzione Len() che restituisce il numero di
caratteri che compongono una stringa. Siccome la numerazione degli indici dell’array inizia da zero
un eventuale ciclo per scorrere l’intero array deve essere scritto in questo modo

For i = 0 To Len(s) - 1
[Link] = [Link] & s(i) & vbCrLf
Next

che accetta come parametro la stringa di cui, appunto, si vuole controllare la lunghezza.

La sintassi è la seguente:
Len(stringa)

L’esecuzione della funzione [Link] Len("Resistore")

restituisce 9.

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
Talvolta in una stringa è necessario eliminare spazi superflui. È possibile eliminare gli spazi
superflui sulla sinistra, sulla destra o sia sulla sinistra che sulla destra di una stringa. Le Funzioni
sono rispettivamente LTrim() (Left Trim), RTrim() (Right Trim) e Trim().
La sintassi è analoga per tutte e tre le Funzioni

Sintassi Esempio Risultato


(il trattino rappresenta lo
spazio residuo)
Ltrim (stringa) [Link] (" R1 – Resistore ") _R1 – Resistore
Rtrim (stringa) [Link] (" R1 – Resistore ") R1 – Resistore_
Trim (stringa) [Link] (" R1 – Resistore ") R1 – Resistore

Le Funzioni Left(), Right() e Mid() servono rispettivamente ad isolare da una stringa un certo
numero di caratteri specificati.

Sintassi Esempio Risultato


Left(string, numero di [Link]("C1 – Condensatore",2) C1
caratteri)
Right(string, numero di [Link]("C1 – Condensatore",12) Condensatore
caratteri)
Mid(string, numero di caratter [Link]("C1 – Condensatore",3,13) –
ia sinistra,numero di caratteri
a destra)

Gestione delle date


Il Visual Basic mette a disposizione del programmatore alcune funzioni che permettono di gestire le
date all’interno dei programmi. Queste funzioni si rilevano molto utili in moltissime
programmazioni e per effettuare temporizzazioni.
Data di riferimento: domenica 12/06/2022 13.04.12

• Date - restituisce la data in formato gg/mm/aaaa (12/06/2022)


• Time - restituisce l'orario in formato [Link] ( 13.04.12)
• Now - restituisce la data e l'orario in formato gg/mm/aaaa [Link] (12/06/2022 13.04.22)
• FormatDateTime - restituisce vari formati della data anche in formato alfanumerico
(domenica 12/06/2022 13.04.12)
• Day - restituisce il giorno della settimana accettando un oggetto Date (12)
• Month - restituisce il mese dell'anno accettando un oggetto Date (06)
• Year - restituisce l'anno accettando un oggetto Date (2022)
• Hour - restituisce l'ora accettando un oggetto Time (13)
• Minute - restituisce i minuti accettando un oggetto Time (04)

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
• Second - restituisce i secondi accettando un oggetto Time (12)

Funzioni di conversione e Funzioni predefinite

I dati vengono acquisiti in genere in formato di stringa, ma poi da questi bisogna, talvolta, estrarre
valori numerici e poi, dopo l’elaborazione, bisogna realizzare la funzione inversa trasformare i
valori numerici in stringhe per poterli visualizzare.

In certe applicazioni invece bisogna trasformare la rappresentazione dei numeri da un tipo ad un


altro, per esempio dal codice binario a quello decimale.

Le Funzioni di conversione più utili sono CInt() e CStr() che convertono un dato rispettivamente in
formato Integer ed in formato String.

La sintassi è la seguente
Dim numero As String
Dim valore As Integer
numero = "4" ' è un numero in formato stringa
valore=CInt(numero) ' attribuisce a valore 4

CBool() converte un dato in valore


booleano. Restituisce True o
False
CDate(stringa) converte una stringa in una
data
CCur() converte un numero in
formato valuta
FormatNumber(numero,codice) separa con un punto le [Link] FormatNumber(1500, 0)
migliaia (o nessun ' restituisce 1.500
decimale)
FormatCurrency(numero,codice) restituisce un numero con il [Link] FormatCurrency(1500, 1)
simbolo dell'euro (codice 1) ' restituisce € 1.500

Interazione con i database

Uno degli scopi per cui è stato sviluppato il Visual Basic è stato la creazione di potenti interfacce
che permettono la gestione locale o via rete (NON Internet) di dati residenti su una fonte di dati
quale un database.
Il VB lavora in modo ottimale con i prodotti sviluppati dalla Microsof (DBMS, ovvero gestori di
database) come Access e SQL Server, ma lavora correttamente anche con DBMS di case differenti
come Oracle.
Gli esempi proposti si riferiscono a interazioni con DB creati con Access, preferibilmente versione
2000 e, per alcuni approfondimenti, se necessario sul linguaggio SQL a cui si fa riferimento si
consigli la lettura del capitolo, allegato al testo, scaricabile da Internet.
Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
VB utilizza per la connessione con una fonte di dati e la gestione dei dati ivi residenti: l'oggetto
ADO (ActiveX Data Object) per l'interfacciamento tra il programma e la fonte di dati stessa.

ADO mette a disposizione, tra l'altro, due oggetti, ovvero Connection per la gestione della
connessione ed altre utility, e Recordset per la gestione fisica dei dati.

Progettiamo ora una form che ci consenta di registrare in un Data Base creato con Access, alcuni
dati come: cognome e nome, codice fiscale

Si crei un nuovo EXE standard e si acceda al menu


Progetto / Riferimenti...

per l'importazione dei riferimenti ad ADO, selezionando le voci mostrate nella figura 7.

Si nomini la Form frmGestioneDati, si inseriscano tre Label con Caption Nome, Cognome Codice
Fiscale e tre TextBox in cui svuotare la proprietà Text e modificare i nome come txtNome,
txtCognome e txtCodiceFiscale. La figura 8 mostra l’aspetto finale della Form.
Si aggiunga poi un CommandButton da nominare cmdAcquisisci e modificare la Caption in
Registra.
Salviamo utilizzando i comandi File / Salva progetto con nome... salviamo il progetto
Codice_Fiscale in una cartella creata in precedenza, p.e. ProvaDB.
All’interno di questa cartella vengono memorizzati i sei file di progetto creati automaticamente da
VB.
Si apre il programma Access e si crea memorizzandolo sempre nella cartella ProvaDB il file Access
[Link] al cui interno verrà creata la tabella utenti in cui inserire i campi id (Contatore),
nome (Testo), cognome (Testo) codice fiscale (Testo).

Completata la creazione del file acces si torna sul Form e si apre visualizzazione struttura, si accede
al codice della Form ed si inserisce queste righe di codice nella parte generale:
Option Explicit
Dim cn As [Link]
Dim rs As [Link]
Dim stringa As String

I tipi di dato [Link] ed [Link] sono stati aggiunti a VB per mezzo


dell'importazione dei riferimenti come accennato in precedenza.

Attiviamo ora con un doppio click sul CommandButto il sottoprogramma in cui inserire il seguente
codice:
Private Sub cmdRegistra_Click()
If Len(Trim([Link])) = 0 Then
MsgBox "Inserire il nome", vbCritical, "ERRORE"
[Link]
Exit Sub
End If
If Len(Trim([Link])) = 0 Then
MsgBox "Inserire il cognome", vbCritical, "ERRORE"

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
[Link]
Exit Sub
End If
If Len(Trim([Link])) = 0 Then
MsgBox "Inserire il codice sfiscale", vbCritical, "ERRORE"
[Link]
Exit Sub
End If

stringa = "Provider=[Link].4.0;Data Source="


stringa = stringa & "C:\provaDB\[Link]"
Set cn = New [Link]
Set rs = New [Link]
[Link] stringa
[Link] "utenti", cn, 3, 3
[Link]
rs("nome") = [Link]
rs("cognome") = [Link]
rs("codice fiscale") = [Link]
[Link]
Set cn = Nothing
Set rs = Nothing
MsgBox "Inserimento effettuato", vbOKOnly, "CONFERMA"
End Sub

Il sottoprogramma compiendo tre test per verificare che i tre campi siano stati compilati
correttamente, utilizzando l'espressione Exit Sub per uscire dalla Sub qualora le condizioni non
siano state soddisfatte e non si vuol permettere la continuazione della routine:
A condizioni soddisfatte si crea la stringa di connessione al database e la si memorizza nella
variabile stringa:
stringa = "Provider=[Link].4.0;Data Source="
stringa = stringa & "C:\provaDB\[Link]"
Con la clausola Set si impostano le variabili cn ed rs come nuove istanze degli oggetti Connection e
Recordset:

Set cn = New [Link]


Set rs = New [Link]

Si apre la connessione al database ed il Recordset in modalità scrittura, passando al metodo Open il


nome della tabella su cui voglio lavorare, il nome della connessione che sto utilizzando ed i cursori
appropriati:
[Link] stringa
[Link] "utenti", cn, 3, 3

Si utilizzano i metodi AddNew ed Update per aggiungere un nuovo record alla tabella e per
aggiornarlo; passo poi al Recordset i campi della tabella e assegno loro il valore con le variabili
contenenti i dati corrispondenti:

[Link]

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
rs("nome") = [Link]
rs("cognome") = [Link]
rs("codice fiscale") = [Link]
[Link]

Si pulisce la memoria del buffer dalle variabili contenenti la connessione ed il recordset, settandole
sul valore speciale di VB Nothing:

Set cn = Nothing
Set rs = Nothing

Infine, a conferma del buon esito della registrazione, si visualizza un messaggio di conferma:

MsgBox "Inserimento effettuato", vbOKOnly, "CONFERMA"

Ora effettueremo l’operazione inversa leggeremo i dati registrati sul DataBase


Creiamo una nuova Form dal menu si attiva Progetto / Inserisci form e si seleziona Form e si
confermi.
Si assegna alla Form il nome frmLetturaDB e si aggiunga una Label di nome lblDatiDB di
grande dimensione.
Si acceda all'evento Form_Load() della Form con un doppio click in un punto qualsiasi della Form
stessa e si inserisca nella parte generale il seguente codice:

Option Explicit
Dim cn As [Link]
Dim rs As [Link]
Dim stringa As String

In Form_Load(), invece, inserire il seguente codice:

Private Sub Form_Load()


stringa = "Provider=[Link].4.0;Data Source="
stringa = stringa & "C:\test\[Link]"
Set cn = New [Link]
Set rs = New [Link]
[Link] stringa
[Link] "SELECT * FROM utenti", cn, 1
If [Link] Then
[Link] = "Nessun dato"
Else
While [Link] = False
[Link] = [Link] _
& rs("nome") & " " _
& rs("cognome")
& rs("codicefiscale") & vbCrLf
[Link]
Wend
End If
Set cn = Nothing

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023
Set rs = Nothing
End Sub

La sequenza delle operazioni è simile a quella già descritta per l'inserimento: la stringa di
connessione al database è la stessa, è necessario settare ed aprire, ed in fine svuotare, gli oggetti
Connection e Recordset. Concentriamoci sulla lettura dei dati:

If [Link] Then
[Link] = "Nessun dato"
Else
While [Link] = False
[Link] = [Link] _
& rs("nome") & " " _
& rs("cognome") & " " _
&rs(codice fiscale) & vbCrLf
[Link]
Wend
End If

Se non ci sono dati nella tabella, ovvero se la lettura del Recordset arriva alla fine della tabella
(EOF - End Of File) si genera un messaggio che avvisa che non sono stati trovati dati; in caso
contrario si esegue un ciclo e si visualizza Label tutti i record estratti dalla stringa SQL

SELECT * FROM utenti

passata al Recordset impostato in lettura.

Fausto Maria Ferri, Nuovo Corso di tecnologie e progettazione di sistemi elettrici ed elettronici, Vol. 2, © Ulrico
Hoepli Editore S.p.A., 2023

Potrebbero piacerti anche