Dispensa ed Esercizi in Linguaggio Visual Basic - Teletu

Dispensa ed Esercizi in Linguaggio Visual Basic - Teletu Dispensa ed Esercizi in Linguaggio Visual Basic - Teletu

home.teletu.it
from home.teletu.it More from this publisher
12.07.2015 Views

PROGETTO 8: VB e SQ LN egli esempi precedenti l’insieme dei dati che venivano associati al controllo D A T A provenivano da unatabella del database, il cui nome era specificato nella proprieta’ recordsource; in realta’ l’insieme deidati che possono essere associati al controllo D A T A possono anche risultare da un’interrogazione SQ Lscritta all’interno del codice VB associato ad un controllo (es. pulsante).Esempio: data la tabella CI T T A D I N O del database A N A GRA FE, realizziamo un progetto che consentadi realizzare tre tipi di interrogazioni:1.elenco dei cittadini di un certo sesso2 .elenco dei cittadini il cui cognome inizia con una certa lettera3.elenco dei cittadini con reddito superiore ad un certo valorevisualizzando cognome e nome dei cittadini che corrispondono alle caratteristiche richieste.Sappiamo come realizzare q ueste istruzione in SQ L; ora vediamo come associarle al codice VB.Realizziamo la seguente interfaccia:Con i seguenti controlli:un controllo D A T A 1 con caption “cittadino” , D A T A BA SEN A MEassociato al file di database su disco (specificare il percorso) eRECO RD SO URCE associato a CI T T A D I N Odue etichette con caption CO GN O ME, N O MEdue caselle di testo con text azzerata e D A T A FI ELD associatarispettivamente a CO GN O ME e N O MEq uattro pulsanti di comando in cui inserire una opportuna caption(“elenco cittadini… ” , “fine” ) prevedendo i tasti di scelta rapidaO ra associamo ai q uattro pulsanti il seguente codice:‘dichiarazione delle variabili nella sezione “generale”Dim MIOSQ L As String ‘stringa di codice SQ LDim CERCAS As String ‘variabile contenente il sesso da cercareDim INIZIALE As String ‘variabile contenente l’iniziale del cognome da cercareDim CONT As Integer ‘contatore dei recordDim VALORE As Double ‘variabile contenente il valore minimo di redditoPrivate Sub Command1 _Click()'ricerca i cittadini di un certo sessoCERCAS = InputBox ("sesso:", "ricerca") ‘visualizza un box per inserire il sesso da cercareMIOSQ L = " "‘istruzione SQ LMIOSQ L = MIOSQ L + "SELECT COGNOME, NOME "MIOSQ L = MIOSQ L + "F ROM CITTADINO "MIOSQ L = MIOSQ L + "W H ERE SESSO= '" + CERCAS + "' "MIOSQ L = MIOSQ L + "ORDER BY COGNOME, NOME;"Data1 .RecordSource = MIOSQ L ‘associa alla proprieta’ il codice SQ LData1 .Refresh ‘aggiorna l’origine dei dati associata a D A T A 1CONT = 0‘controlla che ci sia corripondenza nella ricercaIf Not Data1 .Recordset.EOF ThenCONT = Data1 .Recordset.RecordCountEnd IfIf CONT = 0 ThenMsgBox "nessun record trovato", 1 6, "risultato" ‘visualizza un messaggio di tipo 16 se non ci sono recordEnd IfEnd SubPrivate Sub Command2_Click()'ricerca i cittadini con cognome avente una certa inizialeINIZIALE = InputBox ("iniz iale del cognome:", "ricerca")MIOSQ L = " "MIOSQ L = MIOSQ L + "SELECT COGNOME, NOME "MIOSQ L = MIOSQ L + "F ROM CITTADINO "34

MIOSQ L = MIOSQ L + "W H ERE COGNOME LIKE '" + INIZIALE + "' & '*' "MIOSQ L = MIOSQ L + "ORDER BY COGNOME, NOME;"Data1 .RecordSource = MIOSQ LData1 .RefreshCONT = 0If Not Data1 .Recordset.EOF ThenCONT = Data1 .Recordset.RecordCountEnd IfIf CONT = 0 ThenMsgBox "nessun record trovato", 1 6, "risultato"End IfEnd SubPrivate Sub Command3 _Click()'ricerca dei cittadini con reddito superiore ad un certo valoreVALORE = InputBox ("valore minimo di reddito:", "ricerca")MIOSQ L = " "MIOSQ L = MIOSQ L + "SELECT COGNOME, NOME "MIOSQ L = MIOSQ L + "F ROM CITTADINO "MIOSQ L = MIOSQ L + "W H ERE REDDITO > " + Str(VALORE) + " "MIOSQ L = MIOSQ L + "ORDER BY COGNOME, NOME;"Data1 .RecordSource = MIOSQ LData1 .RefreshCONT = 0If Not Data1 .Recordset.EOF ThenCONT = Data1 .Recordset.RecordCountEnd IfIf CONT = 0 ThenMsgBox "nessun record trovato", 1 6, "risultato"End IfEnd SubPrivate Sub Command4 _Click()'esce dall'applicazioneEndEnd SubLe istruzioni SQ L sono costruite su piu’ righe per comodita’ di lettura e devono rispettare la sintassi ,compresi gli spazi e i punti e virgola (infatti al termine di ogni riga, prima di “ c’e’ uno spazio). I l Valoredel codice inserito da tastiera viene concatenato alla stringa SQ L con l’operatore + (normalmente taleparametro apparirebbe tra parentesi q uadre nelle istruzioni [ … ])D urante l’esecuzione, effettuando la ricerca sul sesso, appaiono le seguenti finestre;per l’inserimento del sesso (M o F) dacercareq uesto messaggio appare seviene inseritoun valore assurdoSe invece esistono dei record corrispondenti, vienevisualizzato il primo (possibile visualizzare tutti glialtri utilizzando i pulsanti del controllo D A T A 1):O ra potete provare a realizzare altre applicazioni con diverse istruzioni SQ L, utilizzando anche altridatabase (ne abbiamo realizzati tantissimi; avete solo l’imbarazzo della scelta!).P rovate ad utilizzare tutti i controlli che abbiamo esaminato: splash screen, menu, finestrainformazioni, form principale da cui vengono aperti altri form, ecc.35

PROGETTO 8: VB e SQ LN egli esempi prec<strong>ed</strong>enti l’<strong>in</strong>sieme dei dati che venivano associati al controllo D A T A provenivano da unatabella del database, il cui nome era specificato nella proprieta’ recordsource; <strong>in</strong> realta’ l’<strong>in</strong>sieme deidati che possono essere associati al controllo D A T A possono anche risultare da un’<strong>in</strong>terrogazione SQ Lscritta all’<strong>in</strong>terno del codice VB associato ad un controllo (es. pulsante).Esempio: data la tabella CI T T A D I N O del database A N A GRA FE, realizziamo un progetto che consentadi realizzare tre tipi di <strong>in</strong>terrogazioni:1.elenco dei cittad<strong>in</strong>i di un certo sesso2 .elenco dei cittad<strong>in</strong>i il cui cognome <strong>in</strong>izia con una certa lettera3.elenco dei cittad<strong>in</strong>i con r<strong>ed</strong>dito superiore ad un certo valorevisualizzando cognome e nome dei cittad<strong>in</strong>i che corrispondono alle caratteristiche richieste.Sappiamo come realizzare q ueste istruzione <strong>in</strong> SQ L; ora v<strong>ed</strong>iamo come associarle al codice VB.Realizziamo la seguente <strong>in</strong>terfaccia:Con i seguenti controlli:un controllo D A T A 1 con caption “cittad<strong>in</strong>o” , D A T A BA SEN A MEassociato al file di database su disco (specificare il percorso) eRECO RD SO URCE associato a CI T T A D I N Odue etichette con caption CO GN O ME, N O MEdue caselle di testo con text azzerata e D A T A FI ELD associatarispettivamente a CO GN O ME e N O MEq uattro pulsanti di comando <strong>in</strong> cui <strong>in</strong>serire una opportuna caption(“elenco cittad<strong>in</strong>i… ” , “f<strong>in</strong>e” ) prev<strong>ed</strong>endo i tasti di scelta rapidaO ra associamo ai q uattro pulsanti il seguente codice:‘dichiarazione delle variabili nella sezione “generale”Dim MIOSQ L As Str<strong>in</strong>g ‘str<strong>in</strong>ga di codice SQ LDim CERCAS As Str<strong>in</strong>g ‘variabile contenente il sesso da cercareDim INIZIALE As Str<strong>in</strong>g ‘variabile contenente l’<strong>in</strong>iziale del cognome da cercareDim CONT As Integer ‘contatore dei recordDim VALORE As Double ‘variabile contenente il valore m<strong>in</strong>imo di r<strong>ed</strong>ditoPrivate Sub Command1 _Click()'ricerca i cittad<strong>in</strong>i di un certo sessoCERCAS = InputBox ("sesso:", "ricerca") ‘visualizza un box per <strong>in</strong>serire il sesso da cercareMIOSQ L = " "‘istruzione SQ LMIOSQ L = MIOSQ L + "SELECT COGNOME, NOME "MIOSQ L = MIOSQ L + "F ROM CITTADINO "MIOSQ L = MIOSQ L + "W H ERE SESSO= '" + CERCAS + "' "MIOSQ L = MIOSQ L + "ORDER BY COGNOME, NOME;"Data1 .RecordSource = MIOSQ L ‘associa alla proprieta’ il codice SQ LData1 .Refresh ‘aggiorna l’orig<strong>in</strong>e dei dati associata a D A T A 1CONT = 0‘controlla che ci sia corripondenza nella ricercaIf Not Data1 .Recordset.EOF ThenCONT = Data1 .Recordset.RecordCountEnd IfIf CONT = 0 ThenMsgBox "nessun record trovato", 1 6, "risultato" ‘visualizza un messaggio di tipo 16 se non ci sono recordEnd IfEnd SubPrivate Sub Command2_Click()'ricerca i cittad<strong>in</strong>i con cognome avente una certa <strong>in</strong>izialeINIZIALE = InputBox ("<strong>in</strong>iz iale del cognome:", "ricerca")MIOSQ L = " "MIOSQ L = MIOSQ L + "SELECT COGNOME, NOME "MIOSQ L = MIOSQ L + "F ROM CITTADINO "34

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!